ARM GAS /tmp/ccuRhBPx.s page 1 1 .cpu cortex-m0 2 .arch armv6s-m 3 .fpu softvfp 4 .eabi_attribute 20, 1 5 .eabi_attribute 21, 1 6 .eabi_attribute 23, 3 7 .eabi_attribute 24, 1 8 .eabi_attribute 25, 1 9 .eabi_attribute 26, 1 10 .eabi_attribute 30, 1 11 .eabi_attribute 34, 0 12 .eabi_attribute 18, 4 13 .file "stm32f0xx_hal_i2c.c" 14 .text 15 .Ltext0: 16 .cfi_sections .debug_frame 17 .file 1 "Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c" 18 .section .text.I2C_Flush_TXDR,"ax",%progbits 19 .align 1 20 .syntax unified 21 .code 16 22 .thumb_func 24 I2C_Flush_TXDR: 25 .LVL0: 26 .LFB105: 1:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ****************************************************************************** 3:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @file stm32f0xx_hal_i2c.c 4:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @author MCD Application Team 5:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C HAL module driver. 6:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral: 8:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * + IO operation functions 10:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * + Peripheral State and Errors functions 11:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * 12:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ****************************************************************************** 13:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @attention 14:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * 15:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * Copyright (c) 2016 STMicroelectronics. 16:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * All rights reserved. 17:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * 18:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This software is licensed under terms that can be found in the LICENSE file 19:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in the root directory of this software component. 20:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 21:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * 22:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ****************************************************************************** 23:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim 24:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ============================================================================== 25:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### How to use this driver ##### 26:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ============================================================================== 27:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 28:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** The I2C HAL driver can be used as follows: 29:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 30:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example: 31:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef hi2c; 32:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 2 33:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API: 34:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (##) Enable the I2Cx interface clock 35:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (##) I2C pins configuration 36:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs 37:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain 38:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process 39:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority 40:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel 41:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process 42:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for 43:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the transmit or receive channel 44:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using 45:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure the DMA handle parameters 46:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx channel 47:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle 48:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on 49:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the DMA Tx or Rx channel 50:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 51:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres 52:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure 53:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 54:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level H 55:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API. 56:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 57:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceRead 58:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 59:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver : 60:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 61:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Polling mode IO operation *** 62:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ================================= 63:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 64:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using HAL_I2C_Master_Transmit( 65:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using HAL_I2C_Master_Receive() 66:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Transmit() 67:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Receive() 68:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 69:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Polling mode IO MEM operation *** 70:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ===================================== 71:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 72:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using HAL_I2C_Mem_W 73:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using HAL_I2C_Mem_ 74:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 75:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 76:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Interrupt mode IO operation *** 77:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =================================== 78:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 79:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Trans 80:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can 81:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() 82:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Receiv 83:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can 84:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 85:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Transmi 86:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can 87:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() 88:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Receive_ 89:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can ARM GAS /tmp/ccuRhBPx.s page 3 90:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 91:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 92:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 93:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() 94:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 95:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 96:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 97:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 98:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 99:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation *** 101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ========================================================== 102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition 104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** when a direction change during transfer 105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer 107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Option field values are defined through I2C_XFEROPTIONS and are listed below: 108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfac 109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** no sequential mode 110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con 111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and data to transfer without a final stop condition 112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a 113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** start condition, address and data to transfer without a final stop cond 114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** an then permit a call the same master sequential interface several time 115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (like HAL_I2C_Master_Seq_Transmit_IT() then HAL_I2C_Master_Seq_Transmit 116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA() then HAL_I2C_Master_Seq_Transmit_D 117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart 118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th 119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** transfer 120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases 121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart 122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th 123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** transfer 124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases 125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a re 126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** after several call of the same master sequential interface several time 127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (link with option I2C_FIRST_AND_NEXT_FRAME). 128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Usage can, transfer several bytes one by one using 129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT 130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT 131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA 132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA 133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** with option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME. 134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit 135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Receive sequence permit to call the opposite interface Receive or Tra 136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio 137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c 138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** each call of the same master sequential 139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** interface. 140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave 141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** each bytes using 142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT 143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT 144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA 145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA 146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** with option I2C_FIRST_FRAME then I2C_OTHER_FRAME. ARM GAS /tmp/ccuRhBPx.s page 4 147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to 148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** generation of STOP condition. 149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Different sequential I2C interfaces are listed below: 151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using 152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT() or using HAL_I2C_Master_Seq_Transmit_DMA() 153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is execut 154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_MasterTxCpltC 155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using 156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_Master_Seq_Receive_IT() or using HAL_I2C_Master_Seq_Receive_DMA() 157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed 158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Abort a master IT or DMA I2C process communication with Interrupt using HAL_I2C_Master_A 160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT() 163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_DisableListen_IT() 164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and users can 165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code to check the Address Match Code and the transmission direction reques 166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (Write/Read). 167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and users can 168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ListenCpltCallback() 169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using 170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Transmit_IT() or using HAL_I2C_Slave_Seq_Transmit_DMA() 171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is execute 172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCa 173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using 174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Receive_IT() or using HAL_I2C_Slave_Seq_Receive_DMA() 175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed a 176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Interrupt mode IO MEM operation *** 183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ======================================= 184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address 186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_Mem_Write_IT() 187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can 188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback() 189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address 190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_Mem_Read_IT() 191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can 192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback() 193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** DMA mode IO operation *** 197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ============================== 198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using 200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_Master_Transmit_DMA() 201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can 202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() 203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using ARM GAS /tmp/ccuRhBPx.s page 5 204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_Master_Receive_DMA() 205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can 206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using 208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_Slave_Transmit_DMA() 209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can 210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() 211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using 212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_Slave_Receive_DMA() 213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can 214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() 218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** DMA mode IO MEM operation *** 224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ================================= 225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using 227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_Mem_Write_DMA() 228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can 229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback() 230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using 231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_Mem_Read_DMA() 232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can 233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback() 234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** I2C HAL driver macros list *** 239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ================================== 240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver. 242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE: Enable the I2C peripheral 244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE: Disable the I2C peripheral 245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode 246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not 247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag 248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt 249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt 250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *** Callback registration *** 252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ============================================= 253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1 255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks. 256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Use Functions HAL_I2C_RegisterCallback() or HAL_I2C_RegisterAddrCallback() 257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to register an interrupt callback. 258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Function HAL_I2C_RegisterCallback() allows to register following callbacks: 260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. ARM GAS /tmp/ccuRhBPx.s page 6 261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. 262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. 263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. 264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. 265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. 266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. 267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. 268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. 269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. 270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. 271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and a pointer to the user callback function. 273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : HAL_I2C_RegisterAddrCall 275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Use function HAL_I2C_UnRegisterCallback to reset a callback to the default 277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** weak function. 278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle, 279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and the Callback ID. 280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This function allows to reset following callbacks: 281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. 282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. 283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. 284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. 285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. 286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. 287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. 288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. 289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. 290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. 291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. 292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : HAL_I2C_UnRegisterAddrCallback(). 294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** By default, after the HAL_I2C_Init() and when the state is HAL_I2C_STATE_RESET 296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions: 297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** examples HAL_I2C_MasterTxCpltCallback(), HAL_I2C_MasterRxCpltCallback(). 298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are 299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** reset to the legacy weak functions in the HAL_I2C_Init()/ HAL_I2C_DeInit() only when 300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** these callbacks are null (not registered beforehand). 301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the HAL_I2C_Init()/ HAL_I2C_DeInit() 302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state. 303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Callbacks can be registered/unregistered in HAL_I2C_STATE_READY state only. 305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered 306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** in HAL_I2C_STATE_READY or HAL_I2C_STATE_RESET state, 307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. 308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks 309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** using HAL_I2C_RegisterCallback() before calling HAL_I2C_DeInit() 310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or HAL_I2C_Init() function. 311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or 313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks 314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** are set to the corresponding weak functions. 315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros ARM GAS /tmp/ccuRhBPx.s page 7 318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim 320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/ 323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #include "stm32f0xx_hal.h" 324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @addtogroup STM32F0xx_HAL_Driver 326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C I2C 330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C HAL module driver 331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED 335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/ 337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/ 338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define 340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */ 343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */ 344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */ 345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */ 346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */ 347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */ 348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */ 349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */ 350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */ 351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */ 352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U 354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define SLAVE_ADDR_SHIFT 7U 355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define SLAVE_ADDR_MSK 0x06U 356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */ 358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | \ 359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)HAL_I2C_STATE_BUSY_RX) & \ 360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY)))) 361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Mask State define, keep only RX and TX bits */ 362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE)) 363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Default Value */ 364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) 366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Master Busy TX, combinaison of State LSB and Mode enum */ 367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) 369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Master Busy RX, combinaison of State LSB and Mode enum */ 370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) 372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Slave Busy TX, combinaison of State LSB and Mode enum */ 373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) ARM GAS /tmp/ccuRhBPx.s page 8 375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Slave Busy RX, combinaison of State LSB and Mode enum */ 376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) 378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Memory Busy TX, combinaison of State LSB and Mode enum */ 379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) 381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*!< Memory Busy RX, combinaison of State LSB and Mode enum */ 382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */ 385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with 386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ 387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with 388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ 389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /*!< Bit field can be combinated with @ref I2 390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and @ref I2C_XFER_RX_IT */ 391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /*!< Bit definition to manage addition of glo 393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and NACK treatment */ 394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /*!< Bit definition to manage only STOP evene 395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /*!< Bit definition to manage only Reload of 396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */ 398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U) 399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} 401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private macros ------------------------------------------------------------*/ 404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @addtogroup I2C_Private_Macro 405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Macro to get remaining data to transfer on DMA side */ 408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) __HAL_DMA_GET_COUNTER(__HANDLE__) 409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} 411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/ 414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/ 415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions 417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle DMA transfer */ 420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma); 421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma); 422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma); 423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma); 424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma); 425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma); 426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c); 431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c); ARM GAS /tmp/ccuRhBPx.s page 9 432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode); 436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart); 441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart); 444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */ 446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources); 448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources); 450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources); 452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources); 454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources); 456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources); 458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */ 460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart); 462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart); 464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart); 466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart); 468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart); 470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */ 472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function to treat different error callback */ 476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c); 477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function to flush TXDR register */ 479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c); 480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */ 482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Request); 484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Private function to Convert Specific options */ 486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c); 487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} ARM GAS /tmp/ccuRhBPx.s page 10 489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/ 492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions 494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions 498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Initialization and Configuration functions 499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * 500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim 501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== 502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### Initialization and de-initialization functions ##### 503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== 504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and 505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** deinitialize the I2Cx peripheral: 506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures 508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). 509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with 511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the selected configuration: 512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Clock Timing 513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Own Address 1 514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Addressing mode (Master, Slave) 515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Dual Addressing mode 516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Own Address 2 517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Own Address 2 Mask 518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) General call mode 519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Nostretch mode 520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration 522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** of the selected I2Cx peripheral. 523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim 525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters 530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle. 531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) 536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c == NULL) 539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); ARM GAS /tmp/ccuRhBPx.s page 11 546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET) 554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Allocate lock resource and initialize it */ 556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED; 557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init the I2C Callback settings */ 560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback 561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback 562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback 563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback 564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback 565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback 570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL) 572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ 574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c); 578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c); 581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable the selected I2C peripheral */ 587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ 590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */ 591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; 592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ 594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */ 595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; 596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */ 598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) 599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); 601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */ ARM GAS /tmp/ccuRhBPx.s page 12 603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); 605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/ 608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */ 609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 = (I2C_CR2_ADD10); 612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ 614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); 615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ 617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */ 618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; 619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */ 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \ 622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/ 625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */ 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); 627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the selected I2C peripheral */ 629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c); 630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral. 641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) 646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c == NULL) 649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */ 659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); ARM GAS /tmp/ccuRhBPx.s page 13 660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL) 663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ 665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c); 669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c); 672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Release Lock */ 680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Initialize the I2C MSP. 687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) 692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file 698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP. 703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) 708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file 714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 14 717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Register a User I2C Callback 720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * To be used instead of the weak predefined callback 721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note The HAL_I2C_RegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_RES 722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * to register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID. 723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered 726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: 727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pCallback pointer to the Callback function 739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb 742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback) 743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (pCallback == NULL) 747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID) 757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback; 760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback; 764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback; 768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback; 772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 15 774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback; 776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback; 780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback; 784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback; 788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback; 792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default : 803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ 807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID) 814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default : 824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ 828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 16 831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ 838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status; 842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Unregister an I2C Callback 846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback 847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note The HAL_I2C_UnRegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_R 848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * to un-register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID. 849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered 852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: 853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: 854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal 868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID) 874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb 877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb 881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba 885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : ARM GAS /tmp/ccuRhBPx.s page 17 888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba 889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac 893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default : 920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ 924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** switch (CallbackID) 931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** default : 941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ ARM GAS /tmp/ccuRhBPx.s page 18 945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ 955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status; 959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback 963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback 964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function 967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC 970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (pCallback == NULL) 974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback = pCallback; 984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ 991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status; 995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback 999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal 1000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. ARM GAS /tmp/ccuRhBPx.s page 19 1002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) 1005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 1009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ 1011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update the error code */ 1015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 1016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return error status */ 1018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 1019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status; 1022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} 1028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions 1031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Data transfers functions 1032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * 1033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim 1034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== 1035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### IO operation functions ##### 1036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== 1037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 1038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data 1039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** transfers. 1040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) There are two modes of transfer: 1042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode. 1043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** The status of all data processing is returned by the same function 1044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** after finishing transfer. 1045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts 1046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup. 1047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** The end of the data processing will be indicated through the 1048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when 1049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** using DMA mode. 1050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) Blocking mode functions are : 1052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit() 1053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive() 1054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit() 1055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive() 1056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write() 1057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read() 1058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady() ARM GAS /tmp/ccuRhBPx.s page 20 1059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are : 1061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT() 1062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT() 1063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT() 1064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT() 1065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT() 1066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT() 1067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT() 1068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT() 1069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT() 1070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT() 1071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT() 1072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT() 1073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT() 1074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are : 1076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA() 1077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA() 1078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA() 1079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA() 1080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA() 1081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA() 1082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA() 1083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA() 1084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA() 1085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA() 1086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode: 1088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback() 1089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback() 1090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback() 1091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback() 1092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback() 1093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback() 1094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback() 1095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback() 1096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback() 1097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback() 1098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim 1100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 1101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode. 1105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 1112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD 1115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) ARM GAS /tmp/ccuRhBPx.s page 21 1116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 1118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 1140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 1142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ 1164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 1167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 1168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 1170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 1171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) ARM GAS /tmp/ccuRhBPx.s page 22 1173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 1203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode. 1224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent ARM GAS /tmp/ccuRhBPx.s page 23 1230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 1231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa 1234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 1237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 1259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 1261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 1284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ ARM GAS /tmp/ccuRhBPx.s page 24 1287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 1288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 1290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 1291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 1323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode. ARM GAS /tmp/ccuRhBPx.s page 25 1344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 1349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Timeout) 1353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 1355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 1377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 1390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 1391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Preload TX register */ 1393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ 1394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 1397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 1398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 1400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 26 1401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ 1403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If 10bit addressing mode is selected */ 1406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 1407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ 1417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */ 1421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) 1422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ 1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 1442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 1443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 1445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until AF flag is set */ 1448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart) != HAL_OK) 1449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 1456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 27 1458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear AF flag */ 1459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 1460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP flag */ 1471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode 1500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 1505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Timeout) 1509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 1511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) ARM GAS /tmp/ccuRhBPx.s page 28 1515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 1534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ 1547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */ 1550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) 1551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */ 1566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) 1567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 1569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ ARM GAS /tmp/ccuRhBPx.s page 29 1572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 1573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 1575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 1576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 1582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 1585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 1586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 1588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 1589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP flag */ 1600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt ARM GAS /tmp/ccuRhBPx.s page 30 1629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size) 1639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 1641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 1674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_WRIT 1676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 1683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ ARM GAS /tmp/ccuRhBPx.s page 31 1686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt 1700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t * 1709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size) 1710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 1712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 32 1743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 1745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ 1747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 1754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 1757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 1760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt 1771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 1799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) ARM GAS /tmp/ccuRhBPx.s page 33 1800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Preload TX register */ 1802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ 1803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 1806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 1807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 1809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 1810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 1818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 1821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 1824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt 1835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 1856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; ARM GAS /tmp/ccuRhBPx.s page 34 1857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 1868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 1871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 1874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 1876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 1884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA 1885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 1887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 1890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 1891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 1892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 1893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size) 1895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 1897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 1898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 1904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ ARM GAS /tmp/ccuRhBPx.s page 35 1914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 1916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 1918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 1933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 1935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 1936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 1938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 1939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 1941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 1942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 1943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 1945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance-> 1946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 1947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 1951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 1955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 1956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 1964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 1966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART 1967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 1968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 1970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; ARM GAS /tmp/ccuRhBPx.s page 36 1971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 1978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 1979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 1980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 1982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 1983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 1985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 1987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 1991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 1992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 1994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 2005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 2006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 2008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 2017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 37 2028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA 2032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 2041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size) 2042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 2044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 2083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ ARM GAS /tmp/ccuRhBPx.s page 38 2085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 2092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 2093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 2094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 2113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART * 2114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 2115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 2117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 2129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); ARM GAS /tmp/ccuRhBPx.s page 39 2142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 2152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 2153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 2164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA 2179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size 2186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 40 2199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 2211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 2212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Preload TX register */ 2214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ 2215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 2218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 2219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 2221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 2222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 2225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 2230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 2232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 2239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, 2240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 2241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 2242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/ccuRhBPx.s page 41 2256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 2273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 42 2313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA 2315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 2322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 2350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 2352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 2359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 2360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 2361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; ARM GAS /tmp/ccuRhBPx.s page 43 2370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 2392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address 2419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent ARM GAS /tmp/ccuRhBPx.s page 44 2427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 2428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre 2431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti 2432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 2436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL 2468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 2475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 2479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS ARM GAS /tmp/ccuRhBPx.s page 45 2484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do 2487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 2489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ 2495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 2498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 2499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 2501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 2502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 2535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/ccuRhBPx.s page 46 2541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address 2556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 2565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres 2568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim 2569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 2573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 47 2598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_ 2605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 2612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do 2627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 2629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) 2630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 2635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 2636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 2638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 2639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 2641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 2642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, ARM GAS /tmp/ccuRhBPx.s page 48 2655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 2674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres 2694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 2705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 2708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 49 2712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 2735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 2736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 2738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 2739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prefetch Memory Address */ 2741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 2742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset Memaddress content */ 2744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 2745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 2747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 2750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 2751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 2753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 2754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_W 2757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 2767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ ARM GAS /tmp/ccuRhBPx.s page 50 2769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre 2781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd 2792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 2795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 2822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 2823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 2825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) ARM GAS /tmp/ccuRhBPx.s page 51 2826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prefetch Memory Address */ 2828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 2829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset Memaddress content */ 2831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 2832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 2834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 2837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 2838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 2840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 2841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_ 2844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 2853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 2854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, (I2C_XFER_TX_IT | I2C_XFER_RX_IT)); 2857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 2859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 2867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address 2868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 2870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 2873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 2875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 2876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 2877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 2878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA 2879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 52 2883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 2884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 2897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 2900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 2907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 2911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 2912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 2923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 2924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prefetch Memory Address */ 2926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 2927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset Memaddress content */ 2929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 2930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 2932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 2935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 2936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 2938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 2939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 53 2940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 2945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 2947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 2954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 2955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 2956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START 2976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 2983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 2985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 2990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 2992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 2996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; ARM GAS /tmp/ccuRhBPx.s page 54 2997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 2999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address. 3014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 3019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 3020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 3021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be read 3022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 3023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 3024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 3025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 3026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 3030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 3031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 3050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 3053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; ARM GAS /tmp/ccuRhBPx.s page 55 3054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 3057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 3058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 3069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 3070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prefetch Memory Address */ 3072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 3073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset Memaddress content */ 3075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 3076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 3078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 3081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 3082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 3084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 3085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 3093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 3100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 3101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 3102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; ARM GAS /tmp/ccuRhBPx.s page 56 3111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 3121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_STAR 3122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 3131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Checks if target device is ready for communication. 3160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This function is used with Memory devices 3161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Trials Number of trials 3166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 3167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status ARM GAS /tmp/ccuRhBPx.s page 57 3168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 3169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria 3170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Timeout) 3171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 3173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL; 3175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** FlagStatus tmp1; 3177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** FlagStatus tmp2; 3178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 3190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do 3193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Start */ 3195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress); 3196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 3198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/ 3199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 3200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET)) 3205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 3207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 3209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); ARM GAS /tmp/ccuRhBPx.s page 58 3225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */ 3228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET) 3229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 3237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Device is ready */ 3240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 3256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/ 3259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if the maximum allowed number of trials has been reached */ 3263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_Trials == Trials) 3264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Stop */ 3266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 3267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 3275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Trials */ 3279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Trials++; 3280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } while (I2C_Trials < Trials); 3281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 59 3282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte 3301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 3307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 3308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 3310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 3311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 3318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 3330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; ARM GAS /tmp/ccuRhBPx.s page 60 3339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do not generate Restart Condition */ 3349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 3378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA. 3392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value ARM GAS /tmp/ccuRhBPx.s page 61 3396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 3398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 3399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 3401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 3402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin 3403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 3410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 3422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do not generate Restart Condition */ 3441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ ARM GAS /tmp/ccuRhBPx.s page 62 3453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 3467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 3474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance-> 3475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 3476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 3498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ ARM GAS /tmp/ccuRhBPx.s page 63 3510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 3511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 3533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 3534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 3535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 3545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter 3560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 3566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent ARM GAS /tmp/ccuRhBPx.s page 64 3567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 3569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 3570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8 3571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 3577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 3589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do not generate Restart Condition */ 3608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 65 3624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA 3647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 3653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 3654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 3656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 3657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 3665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 3677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; ARM GAS /tmp/ccuRhBPx.s page 66 3681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** do not generate Restart Condition */ 3696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 3722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 3729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 3730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 3731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 67 3738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 3753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 3765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 3766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 3770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 3774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Slave Address */ 3788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 3789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 3790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 3791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 68 3795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* possible to enable all of these */ 3800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 3810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 3815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 3819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 3820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 3822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 3823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 3824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t XferOptions) 3825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 3827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** FlagStatus tmp; 3828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 3830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 3833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 3842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 3847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 3848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */ 3851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); ARM GAS /tmp/ccuRhBPx.s page 69 3852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 3855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 3857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 3863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */ 3865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 3866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 3869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 3875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 3879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 3880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 3882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 3889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 3890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 3892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 3893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 3894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 3897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 3902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* REnable ADDR interrupt */ 3903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 3904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 3906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 70 3909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 3914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 3915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 3918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 3919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 3920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 3922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 3923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t 3924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t XferOptions) 3925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 3927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** FlagStatus tmp; 3928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 3931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 3934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 3942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 3946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 3948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 3949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */ 3952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 3955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 3960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 3964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */ ARM GAS /tmp/ccuRhBPx.s page 71 3966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 3967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 3970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 3975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 3977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 3979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 3986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */ 3988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 3989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 3992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 3997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 3999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 4002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 4009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 4019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 4021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 4022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 72 4023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 4025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 4028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 4029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 4034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 4038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 4049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset XferSize */ 4052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = 0; 4053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 4057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 4061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 4071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 73 4080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 4081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 4082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 4086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 4087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 4090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 4103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 4104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 4106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si 4108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t XferOptions) 4109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** FlagStatus tmp; 4112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 4114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 4128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */ 4135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 74 4137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */ 4149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 4166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 4174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 4186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 4190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/ccuRhBPx.s page 75 4194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param pData Pointer to data buffer 4203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Amount of data to be sent 4204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 4206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 4208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t XferOptions) 4209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** FlagStatus tmp; 4212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 4215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 4229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable associated Interrupts */ 4236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */ 4250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) ARM GAS /tmp/ccuRhBPx.s page 76 4251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */ 4272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 4283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare transfer parameters */ 4293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 4303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the DMA error callback */ 4305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 4306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ ARM GAS /tmp/ccuRhBPx.s page 77 4308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 4309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 4312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, 4313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 4314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 4318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 4322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 4333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset XferSize */ 4336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = 0; 4337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C state */ 4341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update I2C error code */ 4345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 4355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ ARM GAS /tmp/ccuRhBPx.s page 78 4365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 4366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 4370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 4374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt. 4383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 4386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) 4388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 4390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the Address Match interrupt */ 4395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 4398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 4402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt. 4407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C 4409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 4410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) 4412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmp; 4415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */ 4417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 4418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; 4420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 4421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/ccuRhBPx.s page 79 4422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 4424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable the Address Match interrupt */ 4426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 4429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_BUSY; 4433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt. 4438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 4441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 4442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 4443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) 4445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 4447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 4449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 4452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 4453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 4456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 4458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 4461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Do nothing */ 4465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */ 4468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT; 4469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */ 4471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe 4472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP); 4473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current ARM GAS /tmp/ccuRhBPx.s page 80 4479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** process unlock */ 4480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 4481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 4483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong usage of abort function */ 4487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */ 4488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 4489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} 4494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks 4497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 4498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request. 4502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) /* Derogation MISRAC2012-Rule-8.13 */ 4507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 4509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/ 4513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferISR != NULL) 4514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources); 4516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request. 4521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) 4526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; 4530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/ 4532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \ 4533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; ARM GAS /tmp/ccuRhBPx.s page 81 4536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear BERR flag */ 4538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 4539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ 4542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \ 4543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; 4546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear OVR flag */ 4548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 4549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ 4552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \ 4553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; 4556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ARLO flag */ 4558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 4559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 4562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 4563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */ 4565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_ 4566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror); 4568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback. 4573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) 4578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file 4584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback. 4589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ ARM GAS /tmp/ccuRhBPx.s page 82 4593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) 4594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file 4600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback. 4604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) 4609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file 4615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback. 4620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) 4625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file 4631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Slave Address Match callback. 4636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE 4639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code 4640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM 4643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(TransferDirection); 4647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(AddrMatchCode); 4648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, ARM GAS /tmp/ccuRhBPx.s page 83 4650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file 4651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Listen Complete callback. 4656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) 4661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file 4667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback. 4672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) 4677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file 4683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback. 4688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) 4693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file 4699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C error callback. 4704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None ARM GAS /tmp/ccuRhBPx.s page 84 4707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) 4709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file 4715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C abort callback. 4720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 4723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) 4725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(hi2c); 4728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file 4731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} 4736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions 4739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions 4740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * 4741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @verbatim 4742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== 4743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions ##### 4744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** =============================================================================== 4745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** [..] 4746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral 4747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** and the data flow. 4748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** @endverbatim 4750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 4751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Return the I2C handle state. 4755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL state 4758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c) 4760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return I2C handle state */ 4762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->State; 4763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 85 4764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode. 4767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for I2C module 4769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL mode 4770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c) 4772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->Mode; 4774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Return the I2C error code. 4778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval I2C Error Code 4781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c) 4783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->ErrorCode; 4785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} 4789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @} 4793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions 4796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @{ 4797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt. 4801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 4806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 4808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources) 4809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; 4811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 4814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 4817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 4818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 4820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); ARM GAS /tmp/ccuRhBPx.s page 86 4821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set corresponding Error Code */ 4823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 4824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 4825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 4828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 4831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 4832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 4834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 4835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 4837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 4838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 4840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 4841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 4843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 4844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 4846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 4847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ 4849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 4850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 4852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 4853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 4855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 4856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ 4858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 4859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 4861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 4863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 4865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 4867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 4868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 4873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 4875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 4876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else ARM GAS /tmp/ccuRhBPx.s page 87 4878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 4880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 4881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 4887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 4888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 4890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 4891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 4895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 4897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 4901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 4902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 4904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 4906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 4908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 4909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Stop */ 4911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 4912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 4916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 4917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 4923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 4924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 4925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 4928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 4930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 4933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 4934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 88 4935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master complete process */ 4936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 4937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 4940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 4943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 4946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with Interrupt. 4947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 4949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 4952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 4953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 4954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources) 4955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 4957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 4960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 4963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 4964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 4966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set corresponding Error Code */ 4969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 4970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 4971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 4974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 4977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 4978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 4980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 4981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 4983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 4984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 4986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 4987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 4989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 4990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ ARM GAS /tmp/ccuRhBPx.s page 89 4992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 4993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Memaddress == 0xFFFFFFFFU) 4995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ 4997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 4998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 5000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 5001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 5003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 5004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write LSB part of Memory Address */ 5008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress; 5009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset Memaddress content */ 5011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 5012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ 5015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 5018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 5024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 5040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ; 5045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 90 5049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 5052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 5054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */ 5060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 5062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 5067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master complete process */ 5073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 5074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 5080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt. 5084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 5086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 5089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources) 5092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */ 5097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if STOPF is set */ 5100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags); 5105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 91 5106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 5108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 5112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean XferCount == 0*/ 5113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 5122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 5124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 5126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 5129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 5138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 5144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 5145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 5158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 5159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 5161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ ARM GAS /tmp/ccuRhBPx.s page 92 5163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 5166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 5167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 5169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 5170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \ 5173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 5174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \ 5180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags); 5183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 5185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */ 5188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */ 5189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if all Data have already been sent */ 5190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */ 5191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 5192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write data to TXDR */ 5194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 5195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 5197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 5198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 5200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 5201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 5205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 5215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 93 5220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 5221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA. 5225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 5227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 5230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources) 5233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; 5235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 5236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 5238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 5244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set corresponding Error Code */ 5247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 5251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 5255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ 5258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable TC interrupt */ 5261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI); 5262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Recover Slave address */ 5266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 5267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; ARM GAS /tmp/ccuRhBPx.s page 94 5277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 5280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */ 5288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 5289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 5291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 5294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 5306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ 5320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 5327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 5328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Stop */ 5330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 5331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 95 5334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 5342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master complete process */ 5350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 5355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 5361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with DMA. 5365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 5367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 5370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources) 5373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 5375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Locked */ 5377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 5383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set corresponding Error Code */ 5386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 5390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ ARM GAS /tmp/ccuRhBPx.s page 96 5391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 5394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TXIS) != RESET) && \ 5397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write LSB part of Memory Address */ 5400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress; 5401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset Memaddress content */ 5403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 5404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ 5406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable only Error interrupt */ 5409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 5410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 5419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 5428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 5431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ ARM GAS /tmp/ccuRhBPx.s page 97 5448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ; 5453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 5460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 5462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */ 5468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 5470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update XferCount value */ 5473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable DMA Request */ 5476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Master complete process */ 5489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 5494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 5500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA. 5504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains ARM GAS /tmp/ccuRhBPx.s page 98 5505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 5506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 5509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t ITSources) 5512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 5515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 5516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process locked */ 5518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if STOPF is set */ 5521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags); 5526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 5533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean XferCount == 0 */ 5534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) || 5536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 5537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */ 5539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 5540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET) 5542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) 5544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** treatdmanack = 1U; 5546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */ 5551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 5552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) 5554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U) 5556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** treatdmanack = 1U; 5558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 99 5562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (treatdmanack == 1U) 5563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags); 5570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM 5572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 5574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 5577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 5586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 5592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 5593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */ 5599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpstate = hi2c->State; 5600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 5604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN 5608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Do nothing */ 5614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 100 5619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */ 5624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \ 5628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags); 5631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 5635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 5641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques 5645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 5647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 5650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 5652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value 5653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 5654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 5657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart) 5658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 5660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Memory Address */ 5671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 101 5676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TCR flag is set */ 5690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) 5691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 5696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request 5700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 5702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddress Internal memory address 5705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 5707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value 5708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 5709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 5712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart) 5713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 5715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send Memory Address */ 5726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); ARM GAS /tmp/ccuRhBPx.s page 102 5733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until TC flag is set */ 5745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) 5746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 5751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Address complete process callback. 5755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 5756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 5758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint8_t transferdirection; 5762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t slaveaddrcode; 5763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t ownadd1code; 5764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t ownadd2code; 5765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 5767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(ITFlags); 5768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */ 5770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 5771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c); 5773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 5774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 5775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 5776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If 10bits addressing mode is selected */ 5778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 5779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK)) 5781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = ownadd1code; 5783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrEventCount++; 5784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 5785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset Address Event counter */ 5787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrEventCount = 0U; 5788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ ARM GAS /tmp/ccuRhBPx.s page 103 5790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Slave Addr callback */ 5796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = ownadd2code; 5806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 5809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Slave Addr callback */ 5814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */ 5822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 5826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Slave Addr callback */ 5831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Else clear address flag only */ 5839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ADDR flag */ 5842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 104 5847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Master sequential complete process. 5851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 5852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 5853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c) 5855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */ 5857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */ 5860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */ 5861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 5865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ 5868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 5876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 5878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 5881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 5884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 5885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ 5888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 5896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 5898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Slave sequential complete process. ARM GAS /tmp/ccuRhBPx.s page 105 5904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 5905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 5906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c) 5908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 5910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */ 5912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 5915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 5916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 5918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 5919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 5921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 5923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 5924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Do nothing */ 5928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 5931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ 5933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 5934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ 5937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 5945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 5947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 5951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */ 5953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 5954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ 5957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 5960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); ARM GAS /tmp/ccuRhBPx.s page 106 5961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 5965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 5966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 5967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 5970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 5972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 5976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Master complete process. 5977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 5978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 5980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 5981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; 5984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __IO uint32_t tmpreg; 5986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 5988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 5989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 5991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 5995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 5999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 6000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Do nothing */ 6004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */ 6010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 6011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) 6014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 6016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 107 6018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set acknowledge error code */ 6019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Fetch Last receive data if any */ 6023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)) 6024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 6026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR; 6027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(tmpreg); 6028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 6031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 6034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 6035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE)) 6038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */ 6043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 6049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c); 6058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 6059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c); 6060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 6072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 6073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 6074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ ARM GAS /tmp/ccuRhBPx.s page 108 6075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 6078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 6084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c); 6093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 6094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c); 6095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 6107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 6108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 6109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 6115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Slave complete process. 6120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 6121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 6127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 6128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 6129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 6131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); ARM GAS /tmp/ccuRhBPx.s page 109 6132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 6134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 6135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 6137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 6138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 6142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 6143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Do nothing */ 6147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Address Acknowledge */ 6150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 6156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 6159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 6160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 6162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx); 6167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 6170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 6172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx); 6177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Do nothing */ 6182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */ 6185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) 6186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 6188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; ARM GAS /tmp/ccuRhBPx.s page 110 6189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 6191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 6192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 6194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 6195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 6197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 6199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 6200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */ 6204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 6205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 6212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) 6214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 6220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Listen complete process */ 6222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 6223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 6226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */ 6228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 6240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 6241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 6242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) ARM GAS /tmp/ccuRhBPx.s page 111 6246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 6256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 6257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 6258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6267:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6268:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 6271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 6272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 6273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6274:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Listen complete process. 6279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 6280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6281:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */ 6286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 6291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */ 6293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET) 6294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Read data from RXDR */ 6296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 6297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6298:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Increment Buffer pointer */ 6299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr++; 6300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 6302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 112 6303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 6304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 6305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6310:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable all Interrupts*/ 6312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACK Flag */ 6315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6316:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6321:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 6323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 6324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 6325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C interrupts error process. 6330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 6331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param ErrorCode Error code to handle. 6332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) 6335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 6337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmppreviousstate; 6339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */ 6341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = 0U; 6344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set new error code */ 6346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode; 6347:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Interrupts */ 6349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) || 6350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 6351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */ 6354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */ 6357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 6359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 113 6360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable all interrupts */ 6363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 6366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */ 6369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* This change will be do later */ 6370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT) 6371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */ 6373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a STOPF is detected */ 6376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) 6377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 6379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6384:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 6385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6387:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 6390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX transfer if any */ 6393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState; 6394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 6396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 6397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 6399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6402:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) 6404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 6408:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA TX */ 6413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 6414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 6416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); ARM GAS /tmp/ccuRhBPx.s page 114 6417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX transfer if any */ 6425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \ 6426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 6427:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 6429:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) 6434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 6438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6441:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Abort DMA RX */ 6443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 6444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ 6446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 6447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Error callback treatment. 6462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 6463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c) 6466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 6468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); ARM GAS /tmp/ccuRhBPx.s page 115 6474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c); 6478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 6479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); 6480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c); 6492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #else 6493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); 6494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief I2C Tx data register flush process. 6500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 6501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6502:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) 6504:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 27 .loc 1 6504 1 view -0 28 .cfi_startproc 29 @ args = 0, pretend = 0, frame = 0 30 @ frame_needed = 0, uses_anonymous_args = 0 31 @ link register save eliminated. 6505:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If a pending TXIS flag is set */ 6506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */ 6507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) 32 .loc 1 6507 3 view .LVU1 33 .loc 1 6507 7 is_stmt 0 view .LVU2 34 0000 0268 ldr r2, [r0] 35 0002 9369 ldr r3, [r2, #24] 36 .loc 1 6507 6 view .LVU3 37 0004 9B07 lsls r3, r3, #30 38 0006 01D5 bpl .L2 6508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U; 39 .loc 1 6509 5 is_stmt 1 view .LVU4 40 .loc 1 6509 26 is_stmt 0 view .LVU5 41 0008 0023 movs r3, #0 42 000a 9362 str r3, [r2, #40] 43 .L2: 6510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register if not empty */ 6513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) ARM GAS /tmp/ccuRhBPx.s page 116 44 .loc 1 6513 3 is_stmt 1 view .LVU6 45 .loc 1 6513 7 is_stmt 0 view .LVU7 46 000c 0368 ldr r3, [r0] 47 000e 9A69 ldr r2, [r3, #24] 48 .loc 1 6513 6 view .LVU8 49 0010 D207 lsls r2, r2, #31 50 0012 03D4 bmi .L1 6514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); 51 .loc 1 6515 5 is_stmt 1 view .LVU9 52 0014 9A69 ldr r2, [r3, #24] 53 0016 0121 movs r1, #1 54 0018 0A43 orrs r2, r1 55 001a 9A61 str r2, [r3, #24] 56 .L1: 6516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 57 .loc 1 6517 1 is_stmt 0 view .LVU10 58 @ sp needed 59 001c 7047 bx lr 60 .cfi_endproc 61 .LFE105: 63 .section .text.I2C_TransferConfig,"ax",%progbits 64 .align 1 65 .syntax unified 66 .code 16 67 .thumb_func 69 I2C_TransferConfig: 70 .LVL1: 71 .LFB117: 6518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback. 6521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle 6522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma) 6525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 6530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupt */ 6536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6537:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Buffer pointer */ 6542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the XferSize to transfer */ ARM GAS /tmp/ccuRhBPx.s page 117 6545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 6555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 6556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6561:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */ 6564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6568:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback. 6572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle 6573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) 6576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 6582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6583:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 6584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback. 6601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle ARM GAS /tmp/ccuRhBPx.s page 118 6602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma) 6605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 6610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupt */ 6616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Buffer pointer */ 6622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6628:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable the DMA channel */ 6635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, 6636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */ 6644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6649:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback. 6652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle 6653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6655:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma) 6656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); ARM GAS /tmp/ccuRhBPx.s page 119 6659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \ 6662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 6663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable DMA Request */ 6665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6666:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C communication error callback. 6681:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle 6682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma) 6685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable Acknowledge */ 6690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief DMA I2C communication abort callback 6699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure). 6700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hdma DMA handle. 6701:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 6702:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6703:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) 6704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6707:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset AbortCpltCallback */ 6709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; ARM GAS /tmp/ccuRhBPx.s page 120 6716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. It waits 6724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * until a flag is no longer in the specified status. 6725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 6727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check. 6728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Status The actual Flag status (SET or RESET). 6729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 6730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value 6731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 6732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 6734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart) 6735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 6737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ 6739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)) 6744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6748:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6752:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6754:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6755:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 6757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6758:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag. 6761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 6763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 6764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value 6765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 6766:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6768:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart) 6769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 6771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if an error is detected */ ARM GAS /tmp/ccuRhBPx.s page 121 6773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 6774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6776:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ 6779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)) 6784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6788:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6791:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 6798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6800:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. 6802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 6804:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 6805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value 6806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 6807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart) 6810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 6812:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if an error is detected */ 6814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 6815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ 6820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)) 6823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); ARM GAS /tmp/ccuRhBPx.s page 122 6830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6833:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 6836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6838:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6839:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. 6840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 6842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 6843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value 6844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 6845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Tickstart) 6848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 6850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if an error is detected */ 6852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 6853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a STOPF is detected */ 6858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) 6859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if an RXNE is pending */ 6861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Store Last receive data if any */ 6862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U)) 6863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return HAL_OK */ 6865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */ 6866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 6867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6869:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 6871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 6874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 6876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6878:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 6881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/ccuRhBPx.s page 123 6887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ 6897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6898:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)) 6900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 6905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6906:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_OK; 6912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief This function handles errors detection during an I2C Communication. 6916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 6918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Timeout Timeout duration 6919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Tickstart Tick start value 6920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval HAL status 6921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 6922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Ti 6923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 6925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 6926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t error_code = 0; 6927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 6928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmp1; 6929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 6930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF)) 6932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear NACKF Flag */ 6934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Wait until STOP Flag is set or timeout occurred */ 6937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */ 6938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) 6939:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ 6941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) ARM GAS /tmp/ccuRhBPx.s page 124 6944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP); 6946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = hi2c->Mode; 6947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6948:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* In case of I2C still busy, try to regenerate a STOP manually */ 6949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \ 6950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 6951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 6952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Generate Stop */ 6954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 6955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Update Tick with new reference */ 6957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tickstart = HAL_GetTick(); 6958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 6961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check for the Timeout */ 6963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF) 6964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_TIMEOUT; 6966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 6968:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** break; 6970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* In case STOP Flag is detected, clear it */ 6977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (status == HAL_OK) 6978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear STOP Flag */ 6980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_AF; 6984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 6986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Refresh Content of Status register */ 6989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** itflag = hi2c->Instance->ISR; 6990:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Then verify if an additional errors occurs */ 6992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if a Bus error occurred */ 6993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR)) 6994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR; 6996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear BERR flag */ 6998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 6999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; ARM GAS /tmp/ccuRhBPx.s page 125 7001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if an Over-Run/Under-Run error occurred */ 7004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR)) 7005:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_OVR; 7007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear OVR flag */ 7009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 7010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 7012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check if an Arbitration Loss error occurred */ 7015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO)) 7016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_ARLO; 7018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear ARLO flag */ 7020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 7021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** status = HAL_ERROR; 7023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (status != HAL_OK) 7026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Flush TX register */ 7028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 7029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 7031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 7032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= error_code; 7034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Process Unlocked */ 7038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return status; 7042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 7045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar 7046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 7047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed. 7048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed. 7049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter must be a value between 0 and 255. 7050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation. 7051:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: 7052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode . 7053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode. 7054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode. 7055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation. 7056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * This parameter can be one of the following values: 7057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition. ARM GAS /tmp/ccuRhBPx.s page 126 7058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0). 7059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request. 7060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. 7061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 7062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 7063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 7064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t Request) 7065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 72 .loc 1 7065 1 is_stmt 1 view -0 73 .cfi_startproc 74 @ args = 4, pretend = 0, frame = 0 75 @ frame_needed = 0, uses_anonymous_args = 0 76 .loc 1 7065 1 is_stmt 0 view .LVU12 77 0000 10B5 push {r4, lr} 78 .cfi_def_cfa_offset 8 79 .cfi_offset 4, -8 80 .cfi_offset 14, -4 7066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 7067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 81 .loc 1 7067 3 is_stmt 1 view .LVU13 7068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode)); 82 .loc 1 7068 3 view .LVU14 7069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request)); 83 .loc 1 7069 3 view .LVU15 7070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7071:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 7072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ 84 .loc 1 7072 3 view .LVU16 85 .loc 1 7072 52 is_stmt 0 view .LVU17 86 0002 8905 lsls r1, r1, #22 87 .LVL2: 88 .loc 1 7072 52 view .LVU18 89 0004 890D lsrs r1, r1, #22 7073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 90 .loc 1 7073 70 view .LVU19 91 0006 1204 lsls r2, r2, #16 92 .LVL3: 7072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 93 .loc 1 7072 68 view .LVU20 94 0008 1143 orrs r1, r2 95 .loc 1 7073 88 view .LVU21 96 000a 1943 orrs r1, r3 7072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 97 .loc 1 7072 19 view .LVU22 98 000c 029B ldr r3, [sp, #8] 99 .LVL4: 7072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 100 .loc 1 7072 19 view .LVU23 101 000e 1943 orrs r1, r3 7072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 102 .loc 1 7072 12 view .LVU24 103 0010 4900 lsls r1, r1, #1 104 0012 4908 lsrs r1, r1, #1 105 .LVL5: 7074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U)); 7075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7076:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* update CR2 register */ ARM GAS /tmp/ccuRhBPx.s page 127 7077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, \ 106 .loc 1 7077 3 is_stmt 1 view .LVU25 107 0014 0468 ldr r4, [r0] 108 0016 6268 ldr r2, [r4, #4] 109 0018 5B0D lsrs r3, r3, #21 110 001a 8020 movs r0, #128 111 .LVL6: 112 .loc 1 7077 3 is_stmt 0 view .LVU26 113 001c C000 lsls r0, r0, #3 114 001e 0340 ands r3, r0 115 0020 0348 ldr r0, .L7 116 0022 0343 orrs r3, r0 117 0024 9A43 bics r2, r3 118 0026 1300 movs r3, r2 119 0028 0B43 orrs r3, r1 120 002a 6360 str r3, [r4, #4] 7078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \ 7079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \ 7080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), tmp); 7081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 121 .loc 1 7081 1 view .LVU27 122 @ sp needed 123 002c 10BD pop {r4, pc} 124 .L8: 125 002e C046 .align 2 126 .L7: 127 0030 FF63FF03 .word 67068927 128 .cfi_endproc 129 .LFE117: 131 .section .text.I2C_Enable_IRQ,"ax",%progbits 132 .align 1 133 .syntax unified 134 .code 16 135 .thumb_func 137 I2C_Enable_IRQ: 138 .LVL7: 139 .LFB118: 7082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 7084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts. 7085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7086:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 7087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 7088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 7089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 7090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 7091:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 140 .loc 1 7091 1 is_stmt 1 view -0 141 .cfi_startproc 142 @ args = 0, pretend = 0, frame = 0 143 @ frame_needed = 0, uses_anonymous_args = 0 144 .loc 1 7091 1 is_stmt 0 view .LVU29 145 0000 10B5 push {r4, lr} 146 .cfi_def_cfa_offset 8 147 .cfi_offset 4, -8 148 .cfi_offset 14, -4 7092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpisr = 0U; ARM GAS /tmp/ccuRhBPx.s page 128 149 .loc 1 7092 3 is_stmt 1 view .LVU30 150 .LVL8: 7093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Master_ISR_DMA) && \ 151 .loc 1 7094 3 view .LVU31 152 .loc 1 7094 12 is_stmt 0 view .LVU32 153 0002 426B ldr r2, [r0, #52] 154 .loc 1 7094 6 view .LVU33 155 0004 224B ldr r3, .L31 156 0006 9A42 cmp r2, r3 157 0008 1DD0 beq .L10 158 .loc 1 7094 45 discriminator 1 view .LVU34 159 000a 224B ldr r3, .L31+4 160 000c 9A42 cmp r2, r3 161 000e 1AD0 beq .L10 7095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \ 162 .loc 1 7095 44 view .LVU35 163 0010 214B ldr r3, .L31+8 164 0012 9A42 cmp r2, r3 165 0014 17D0 beq .L10 7096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->XferISR != I2C_Mem_ISR_DMA)) 7097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 166 .loc 1 7098 5 is_stmt 1 view .LVU36 167 .loc 1 7098 49 is_stmt 0 view .LVU37 168 0016 0BB2 sxth r3, r1 169 .loc 1 7098 8 view .LVU38 170 0018 002B cmp r3, #0 171 001a 0FDB blt .L21 7092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 172 .loc 1 7092 12 view .LVU39 173 001c 0023 movs r3, #0 174 .L11: 175 .LVL9: 7099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 7101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7103:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 176 .loc 1 7104 5 is_stmt 1 view .LVU40 177 .loc 1 7104 8 is_stmt 0 view .LVU41 178 001e CA07 lsls r2, r1, #31 179 0020 01D5 bpl .L12 7105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 7107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; 180 .loc 1 7107 7 is_stmt 1 view .LVU42 181 .loc 1 7107 14 is_stmt 0 view .LVU43 182 0022 F222 movs r2, #242 183 0024 1343 orrs r3, r2 184 .LVL10: 185 .L12: 7108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 186 .loc 1 7110 5 is_stmt 1 view .LVU44 ARM GAS /tmp/ccuRhBPx.s page 129 187 .loc 1 7110 8 is_stmt 0 view .LVU45 188 0026 8A07 lsls r2, r1, #30 189 0028 01D5 bpl .L13 7111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7112:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 7113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; 190 .loc 1 7113 7 is_stmt 1 view .LVU46 191 .loc 1 7113 14 is_stmt 0 view .LVU47 192 002a F422 movs r2, #244 193 002c 1343 orrs r3, r2 194 .LVL11: 195 .L13: 7114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 196 .loc 1 7116 5 is_stmt 1 view .LVU48 197 .loc 1 7116 8 is_stmt 0 view .LVU49 198 002e 1029 cmp r1, #16 199 0030 06D0 beq .L27 200 .L14: 7117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 201 .loc 1 7122 5 is_stmt 1 view .LVU50 202 .loc 1 7122 8 is_stmt 0 view .LVU51 203 0032 2029 cmp r1, #32 204 0034 1CD1 bne .L15 7123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupts */ 7125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 205 .loc 1 7125 7 is_stmt 1 view .LVU52 206 .loc 1 7125 14 is_stmt 0 view .LVU53 207 0036 2022 movs r2, #32 208 0038 1343 orrs r3, r2 209 .LVL12: 210 .loc 1 7125 14 view .LVU54 211 003a 19E0 b .L15 212 .LVL13: 213 .L21: 7101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 214 .loc 1 7101 14 view .LVU55 215 003c B823 movs r3, #184 216 003e EEE7 b .L11 217 .LVL14: 218 .L27: 7119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 219 .loc 1 7119 7 is_stmt 1 view .LVU56 7119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 220 .loc 1 7119 14 is_stmt 0 view .LVU57 221 0040 9022 movs r2, #144 222 0042 1343 orrs r3, r2 223 .LVL15: 7119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 224 .loc 1 7119 14 view .LVU58 ARM GAS /tmp/ccuRhBPx.s page 130 225 0044 F5E7 b .L14 226 .LVL16: 227 .L10: 7126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 7130:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 228 .loc 1 7131 5 is_stmt 1 view .LVU59 229 .loc 1 7131 49 is_stmt 0 view .LVU60 230 0046 0BB2 sxth r3, r1 231 .loc 1 7131 8 view .LVU61 232 0048 002B cmp r3, #0 233 004a 16DB blt .L22 7092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 234 .loc 1 7092 12 view .LVU62 235 004c 0023 movs r3, #0 236 .L16: 237 .LVL17: 7132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 7134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 238 .loc 1 7137 5 is_stmt 1 view .LVU63 239 .loc 1 7137 8 is_stmt 0 view .LVU64 240 004e CC07 lsls r4, r1, #31 241 0050 01D5 bpl .L17 7138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 7140:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; 242 .loc 1 7140 7 is_stmt 1 view .LVU65 243 .loc 1 7140 14 is_stmt 0 view .LVU66 244 0052 F224 movs r4, #242 245 0054 2343 orrs r3, r4 246 .LVL18: 247 .L17: 7141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 248 .loc 1 7143 5 is_stmt 1 view .LVU67 249 .loc 1 7143 8 is_stmt 0 view .LVU68 250 0056 8C07 lsls r4, r1, #30 251 0058 01D5 bpl .L18 7144:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 7146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; 252 .loc 1 7146 7 is_stmt 1 view .LVU69 253 .loc 1 7146 14 is_stmt 0 view .LVU70 254 005a F424 movs r4, #244 255 005c 2343 orrs r3, r4 256 .LVL19: 257 .L18: 7147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 131 7149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 258 .loc 1 7149 5 is_stmt 1 view .LVU71 259 .loc 1 7149 8 is_stmt 0 view .LVU72 260 005e 1029 cmp r1, #16 261 0060 0DD0 beq .L28 262 .L19: 7150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7155:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 263 .loc 1 7155 5 is_stmt 1 view .LVU73 264 .loc 1 7155 8 is_stmt 0 view .LVU74 265 0062 2029 cmp r1, #32 266 0064 0ED0 beq .L29 267 .L20: 7156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupts */ 7158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI); 7159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Mem_ISR_DMA) && (InterruptRequest == I2C_XFER_RELOAD_IT)) 268 .loc 1 7161 5 is_stmt 1 view .LVU75 269 .loc 1 7161 8 is_stmt 0 view .LVU76 270 0066 0C4C ldr r4, .L31+8 271 0068 A242 cmp r2, r4 272 006a 01D0 beq .L15 273 .loc 1 7161 44 discriminator 1 view .LVU77 274 006c 4029 cmp r1, #64 275 006e 0CD0 beq .L30 276 .L15: 7162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */ 7164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 7165:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable interrupts only at the end */ 7169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */ 7170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* all interrupts requested done */ 7171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr); 277 .loc 1 7171 3 is_stmt 1 view .LVU78 278 0070 0168 ldr r1, [r0] 279 .LVL20: 280 .loc 1 7171 3 is_stmt 0 view .LVU79 281 0072 0A68 ldr r2, [r1] 282 0074 1343 orrs r3, r2 283 .LVL21: 284 .loc 1 7171 3 view .LVU80 285 0076 0B60 str r3, [r1] 7172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 286 .loc 1 7172 1 view .LVU81 287 @ sp needed 288 0078 10BD pop {r4, pc} 289 .LVL22: 290 .L22: ARM GAS /tmp/ccuRhBPx.s page 132 7134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 291 .loc 1 7134 14 view .LVU82 292 007a B823 movs r3, #184 293 007c E7E7 b .L16 294 .LVL23: 295 .L28: 7152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 296 .loc 1 7152 7 is_stmt 1 view .LVU83 7152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 297 .loc 1 7152 14 is_stmt 0 view .LVU84 298 007e 9024 movs r4, #144 299 0080 2343 orrs r3, r4 300 .LVL24: 7152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 301 .loc 1 7152 14 view .LVU85 302 0082 EEE7 b .L19 303 .L29: 7158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 304 .loc 1 7158 7 is_stmt 1 view .LVU86 7158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 305 .loc 1 7158 14 is_stmt 0 view .LVU87 306 0084 6024 movs r4, #96 307 0086 2343 orrs r3, r4 308 .LVL25: 7158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 309 .loc 1 7158 14 view .LVU88 310 0088 EDE7 b .L20 311 .L30: 7164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 312 .loc 1 7164 7 is_stmt 1 view .LVU89 7164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 313 .loc 1 7164 14 is_stmt 0 view .LVU90 314 008a 4022 movs r2, #64 315 008c 1343 orrs r3, r2 316 .LVL26: 7164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 317 .loc 1 7164 14 view .LVU91 318 008e EFE7 b .L15 319 .L32: 320 .align 2 321 .L31: 322 0090 00000000 .word I2C_Master_ISR_DMA 323 0094 00000000 .word I2C_Slave_ISR_DMA 324 0098 00000000 .word I2C_Mem_ISR_DMA 325 .cfi_endproc 326 .LFE118: 328 .section .text.I2C_Disable_IRQ,"ax",%progbits 329 .align 1 330 .syntax unified 331 .code 16 332 .thumb_func 334 I2C_Disable_IRQ: 335 .LVL27: 336 .LFB119: 7173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 7175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts. ARM GAS /tmp/ccuRhBPx.s page 133 7176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * the configuration information for the specified I2C. 7178:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 7179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 7180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 7181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 7182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 337 .loc 1 7182 1 is_stmt 1 view -0 338 .cfi_startproc 339 @ args = 0, pretend = 0, frame = 0 340 @ frame_needed = 0, uses_anonymous_args = 0 341 .loc 1 7182 1 is_stmt 0 view .LVU93 342 0000 30B5 push {r4, r5, lr} 343 .cfi_def_cfa_offset 12 344 .cfi_offset 4, -12 345 .cfi_offset 5, -8 346 .cfi_offset 14, -4 7183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpisr = 0U; 347 .loc 1 7183 3 is_stmt 1 view .LVU94 348 .LVL28: 7184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 349 .loc 1 7185 3 view .LVU95 350 .loc 1 7185 6 is_stmt 0 view .LVU96 351 0002 CB07 lsls r3, r1, #31 352 0004 09D5 bpl .L40 7186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable TC and TXI interrupts */ 7188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI; 353 .loc 1 7188 5 is_stmt 1 view .LVU97 354 .LVL29: 7189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 355 .loc 1 7190 5 view .LVU98 356 .loc 1 7190 24 is_stmt 0 view .LVU99 357 0006 4123 movs r3, #65 358 0008 C35C ldrb r3, [r0, r3] 359 .loc 1 7190 8 view .LVU100 360 000a 2822 movs r2, #40 361 000c 1340 ands r3, r2 362 000e 282B cmp r3, #40 363 0010 01D0 beq .L44 7191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 7193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 364 .loc 1 7193 14 view .LVU101 365 0012 F223 movs r3, #242 366 0014 02E0 b .L34 367 .L44: 7188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 368 .loc 1 7188 12 view .LVU102 369 0016 1A33 adds r3, r3, #26 370 0018 00E0 b .L34 371 .LVL30: 372 .L40: 7183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 373 .loc 1 7183 12 view .LVU103 ARM GAS /tmp/ccuRhBPx.s page 134 374 001a 0023 movs r3, #0 375 .LVL31: 376 .L34: 7194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 377 .loc 1 7197 3 is_stmt 1 view .LVU104 378 .loc 1 7197 6 is_stmt 0 view .LVU105 379 001c 8A07 lsls r2, r1, #30 380 001e 09D5 bpl .L35 7198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable TC and RXI interrupts */ 7200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI; 381 .loc 1 7200 5 is_stmt 1 view .LVU106 382 .loc 1 7200 12 is_stmt 0 view .LVU107 383 0020 4424 movs r4, #68 384 0022 1C43 orrs r4, r3 385 .LVL32: 7201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 386 .loc 1 7202 5 is_stmt 1 view .LVU108 387 .loc 1 7202 24 is_stmt 0 view .LVU109 388 0024 4122 movs r2, #65 389 0026 825C ldrb r2, [r0, r2] 390 .loc 1 7202 8 view .LVU110 391 0028 2825 movs r5, #40 392 002a 2A40 ands r2, r5 393 002c 282A cmp r2, #40 394 002e 0FD0 beq .L42 7203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 7205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 395 .loc 1 7205 7 is_stmt 1 view .LVU111 396 .loc 1 7205 14 is_stmt 0 view .LVU112 397 0030 F422 movs r2, #244 398 0032 1343 orrs r3, r2 399 .LVL33: 400 .L35: 7206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 401 .loc 1 7209 3 is_stmt 1 view .LVU113 402 .loc 1 7209 47 is_stmt 0 view .LVU114 403 0034 0AB2 sxth r2, r1 404 .loc 1 7209 6 view .LVU115 405 0036 002A cmp r2, #0 406 0038 0CDB blt .L45 407 .L36: 7210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */ 7212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 408 .loc 1 7215 3 is_stmt 1 view .LVU116 ARM GAS /tmp/ccuRhBPx.s page 135 409 .loc 1 7215 6 is_stmt 0 view .LVU117 410 003a 1029 cmp r1, #16 411 003c 0DD0 beq .L46 412 .L37: 7216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 413 .loc 1 7221 3 is_stmt 1 view .LVU118 414 .loc 1 7221 6 is_stmt 0 view .LVU119 415 003e 2029 cmp r1, #32 416 0040 0ED0 beq .L47 417 .L38: 7222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable STOP interrupts */ 7224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 7225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7227:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 418 .loc 1 7227 3 is_stmt 1 view .LVU120 419 .loc 1 7227 6 is_stmt 0 view .LVU121 420 0042 4029 cmp r1, #64 421 0044 0FD0 beq .L48 422 .L39: 7228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Enable TC interrupts */ 7230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 7231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Disable interrupts only at the end */ 7234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */ 7235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* all disable interrupts request are not done */ 7236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr); 423 .loc 1 7236 3 is_stmt 1 view .LVU122 424 0046 0168 ldr r1, [r0] 425 .LVL34: 426 .loc 1 7236 3 is_stmt 0 view .LVU123 427 0048 0A68 ldr r2, [r1] 428 004a 9A43 bics r2, r3 429 004c 0A60 str r2, [r1] 7237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 430 .loc 1 7237 1 view .LVU124 431 @ sp needed 432 004e 30BD pop {r4, r5, pc} 433 .LVL35: 434 .L42: 7200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 435 .loc 1 7200 12 view .LVU125 436 0050 2300 movs r3, r4 437 0052 EFE7 b .L35 438 .LVL36: 439 .L45: 7212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 440 .loc 1 7212 5 is_stmt 1 view .LVU126 7212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 136 441 .loc 1 7212 12 is_stmt 0 view .LVU127 442 0054 B822 movs r2, #184 443 0056 1343 orrs r3, r2 444 .LVL37: 7212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 445 .loc 1 7212 12 view .LVU128 446 0058 EFE7 b .L36 447 .L46: 7218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 448 .loc 1 7218 5 is_stmt 1 view .LVU129 7218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 449 .loc 1 7218 12 is_stmt 0 view .LVU130 450 005a 9022 movs r2, #144 451 005c 1343 orrs r3, r2 452 .LVL38: 7218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 453 .loc 1 7218 12 view .LVU131 454 005e EEE7 b .L37 455 .L47: 7224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 456 .loc 1 7224 5 is_stmt 1 view .LVU132 7224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 457 .loc 1 7224 12 is_stmt 0 view .LVU133 458 0060 2022 movs r2, #32 459 0062 1343 orrs r3, r2 460 .LVL39: 7224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 461 .loc 1 7224 12 view .LVU134 462 0064 EDE7 b .L38 463 .L48: 7230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 464 .loc 1 7230 5 is_stmt 1 view .LVU135 7230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 465 .loc 1 7230 12 is_stmt 0 view .LVU136 466 0066 4022 movs r2, #64 467 0068 1343 orrs r3, r2 468 .LVL40: 7230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 469 .loc 1 7230 12 view .LVU137 470 006a ECE7 b .L39 471 .cfi_endproc 472 .LFE119: 474 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits 475 .align 1 476 .syntax unified 477 .code 16 478 .thumb_func 480 I2C_ConvertOtherXferOptions: 481 .LVL41: 482 .LFB120: 7238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 7240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions. 7241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @param hi2c I2C handle. 7242:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** * @retval None 7243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** */ 7244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) ARM GAS /tmp/ccuRhBPx.s page 137 7245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 483 .loc 1 7245 1 is_stmt 1 view -0 484 .cfi_startproc 485 @ args = 0, pretend = 0, frame = 0 486 @ frame_needed = 0, uses_anonymous_args = 0 487 @ link register save eliminated. 7246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */ 7247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 7248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */ 7249:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME) 488 .loc 1 7249 3 view .LVU139 489 .loc 1 7249 11 is_stmt 0 view .LVU140 490 0000 C36A ldr r3, [r0, #44] 491 .loc 1 7249 6 view .LVU141 492 0002 AA2B cmp r3, #170 493 0004 05D0 beq .L52 7250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME; 7252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */ 7254:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 7255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */ 7256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */ 7257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) 494 .loc 1 7257 8 is_stmt 1 view .LVU142 495 .loc 1 7257 16 is_stmt 0 view .LVU143 496 0006 C26A ldr r2, [r0, #44] 497 .loc 1 7257 11 view .LVU144 498 0008 AA23 movs r3, #170 499 000a 1B02 lsls r3, r3, #8 500 000c 9A42 cmp r2, r3 501 000e 03D0 beq .L53 502 .L49: 7258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; 7260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** else 7262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Nothing to do */ 7264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 503 .loc 1 7265 1 view .LVU145 504 @ sp needed 505 0010 7047 bx lr 506 .L52: 7251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 507 .loc 1 7251 5 is_stmt 1 view .LVU146 7251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 508 .loc 1 7251 23 is_stmt 0 view .LVU147 509 0012 0023 movs r3, #0 510 0014 C362 str r3, [r0, #44] 511 0016 FBE7 b .L49 512 .L53: 7259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 513 .loc 1 7259 5 is_stmt 1 view .LVU148 7259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 514 .loc 1 7259 23 is_stmt 0 view .LVU149 ARM GAS /tmp/ccuRhBPx.s page 138 515 0018 8023 movs r3, #128 516 001a 9B04 lsls r3, r3, #18 517 001c C362 str r3, [r0, #44] 7264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 518 .loc 1 7264 3 is_stmt 1 view .LVU150 519 .loc 1 7265 1 is_stmt 0 view .LVU151 520 001e F7E7 b .L49 521 .cfi_endproc 522 .LFE120: 524 .section .text.I2C_IsErrorOccurred,"ax",%progbits 525 .align 1 526 .syntax unified 527 .code 16 528 .thumb_func 530 I2C_IsErrorOccurred: 531 .LVL42: 532 .LFB116: 6923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 533 .loc 1 6923 1 is_stmt 1 view -0 534 .cfi_startproc 535 @ args = 0, pretend = 0, frame = 0 536 @ frame_needed = 0, uses_anonymous_args = 0 6923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 537 .loc 1 6923 1 is_stmt 0 view .LVU153 538 0000 F0B5 push {r4, r5, r6, r7, lr} 539 .cfi_def_cfa_offset 20 540 .cfi_offset 4, -20 541 .cfi_offset 5, -16 542 .cfi_offset 6, -12 543 .cfi_offset 7, -8 544 .cfi_offset 14, -4 545 0002 C646 mov lr, r8 546 0004 00B5 push {lr} 547 .cfi_def_cfa_offset 24 548 .cfi_offset 8, -24 549 0006 0400 movs r4, r0 550 0008 0D00 movs r5, r1 551 000a 1700 movs r7, r2 6924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 552 .loc 1 6924 3 is_stmt 1 view .LVU154 553 .LVL43: 6925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t error_code = 0; 554 .loc 1 6925 3 view .LVU155 6925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t error_code = 0; 555 .loc 1 6925 27 is_stmt 0 view .LVU156 556 000c 0168 ldr r1, [r0] 557 .LVL44: 6925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t error_code = 0; 558 .loc 1 6925 12 view .LVU157 559 000e 8B69 ldr r3, [r1, #24] 560 .LVL45: 6926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 561 .loc 1 6926 3 is_stmt 1 view .LVU158 6927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmp1; 562 .loc 1 6927 3 view .LVU159 6928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 563 .loc 1 6928 3 view .LVU160 ARM GAS /tmp/ccuRhBPx.s page 139 6929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 564 .loc 1 6929 3 view .LVU161 6931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 565 .loc 1 6931 3 view .LVU162 6931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 566 .loc 1 6931 7 is_stmt 0 view .LVU163 567 0010 1022 movs r2, #16 568 .LVL46: 6931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 569 .loc 1 6931 7 view .LVU164 570 0012 1600 movs r6, r2 571 0014 1E40 ands r6, r3 6931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 572 .loc 1 6931 6 view .LVU165 573 0016 1A42 tst r2, r3 574 0018 00D1 bne .LCB565 575 001a 75E0 b .L71 @long jump 576 .LCB565: 6934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 577 .loc 1 6934 5 is_stmt 1 view .LVU166 578 001c 1023 movs r3, #16 579 .LVL47: 6934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 580 .loc 1 6934 5 is_stmt 0 view .LVU167 581 001e CB61 str r3, [r1, #28] 6938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 582 .loc 1 6938 5 is_stmt 1 view .LVU168 6926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 583 .loc 1 6926 12 is_stmt 0 view .LVU169 584 0020 0023 movs r3, #0 585 0022 9846 mov r8, r3 6924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 586 .loc 1 6924 21 view .LVU170 587 0024 0026 movs r6, #0 588 .LVL48: 589 .L57: 6938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 590 .loc 1 6938 64 is_stmt 1 view .LVU171 6938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 591 .loc 1 6938 13 is_stmt 0 view .LVU172 592 0026 2068 ldr r0, [r4] 593 0028 8369 ldr r3, [r0, #24] 6938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 594 .loc 1 6938 64 view .LVU173 595 002a 9B06 lsls r3, r3, #26 596 002c 31D4 bmi .L63 6938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 597 .loc 1 6938 64 discriminator 1 view .LVU174 598 002e 002E cmp r6, #0 599 0030 2FD1 bne .L63 6941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 600 .loc 1 6941 7 is_stmt 1 view .LVU175 6941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 601 .loc 1 6941 10 is_stmt 0 view .LVU176 602 0032 6B1C adds r3, r5, #1 603 0034 F7D0 beq .L57 6943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 140 604 .loc 1 6943 9 is_stmt 1 view .LVU177 6943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 605 .loc 1 6943 15 is_stmt 0 view .LVU178 606 0036 FFF7FEFF bl HAL_GetTick 607 .LVL49: 6943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 608 .loc 1 6943 29 discriminator 1 view .LVU179 609 003a C01B subs r0, r0, r7 6943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 610 .loc 1 6943 12 discriminator 1 view .LVU180 611 003c A842 cmp r0, r5 612 003e 01D8 bhi .L58 6943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 613 .loc 1 6943 53 discriminator 1 view .LVU181 614 0040 002D cmp r5, #0 615 0042 F0D1 bne .L57 616 .L58: 6945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = hi2c->Mode; 617 .loc 1 6945 11 is_stmt 1 view .LVU182 6945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = hi2c->Mode; 618 .loc 1 6945 33 is_stmt 0 view .LVU183 619 0044 2168 ldr r1, [r4] 6945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = hi2c->Mode; 620 .loc 1 6945 43 view .LVU184 621 0046 4B68 ldr r3, [r1, #4] 6945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = hi2c->Mode; 622 .loc 1 6945 16 view .LVU185 623 0048 8022 movs r2, #128 624 004a D201 lsls r2, r2, #7 625 004c 1340 ands r3, r2 626 .LVL50: 6946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 627 .loc 1 6946 11 is_stmt 1 view .LVU186 6946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 628 .loc 1 6946 16 is_stmt 0 view .LVU187 629 004e 4222 movs r2, #66 630 0050 A25C ldrb r2, [r4, r2] 631 0052 D2B2 uxtb r2, r2 632 .LVL51: 6949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 633 .loc 1 6949 11 is_stmt 1 view .LVU188 6949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 634 .loc 1 6949 16 is_stmt 0 view .LVU189 635 0054 8869 ldr r0, [r1, #24] 6949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 636 .loc 1 6949 14 view .LVU190 637 0056 0004 lsls r0, r0, #16 638 0058 03D5 bpl .L61 6949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 639 .loc 1 6949 66 discriminator 1 view .LVU191 640 005a 002B cmp r3, #0 641 005c 01D1 bne .L61 6950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 642 .loc 1 6950 38 view .LVU192 643 005e 202A cmp r2, #32 644 0060 0ED1 bne .L77 645 .LVL52: ARM GAS /tmp/ccuRhBPx.s page 141 646 .L61: 6960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 647 .loc 1 6960 59 is_stmt 1 view .LVU193 6960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 648 .loc 1 6960 18 is_stmt 0 view .LVU194 649 0062 2368 ldr r3, [r4] 650 0064 9B69 ldr r3, [r3, #24] 6960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 651 .loc 1 6960 59 view .LVU195 652 0066 9B06 lsls r3, r3, #26 653 0068 DDD4 bmi .L57 6963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 654 .loc 1 6963 13 is_stmt 1 view .LVU196 6963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 655 .loc 1 6963 18 is_stmt 0 view .LVU197 656 006a FFF7FEFF bl HAL_GetTick 657 .LVL53: 6963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 658 .loc 1 6963 32 discriminator 1 view .LVU198 659 006e C01B subs r0, r0, r7 6963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 660 .loc 1 6963 16 discriminator 1 view .LVU199 661 0070 1928 cmp r0, #25 662 0072 F6D9 bls .L61 6965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 663 .loc 1 6965 15 is_stmt 1 view .LVU200 6965:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 664 .loc 1 6965 26 is_stmt 0 view .LVU201 665 0074 2023 movs r3, #32 666 0076 4246 mov r2, r8 667 0078 1A43 orrs r2, r3 668 007a 9046 mov r8, r2 669 .LVL54: 6967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 670 .loc 1 6967 15 is_stmt 1 view .LVU202 6969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 671 .loc 1 6969 15 view .LVU203 6967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 672 .loc 1 6967 22 is_stmt 0 view .LVU204 673 007c 0126 movs r6, #1 6969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 674 .loc 1 6969 15 view .LVU205 675 007e D2E7 b .L57 676 .LVL55: 677 .L77: 6954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 678 .loc 1 6954 13 is_stmt 1 view .LVU206 6954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 679 .loc 1 6954 27 is_stmt 0 view .LVU207 680 0080 4A68 ldr r2, [r1, #4] 681 .LVL56: 6954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 682 .loc 1 6954 33 view .LVU208 683 0082 8023 movs r3, #128 684 .LVL57: 6954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 685 .loc 1 6954 33 view .LVU209 ARM GAS /tmp/ccuRhBPx.s page 142 686 0084 DB01 lsls r3, r3, #7 687 0086 1343 orrs r3, r2 688 0088 4B60 str r3, [r1, #4] 6957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 689 .loc 1 6957 13 is_stmt 1 view .LVU210 6957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 690 .loc 1 6957 25 is_stmt 0 view .LVU211 691 008a FFF7FEFF bl HAL_GetTick 692 .LVL58: 693 008e 0700 movs r7, r0 694 .LVL59: 6957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 695 .loc 1 6957 25 view .LVU212 696 0090 E7E7 b .L61 697 .LVL60: 698 .L63: 6977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 699 .loc 1 6977 5 is_stmt 1 view .LVU213 6977:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 700 .loc 1 6977 8 is_stmt 0 view .LVU214 701 0092 002E cmp r6, #0 702 0094 01D1 bne .L65 6980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 703 .loc 1 6980 7 is_stmt 1 view .LVU215 704 0096 2023 movs r3, #32 705 0098 C361 str r3, [r0, #28] 706 .L65: 6983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 707 .loc 1 6983 5 view .LVU216 6983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 708 .loc 1 6983 16 is_stmt 0 view .LVU217 709 009a 0426 movs r6, #4 710 .LVL61: 6983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 711 .loc 1 6983 16 view .LVU218 712 009c 4346 mov r3, r8 713 009e 3343 orrs r3, r6 714 00a0 1E00 movs r6, r3 715 .LVL62: 6985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 716 .loc 1 6985 5 is_stmt 1 view .LVU219 6985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 717 .loc 1 6985 12 is_stmt 0 view .LVU220 718 00a2 0125 movs r5, #1 719 .LVL63: 720 .L55: 6989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 721 .loc 1 6989 3 is_stmt 1 view .LVU221 6989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 722 .loc 1 6989 16 is_stmt 0 view .LVU222 723 00a4 2268 ldr r2, [r4] 6989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 724 .loc 1 6989 10 view .LVU223 725 00a6 9369 ldr r3, [r2, #24] 726 .LVL64: 6993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 727 .loc 1 6993 3 is_stmt 1 view .LVU224 ARM GAS /tmp/ccuRhBPx.s page 143 6993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 728 .loc 1 6993 6 is_stmt 0 view .LVU225 729 00a8 D905 lsls r1, r3, #23 730 00aa 04D5 bpl .L66 6995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 731 .loc 1 6995 5 is_stmt 1 view .LVU226 6995:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 732 .loc 1 6995 16 is_stmt 0 view .LVU227 733 00ac 0121 movs r1, #1 734 00ae 0E43 orrs r6, r1 735 .LVL65: 6998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 736 .loc 1 6998 5 is_stmt 1 view .LVU228 737 00b0 FF31 adds r1, r1, #255 738 00b2 D161 str r1, [r2, #28] 7000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 739 .loc 1 7000 5 view .LVU229 740 .LVL66: 7000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 741 .loc 1 7000 12 is_stmt 0 view .LVU230 742 00b4 0125 movs r5, #1 743 .LVL67: 744 .L66: 7004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 745 .loc 1 7004 3 is_stmt 1 view .LVU231 7004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 746 .loc 1 7004 6 is_stmt 0 view .LVU232 747 00b6 5A05 lsls r2, r3, #21 748 00b8 06D5 bpl .L67 7006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 749 .loc 1 7006 5 is_stmt 1 view .LVU233 7006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 750 .loc 1 7006 16 is_stmt 0 view .LVU234 751 00ba 0822 movs r2, #8 752 00bc 1643 orrs r6, r2 753 .LVL68: 7009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 754 .loc 1 7009 5 is_stmt 1 view .LVU235 755 00be 2268 ldr r2, [r4] 756 00c0 8021 movs r1, #128 757 00c2 C900 lsls r1, r1, #3 758 00c4 D161 str r1, [r2, #28] 7011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 759 .loc 1 7011 5 view .LVU236 760 .LVL69: 7011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 761 .loc 1 7011 12 is_stmt 0 view .LVU237 762 00c6 0125 movs r5, #1 763 .LVL70: 764 .L67: 7015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 765 .loc 1 7015 3 is_stmt 1 view .LVU238 7015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 766 .loc 1 7015 6 is_stmt 0 view .LVU239 767 00c8 9B05 lsls r3, r3, #22 768 00ca 1FD5 bpl .L68 769 .LVL71: ARM GAS /tmp/ccuRhBPx.s page 144 7017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 770 .loc 1 7017 5 is_stmt 1 view .LVU240 7017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 771 .loc 1 7017 16 is_stmt 0 view .LVU241 772 00cc 0223 movs r3, #2 773 00ce 1E43 orrs r6, r3 774 .LVL72: 7020:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 775 .loc 1 7020 5 is_stmt 1 view .LVU242 776 00d0 2368 ldr r3, [r4] 777 00d2 8022 movs r2, #128 778 00d4 9200 lsls r2, r2, #2 779 00d6 DA61 str r2, [r3, #28] 7022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 780 .loc 1 7022 5 view .LVU243 781 .LVL73: 7025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 782 .loc 1 7025 3 view .LVU244 7022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 783 .loc 1 7022 12 is_stmt 0 view .LVU245 784 00d8 0125 movs r5, #1 785 .LVL74: 786 .L69: 7028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 787 .loc 1 7028 5 is_stmt 1 view .LVU246 788 00da 2000 movs r0, r4 789 00dc FFF7FEFF bl I2C_Flush_TXDR 790 .LVL75: 7031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 791 .loc 1 7031 5 view .LVU247 792 00e0 2268 ldr r2, [r4] 793 00e2 5368 ldr r3, [r2, #4] 794 00e4 0B49 ldr r1, .L78 795 00e6 0B40 ands r3, r1 796 00e8 5360 str r3, [r2, #4] 7033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 797 .loc 1 7033 5 view .LVU248 7033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 798 .loc 1 7033 9 is_stmt 0 view .LVU249 799 00ea 636C ldr r3, [r4, #68] 7033:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 800 .loc 1 7033 21 view .LVU250 801 00ec 3343 orrs r3, r6 802 00ee 6364 str r3, [r4, #68] 7034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 803 .loc 1 7034 5 is_stmt 1 view .LVU251 7034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 804 .loc 1 7034 17 is_stmt 0 view .LVU252 805 00f0 4123 movs r3, #65 806 00f2 2022 movs r2, #32 807 00f4 E254 strb r2, [r4, r3] 7035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 808 .loc 1 7035 5 is_stmt 1 view .LVU253 7035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 809 .loc 1 7035 16 is_stmt 0 view .LVU254 810 00f6 0023 movs r3, #0 811 00f8 2232 adds r2, r2, #34 ARM GAS /tmp/ccuRhBPx.s page 145 812 00fa A354 strb r3, [r4, r2] 7038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 813 .loc 1 7038 5 is_stmt 1 view .LVU255 7038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 814 .loc 1 7038 5 view .LVU256 815 00fc 023A subs r2, r2, #2 816 00fe A354 strb r3, [r4, r2] 817 .L70: 7038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 818 .loc 1 7038 5 discriminator 1 view .LVU257 7041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 819 .loc 1 7041 3 view .LVU258 7042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 820 .loc 1 7042 1 is_stmt 0 view .LVU259 821 0100 2800 movs r0, r5 822 @ sp needed 823 .LVL76: 824 .LVL77: 825 .LVL78: 7042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 826 .loc 1 7042 1 view .LVU260 827 0102 80BC pop {r7} 828 0104 B846 mov r8, r7 829 0106 F0BD pop {r4, r5, r6, r7, pc} 830 .LVL79: 831 .L71: 6924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 832 .loc 1 6924 21 view .LVU261 833 0108 0025 movs r5, #0 834 .LVL80: 6924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 835 .loc 1 6924 21 view .LVU262 836 010a CBE7 b .L55 837 .LVL81: 838 .L68: 7025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 839 .loc 1 7025 3 is_stmt 1 view .LVU263 7025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 840 .loc 1 7025 6 is_stmt 0 view .LVU264 841 010c 002D cmp r5, #0 842 010e F7D0 beq .L70 843 0110 E3E7 b .L69 844 .L79: 845 0112 C046 .align 2 846 .L78: 847 0114 00E800FE .word -33495040 848 .cfi_endproc 849 .LFE116: 851 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits 852 .align 1 853 .syntax unified 854 .code 16 855 .thumb_func 857 I2C_WaitOnTXISFlagUntilTimeout: 858 .LVL82: 859 .LFB113: 6769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) ARM GAS /tmp/ccuRhBPx.s page 146 860 .loc 1 6769 1 is_stmt 1 view -0 861 .cfi_startproc 862 @ args = 0, pretend = 0, frame = 0 863 @ frame_needed = 0, uses_anonymous_args = 0 6769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 864 .loc 1 6769 1 is_stmt 0 view .LVU266 865 0000 70B5 push {r4, r5, r6, lr} 866 .cfi_def_cfa_offset 16 867 .cfi_offset 4, -16 868 .cfi_offset 5, -12 869 .cfi_offset 6, -8 870 .cfi_offset 14, -4 871 0002 0400 movs r4, r0 872 0004 0D00 movs r5, r1 873 0006 1600 movs r6, r2 6770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 874 .loc 1 6770 3 is_stmt 1 view .LVU267 875 .LVL83: 876 .L83: 6770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 877 .loc 1 6770 50 view .LVU268 6770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 878 .loc 1 6770 10 is_stmt 0 view .LVU269 879 0008 2368 ldr r3, [r4] 880 000a 9B69 ldr r3, [r3, #24] 6770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 881 .loc 1 6770 50 view .LVU270 882 000c 9B07 lsls r3, r3, #30 883 000e 20D4 bmi .L89 6773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 884 .loc 1 6773 5 is_stmt 1 view .LVU271 6773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 885 .loc 1 6773 9 is_stmt 0 view .LVU272 886 0010 3200 movs r2, r6 887 0012 2900 movs r1, r5 888 0014 2000 movs r0, r4 889 0016 FFF7FEFF bl I2C_IsErrorOccurred 890 .LVL84: 6773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 891 .loc 1 6773 8 discriminator 1 view .LVU273 892 001a 0028 cmp r0, #0 893 001c 1BD1 bne .L86 6779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 894 .loc 1 6779 5 is_stmt 1 view .LVU274 6779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 895 .loc 1 6779 8 is_stmt 0 view .LVU275 896 001e 6B1C adds r3, r5, #1 897 0020 F2D0 beq .L83 6781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 898 .loc 1 6781 7 is_stmt 1 view .LVU276 6781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 899 .loc 1 6781 13 is_stmt 0 view .LVU277 900 0022 FFF7FEFF bl HAL_GetTick 901 .LVL85: 6781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 902 .loc 1 6781 27 discriminator 1 view .LVU278 903 0026 801B subs r0, r0, r6 ARM GAS /tmp/ccuRhBPx.s page 147 6781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 904 .loc 1 6781 10 discriminator 1 view .LVU279 905 0028 A842 cmp r0, r5 906 002a 01D8 bhi .L84 6781:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 907 .loc 1 6781 51 discriminator 1 view .LVU280 908 002c 002D cmp r5, #0 909 002e EBD1 bne .L83 910 .L84: 6783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 911 .loc 1 6783 9 is_stmt 1 view .LVU281 6783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 912 .loc 1 6783 14 is_stmt 0 view .LVU282 913 0030 2368 ldr r3, [r4] 914 0032 9B69 ldr r3, [r3, #24] 6783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 915 .loc 1 6783 12 view .LVU283 916 0034 9B07 lsls r3, r3, #30 917 0036 E7D4 bmi .L83 6785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 918 .loc 1 6785 11 is_stmt 1 view .LVU284 6785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 919 .loc 1 6785 15 is_stmt 0 view .LVU285 920 0038 636C ldr r3, [r4, #68] 6785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 921 .loc 1 6785 27 view .LVU286 922 003a 2022 movs r2, #32 923 003c 1343 orrs r3, r2 924 003e 6364 str r3, [r4, #68] 6786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 925 .loc 1 6786 11 is_stmt 1 view .LVU287 6786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 926 .loc 1 6786 23 is_stmt 0 view .LVU288 927 0040 4123 movs r3, #65 928 0042 E254 strb r2, [r4, r3] 6787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 929 .loc 1 6787 11 is_stmt 1 view .LVU289 6787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 930 .loc 1 6787 22 is_stmt 0 view .LVU290 931 0044 0023 movs r3, #0 932 0046 2232 adds r2, r2, #34 933 0048 A354 strb r3, [r4, r2] 6790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 934 .loc 1 6790 11 is_stmt 1 view .LVU291 6790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 935 .loc 1 6790 11 view .LVU292 936 004a 023A subs r2, r2, #2 937 004c A354 strb r3, [r4, r2] 6790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 938 .loc 1 6790 11 view .LVU293 6792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 939 .loc 1 6792 11 view .LVU294 6792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 940 .loc 1 6792 18 is_stmt 0 view .LVU295 941 004e 0120 movs r0, #1 942 0050 00E0 b .L82 943 .L89: ARM GAS /tmp/ccuRhBPx.s page 148 6797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 944 .loc 1 6797 10 view .LVU296 945 0052 0020 movs r0, #0 946 .L82: 6798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 947 .loc 1 6798 1 view .LVU297 948 @ sp needed 949 .LVL86: 950 .LVL87: 951 .LVL88: 6798:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 952 .loc 1 6798 1 view .LVU298 953 0054 70BD pop {r4, r5, r6, pc} 954 .LVL89: 955 .L86: 6775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 956 .loc 1 6775 14 view .LVU299 957 0056 0120 movs r0, #1 958 0058 FCE7 b .L82 959 .cfi_endproc 960 .LFE113: 962 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits 963 .align 1 964 .syntax unified 965 .code 16 966 .thumb_func 968 I2C_WaitOnFlagUntilTimeout: 969 .LVL90: 970 .LFB112: 6735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 971 .loc 1 6735 1 is_stmt 1 view -0 972 .cfi_startproc 973 @ args = 4, pretend = 0, frame = 8 974 @ frame_needed = 0, uses_anonymous_args = 0 6735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 975 .loc 1 6735 1 is_stmt 0 view .LVU301 976 0000 F0B5 push {r4, r5, r6, r7, lr} 977 .cfi_def_cfa_offset 20 978 .cfi_offset 4, -20 979 .cfi_offset 5, -16 980 .cfi_offset 6, -12 981 .cfi_offset 7, -8 982 .cfi_offset 14, -4 983 0002 CE46 mov lr, r9 984 0004 00B5 push {lr} 985 .cfi_def_cfa_offset 24 986 .cfi_offset 9, -24 987 0006 82B0 sub sp, sp, #8 988 .cfi_def_cfa_offset 32 989 0008 0700 movs r7, r0 990 000a 0D00 movs r5, r1 991 000c 1600 movs r6, r2 992 000e 9946 mov r9, r3 6736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 993 .loc 1 6736 3 is_stmt 1 view .LVU302 994 .LVL91: 995 .L92: ARM GAS /tmp/ccuRhBPx.s page 149 6736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 996 .loc 1 6736 41 view .LVU303 6736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 997 .loc 1 6736 10 is_stmt 0 view .LVU304 998 0010 3B68 ldr r3, [r7] 999 0012 9C69 ldr r4, [r3, #24] 1000 0014 2C40 ands r4, r5 1001 0016 641B subs r4, r4, r5 1002 0018 6342 rsbs r3, r4, #0 1003 001a 5C41 adcs r4, r4, r3 6736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1004 .loc 1 6736 41 view .LVU305 1005 001c 0196 str r6, [sp, #4] 1006 001e B442 cmp r4, r6 1007 0020 21D1 bne .L97 6739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1008 .loc 1 6739 5 is_stmt 1 view .LVU306 6739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1009 .loc 1 6739 8 is_stmt 0 view .LVU307 1010 0022 4B46 mov r3, r9 1011 0024 0133 adds r3, r3, #1 1012 0026 F3D0 beq .L92 6741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1013 .loc 1 6741 7 is_stmt 1 view .LVU308 6741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1014 .loc 1 6741 13 is_stmt 0 view .LVU309 1015 0028 FFF7FEFF bl HAL_GetTick 1016 .LVL92: 6741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1017 .loc 1 6741 27 discriminator 1 view .LVU310 1018 002c 089B ldr r3, [sp, #32] 1019 002e C01A subs r0, r0, r3 6741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1020 .loc 1 6741 10 discriminator 1 view .LVU311 1021 0030 4845 cmp r0, r9 1022 0032 02D8 bhi .L93 6741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1023 .loc 1 6741 51 discriminator 1 view .LVU312 1024 0034 4B46 mov r3, r9 1025 0036 002B cmp r3, #0 1026 0038 EAD1 bne .L92 1027 .L93: 6743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1028 .loc 1 6743 9 is_stmt 1 view .LVU313 6743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1029 .loc 1 6743 14 is_stmt 0 view .LVU314 1030 003a 3B68 ldr r3, [r7] 1031 003c 9B69 ldr r3, [r3, #24] 1032 003e 2B40 ands r3, r5 1033 0040 5B1B subs r3, r3, r5 1034 0042 5A42 rsbs r2, r3, #0 1035 0044 5341 adcs r3, r3, r2 6743:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1036 .loc 1 6743 12 view .LVU315 1037 0046 019A ldr r2, [sp, #4] 1038 0048 9342 cmp r3, r2 1039 004a E1D1 bne .L92 ARM GAS /tmp/ccuRhBPx.s page 150 6745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1040 .loc 1 6745 11 is_stmt 1 view .LVU316 6745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1041 .loc 1 6745 15 is_stmt 0 view .LVU317 1042 004c 7B6C ldr r3, [r7, #68] 6745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1043 .loc 1 6745 27 view .LVU318 1044 004e 2022 movs r2, #32 1045 0050 1343 orrs r3, r2 1046 0052 7B64 str r3, [r7, #68] 6746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1047 .loc 1 6746 11 is_stmt 1 view .LVU319 6746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1048 .loc 1 6746 23 is_stmt 0 view .LVU320 1049 0054 4123 movs r3, #65 1050 0056 FA54 strb r2, [r7, r3] 6747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1051 .loc 1 6747 11 is_stmt 1 view .LVU321 6747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1052 .loc 1 6747 22 is_stmt 0 view .LVU322 1053 0058 0023 movs r3, #0 1054 005a 2232 adds r2, r2, #34 1055 005c BB54 strb r3, [r7, r2] 6750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1056 .loc 1 6750 11 is_stmt 1 view .LVU323 6750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1057 .loc 1 6750 11 view .LVU324 1058 005e 023A subs r2, r2, #2 1059 0060 BB54 strb r3, [r7, r2] 6750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 1060 .loc 1 6750 11 view .LVU325 6751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1061 .loc 1 6751 11 view .LVU326 6751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1062 .loc 1 6751 18 is_stmt 0 view .LVU327 1063 0062 0120 movs r0, #1 1064 0064 00E0 b .L94 1065 .L97: 6756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1066 .loc 1 6756 10 view .LVU328 1067 0066 0020 movs r0, #0 1068 .L94: 6757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1069 .loc 1 6757 1 view .LVU329 1070 0068 02B0 add sp, sp, #8 1071 @ sp needed 1072 .LVL93: 1073 .LVL94: 1074 .LVL95: 1075 .LVL96: 6757:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1076 .loc 1 6757 1 view .LVU330 1077 006a 80BC pop {r7} 1078 006c B946 mov r9, r7 1079 006e F0BD pop {r4, r5, r6, r7, pc} 1080 .cfi_endproc 1081 .LFE112: ARM GAS /tmp/ccuRhBPx.s page 151 1083 .section .text.I2C_RequestMemoryWrite,"ax",%progbits 1084 .align 1 1085 .syntax unified 1086 .code 16 1087 .thumb_func 1089 I2C_RequestMemoryWrite: 1090 .LVL97: 1091 .LFB95: 5658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 1092 .loc 1 5658 1 is_stmt 1 view -0 1093 .cfi_startproc 1094 @ args = 8, pretend = 0, frame = 0 1095 @ frame_needed = 0, uses_anonymous_args = 0 5658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 1096 .loc 1 5658 1 is_stmt 0 view .LVU332 1097 0000 70B5 push {r4, r5, r6, lr} 1098 .cfi_def_cfa_offset 16 1099 .cfi_offset 4, -16 1100 .cfi_offset 5, -12 1101 .cfi_offset 6, -8 1102 .cfi_offset 14, -4 1103 0002 82B0 sub sp, sp, #8 1104 .cfi_def_cfa_offset 24 1105 0004 0400 movs r4, r0 1106 0006 1500 movs r5, r2 1107 0008 1E00 movs r6, r3 5659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1108 .loc 1 5659 3 is_stmt 1 view .LVU333 1109 000a 8023 movs r3, #128 1110 .LVL98: 5659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1111 .loc 1 5659 3 is_stmt 0 view .LVU334 1112 000c F2B2 uxtb r2, r6 1113 .LVL99: 5659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1114 .loc 1 5659 3 view .LVU335 1115 000e 1948 ldr r0, .L106 1116 .LVL100: 5659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1117 .loc 1 5659 3 view .LVU336 1118 0010 0090 str r0, [sp] 1119 0012 5B04 lsls r3, r3, #17 1120 0014 2000 movs r0, r4 1121 0016 FFF7FEFF bl I2C_TransferConfig 1122 .LVL101: 5662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1123 .loc 1 5662 3 is_stmt 1 view .LVU337 5662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1124 .loc 1 5662 7 is_stmt 0 view .LVU338 1125 001a 079A ldr r2, [sp, #28] 1126 001c 0699 ldr r1, [sp, #24] 1127 001e 2000 movs r0, r4 1128 0020 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1129 .LVL102: 5662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1130 .loc 1 5662 6 discriminator 1 view .LVU339 1131 0024 0028 cmp r0, #0 ARM GAS /tmp/ccuRhBPx.s page 152 1132 0026 1ED1 bne .L102 5668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1133 .loc 1 5668 3 is_stmt 1 view .LVU340 5668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1134 .loc 1 5668 6 is_stmt 0 view .LVU341 1135 0028 012E cmp r6, #1 1136 002a 0ED1 bne .L100 5671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1137 .loc 1 5671 5 is_stmt 1 view .LVU342 5671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1138 .loc 1 5671 9 is_stmt 0 view .LVU343 1139 002c 2368 ldr r3, [r4] 5671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1140 .loc 1 5671 28 view .LVU344 1141 002e EDB2 uxtb r5, r5 1142 .LVL103: 5671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1143 .loc 1 5671 26 view .LVU345 1144 0030 9D62 str r5, [r3, #40] 1145 .L101: 5690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1146 .loc 1 5690 3 is_stmt 1 view .LVU346 5690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1147 .loc 1 5690 7 is_stmt 0 view .LVU347 1148 0032 079B ldr r3, [sp, #28] 1149 0034 0093 str r3, [sp] 1150 0036 069B ldr r3, [sp, #24] 1151 0038 0022 movs r2, #0 1152 003a 8021 movs r1, #128 1153 003c 2000 movs r0, r4 1154 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1155 .LVL104: 5690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1156 .loc 1 5690 6 discriminator 1 view .LVU348 1157 0042 0028 cmp r0, #0 1158 0044 13D1 bne .L105 1159 .L99: 5696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1160 .loc 1 5696 1 view .LVU349 1161 0046 02B0 add sp, sp, #8 1162 @ sp needed 1163 .LVL105: 1164 .LVL106: 5696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1165 .loc 1 5696 1 view .LVU350 1166 0048 70BD pop {r4, r5, r6, pc} 1167 .LVL107: 1168 .L100: 5677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1169 .loc 1 5677 5 is_stmt 1 view .LVU351 5677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1170 .loc 1 5677 9 is_stmt 0 view .LVU352 1171 004a 2368 ldr r3, [r4] 5677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1172 .loc 1 5677 28 view .LVU353 1173 004c 2A0A lsrs r2, r5, #8 5677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 153 1174 .loc 1 5677 26 view .LVU354 1175 004e 9A62 str r2, [r3, #40] 5680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1176 .loc 1 5680 5 is_stmt 1 view .LVU355 5680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1177 .loc 1 5680 9 is_stmt 0 view .LVU356 1178 0050 079A ldr r2, [sp, #28] 1179 0052 0699 ldr r1, [sp, #24] 1180 0054 2000 movs r0, r4 1181 0056 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1182 .LVL108: 5680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1183 .loc 1 5680 8 discriminator 1 view .LVU357 1184 005a 0028 cmp r0, #0 1185 005c 05D1 bne .L103 5686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1186 .loc 1 5686 5 is_stmt 1 view .LVU358 5686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1187 .loc 1 5686 9 is_stmt 0 view .LVU359 1188 005e 2368 ldr r3, [r4] 5686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1189 .loc 1 5686 28 view .LVU360 1190 0060 EDB2 uxtb r5, r5 5686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1191 .loc 1 5686 26 view .LVU361 1192 0062 9D62 str r5, [r3, #40] 1193 0064 E5E7 b .L101 1194 .L102: 5664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1195 .loc 1 5664 12 view .LVU362 1196 0066 0120 movs r0, #1 1197 0068 EDE7 b .L99 1198 .L103: 5682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1199 .loc 1 5682 14 view .LVU363 1200 006a 0120 movs r0, #1 1201 006c EBE7 b .L99 1202 .L105: 5692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1203 .loc 1 5692 12 view .LVU364 1204 006e 0120 movs r0, #1 1205 0070 E9E7 b .L99 1206 .L107: 1207 0072 C046 .align 2 1208 .L106: 1209 0074 00200080 .word -2147475456 1210 .cfi_endproc 1211 .LFE95: 1213 .section .text.I2C_RequestMemoryRead,"ax",%progbits 1214 .align 1 1215 .syntax unified 1216 .code 16 1217 .thumb_func 1219 I2C_RequestMemoryRead: 1220 .LVL109: 1221 .LFB96: 5713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR ARM GAS /tmp/ccuRhBPx.s page 154 1222 .loc 1 5713 1 is_stmt 1 view -0 1223 .cfi_startproc 1224 @ args = 8, pretend = 0, frame = 0 1225 @ frame_needed = 0, uses_anonymous_args = 0 5713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 1226 .loc 1 5713 1 is_stmt 0 view .LVU366 1227 0000 70B5 push {r4, r5, r6, lr} 1228 .cfi_def_cfa_offset 16 1229 .cfi_offset 4, -16 1230 .cfi_offset 5, -12 1231 .cfi_offset 6, -8 1232 .cfi_offset 14, -4 1233 0002 82B0 sub sp, sp, #8 1234 .cfi_def_cfa_offset 24 1235 0004 0400 movs r4, r0 1236 0006 1500 movs r5, r2 1237 0008 1E00 movs r6, r3 5714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1238 .loc 1 5714 3 is_stmt 1 view .LVU367 1239 000a DAB2 uxtb r2, r3 1240 .LVL110: 5714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1241 .loc 1 5714 3 is_stmt 0 view .LVU368 1242 000c 184B ldr r3, .L116 1243 .LVL111: 5714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1244 .loc 1 5714 3 view .LVU369 1245 000e 0093 str r3, [sp] 1246 0010 0023 movs r3, #0 1247 0012 FFF7FEFF bl I2C_TransferConfig 1248 .LVL112: 5717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1249 .loc 1 5717 3 is_stmt 1 view .LVU370 5717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1250 .loc 1 5717 7 is_stmt 0 view .LVU371 1251 0016 079A ldr r2, [sp, #28] 1252 0018 0699 ldr r1, [sp, #24] 1253 001a 2000 movs r0, r4 1254 001c FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1255 .LVL113: 5717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1256 .loc 1 5717 6 discriminator 1 view .LVU372 1257 0020 0028 cmp r0, #0 1258 0022 1ED1 bne .L112 5723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1259 .loc 1 5723 3 is_stmt 1 view .LVU373 5723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1260 .loc 1 5723 6 is_stmt 0 view .LVU374 1261 0024 012E cmp r6, #1 1262 0026 0ED1 bne .L110 5726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1263 .loc 1 5726 5 is_stmt 1 view .LVU375 5726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1264 .loc 1 5726 9 is_stmt 0 view .LVU376 1265 0028 2368 ldr r3, [r4] 5726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1266 .loc 1 5726 28 view .LVU377 ARM GAS /tmp/ccuRhBPx.s page 155 1267 002a EDB2 uxtb r5, r5 1268 .LVL114: 5726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1269 .loc 1 5726 26 view .LVU378 1270 002c 9D62 str r5, [r3, #40] 1271 .L111: 5745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1272 .loc 1 5745 3 is_stmt 1 view .LVU379 5745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1273 .loc 1 5745 7 is_stmt 0 view .LVU380 1274 002e 079B ldr r3, [sp, #28] 1275 0030 0093 str r3, [sp] 1276 0032 069B ldr r3, [sp, #24] 1277 0034 0022 movs r2, #0 1278 0036 4021 movs r1, #64 1279 0038 2000 movs r0, r4 1280 003a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1281 .LVL115: 5745:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1282 .loc 1 5745 6 discriminator 1 view .LVU381 1283 003e 0028 cmp r0, #0 1284 0040 13D1 bne .L115 1285 .L109: 5751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1286 .loc 1 5751 1 view .LVU382 1287 0042 02B0 add sp, sp, #8 1288 @ sp needed 1289 .LVL116: 1290 .LVL117: 5751:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1291 .loc 1 5751 1 view .LVU383 1292 0044 70BD pop {r4, r5, r6, pc} 1293 .LVL118: 1294 .L110: 5732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1295 .loc 1 5732 5 is_stmt 1 view .LVU384 5732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1296 .loc 1 5732 9 is_stmt 0 view .LVU385 1297 0046 2368 ldr r3, [r4] 5732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1298 .loc 1 5732 28 view .LVU386 1299 0048 2A0A lsrs r2, r5, #8 5732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1300 .loc 1 5732 26 view .LVU387 1301 004a 9A62 str r2, [r3, #40] 5735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1302 .loc 1 5735 5 is_stmt 1 view .LVU388 5735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1303 .loc 1 5735 9 is_stmt 0 view .LVU389 1304 004c 079A ldr r2, [sp, #28] 1305 004e 0699 ldr r1, [sp, #24] 1306 0050 2000 movs r0, r4 1307 0052 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1308 .LVL119: 5735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1309 .loc 1 5735 8 discriminator 1 view .LVU390 1310 0056 0028 cmp r0, #0 ARM GAS /tmp/ccuRhBPx.s page 156 1311 0058 05D1 bne .L113 5741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1312 .loc 1 5741 5 is_stmt 1 view .LVU391 5741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1313 .loc 1 5741 9 is_stmt 0 view .LVU392 1314 005a 2368 ldr r3, [r4] 5741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1315 .loc 1 5741 28 view .LVU393 1316 005c EDB2 uxtb r5, r5 5741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1317 .loc 1 5741 26 view .LVU394 1318 005e 9D62 str r5, [r3, #40] 1319 0060 E5E7 b .L111 1320 .L112: 5719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1321 .loc 1 5719 12 view .LVU395 1322 0062 0120 movs r0, #1 1323 0064 EDE7 b .L109 1324 .L113: 5737:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1325 .loc 1 5737 14 view .LVU396 1326 0066 0120 movs r0, #1 1327 0068 EBE7 b .L109 1328 .L115: 5747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1329 .loc 1 5747 12 view .LVU397 1330 006a 0120 movs r0, #1 1331 006c E9E7 b .L109 1332 .L117: 1333 006e C046 .align 2 1334 .L116: 1335 0070 00200080 .word -2147475456 1336 .cfi_endproc 1337 .LFE96: 1339 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits 1340 .align 1 1341 .syntax unified 1342 .code 16 1343 .thumb_func 1345 I2C_WaitOnSTOPFlagUntilTimeout: 1346 .LVL120: 1347 .LFB114: 6810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1348 .loc 1 6810 1 is_stmt 1 view -0 1349 .cfi_startproc 1350 @ args = 0, pretend = 0, frame = 0 1351 @ frame_needed = 0, uses_anonymous_args = 0 6810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1352 .loc 1 6810 1 is_stmt 0 view .LVU399 1353 0000 70B5 push {r4, r5, r6, lr} 1354 .cfi_def_cfa_offset 16 1355 .cfi_offset 4, -16 1356 .cfi_offset 5, -12 1357 .cfi_offset 6, -8 1358 .cfi_offset 14, -4 1359 0002 0400 movs r4, r0 1360 0004 0D00 movs r5, r1 ARM GAS /tmp/ccuRhBPx.s page 157 1361 0006 1600 movs r6, r2 6811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1362 .loc 1 6811 3 is_stmt 1 view .LVU400 6811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1363 .loc 1 6811 9 is_stmt 0 view .LVU401 1364 0008 03E0 b .L119 1365 .LVL121: 1366 .L121: 6822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1367 .loc 1 6822 7 is_stmt 1 view .LVU402 6822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1368 .loc 1 6822 12 is_stmt 0 view .LVU403 1369 000a 2368 ldr r3, [r4] 1370 000c 9B69 ldr r3, [r3, #24] 6822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1371 .loc 1 6822 10 view .LVU404 1372 000e 9B06 lsls r3, r3, #26 1373 0010 12D5 bpl .L125 1374 .L119: 6811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1375 .loc 1 6811 51 is_stmt 1 view .LVU405 6811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1376 .loc 1 6811 10 is_stmt 0 view .LVU406 1377 0012 2368 ldr r3, [r4] 1378 0014 9B69 ldr r3, [r3, #24] 6811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1379 .loc 1 6811 51 view .LVU407 1380 0016 9B06 lsls r3, r3, #26 1381 0018 1BD4 bmi .L126 6814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1382 .loc 1 6814 5 is_stmt 1 view .LVU408 6814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1383 .loc 1 6814 9 is_stmt 0 view .LVU409 1384 001a 3200 movs r2, r6 1385 001c 2900 movs r1, r5 1386 001e 2000 movs r0, r4 1387 0020 FFF7FEFF bl I2C_IsErrorOccurred 1388 .LVL122: 6814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1389 .loc 1 6814 8 discriminator 1 view .LVU410 1390 0024 0028 cmp r0, #0 1391 0026 16D1 bne .L123 6820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1392 .loc 1 6820 5 is_stmt 1 view .LVU411 6820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1393 .loc 1 6820 11 is_stmt 0 view .LVU412 1394 0028 FFF7FEFF bl HAL_GetTick 1395 .LVL123: 6820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1396 .loc 1 6820 25 discriminator 1 view .LVU413 1397 002c 801B subs r0, r0, r6 6820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1398 .loc 1 6820 8 discriminator 1 view .LVU414 1399 002e A842 cmp r0, r5 1400 0030 EBD8 bhi .L121 6820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1401 .loc 1 6820 49 discriminator 1 view .LVU415 ARM GAS /tmp/ccuRhBPx.s page 158 1402 0032 002D cmp r5, #0 1403 0034 EDD1 bne .L119 1404 0036 E8E7 b .L121 1405 .L125: 6824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1406 .loc 1 6824 9 is_stmt 1 view .LVU416 6824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1407 .loc 1 6824 13 is_stmt 0 view .LVU417 1408 0038 636C ldr r3, [r4, #68] 6824:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1409 .loc 1 6824 25 view .LVU418 1410 003a 2022 movs r2, #32 1411 003c 1343 orrs r3, r2 1412 003e 6364 str r3, [r4, #68] 6825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1413 .loc 1 6825 9 is_stmt 1 view .LVU419 6825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1414 .loc 1 6825 21 is_stmt 0 view .LVU420 1415 0040 4123 movs r3, #65 1416 0042 E254 strb r2, [r4, r3] 6826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1417 .loc 1 6826 9 is_stmt 1 view .LVU421 6826:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1418 .loc 1 6826 20 is_stmt 0 view .LVU422 1419 0044 0023 movs r3, #0 1420 0046 2232 adds r2, r2, #34 1421 0048 A354 strb r3, [r4, r2] 6829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1422 .loc 1 6829 9 is_stmt 1 view .LVU423 6829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1423 .loc 1 6829 9 view .LVU424 1424 004a 023A subs r2, r2, #2 1425 004c A354 strb r3, [r4, r2] 6829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1426 .loc 1 6829 9 view .LVU425 6831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1427 .loc 1 6831 9 view .LVU426 6831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1428 .loc 1 6831 16 is_stmt 0 view .LVU427 1429 004e 0120 movs r0, #1 1430 0050 00E0 b .L120 1431 .L126: 6835:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1432 .loc 1 6835 10 view .LVU428 1433 0052 0020 movs r0, #0 1434 .L120: 6836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1435 .loc 1 6836 1 view .LVU429 1436 @ sp needed 1437 .LVL124: 1438 .LVL125: 1439 .LVL126: 6836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1440 .loc 1 6836 1 view .LVU430 1441 0054 70BD pop {r4, r5, r6, pc} 1442 .LVL127: 1443 .L123: ARM GAS /tmp/ccuRhBPx.s page 159 6816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1444 .loc 1 6816 14 view .LVU431 1445 0056 0120 movs r0, #1 1446 0058 FCE7 b .L120 1447 .cfi_endproc 1448 .LFE114: 1450 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits 1451 .align 1 1452 .syntax unified 1453 .code 16 1454 .thumb_func 1456 I2C_WaitOnRXNEFlagUntilTimeout: 1457 .LVL128: 1458 .LFB115: 6848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 1459 .loc 1 6848 1 is_stmt 1 view -0 1460 .cfi_startproc 1461 @ args = 0, pretend = 0, frame = 0 1462 @ frame_needed = 0, uses_anonymous_args = 0 6848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) 1463 .loc 1 6848 1 is_stmt 0 view .LVU433 1464 0000 70B5 push {r4, r5, r6, lr} 1465 .cfi_def_cfa_offset 16 1466 .cfi_offset 4, -16 1467 .cfi_offset 5, -12 1468 .cfi_offset 6, -8 1469 .cfi_offset 14, -4 1470 0002 0400 movs r4, r0 1471 0004 0D00 movs r5, r1 1472 0006 1600 movs r6, r2 6849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1473 .loc 1 6849 3 is_stmt 1 view .LVU434 6849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1474 .loc 1 6849 9 is_stmt 0 view .LVU435 1475 0008 24E0 b .L128 1476 .LVL129: 1477 .L141: 6862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1478 .loc 1 6862 7 is_stmt 1 view .LVU436 6862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1479 .loc 1 6862 12 is_stmt 0 view .LVU437 1480 000a 9369 ldr r3, [r2, #24] 6862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1481 .loc 1 6862 10 view .LVU438 1482 000c 5B07 lsls r3, r3, #29 1483 000e 02D5 bpl .L131 6862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1484 .loc 1 6862 68 discriminator 1 view .LVU439 1485 0010 238D ldrh r3, [r4, #40] 6862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1486 .loc 1 6862 60 discriminator 1 view .LVU440 1487 0012 002B cmp r3, #0 1488 0014 41D1 bne .L129 1489 .L131: 6870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1490 .loc 1 6870 9 is_stmt 1 view .LVU441 6870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 160 1491 .loc 1 6870 13 is_stmt 0 view .LVU442 1492 0016 9369 ldr r3, [r2, #24] 6870:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1493 .loc 1 6870 12 view .LVU443 1494 0018 DB06 lsls r3, r3, #27 1495 001a 14D5 bpl .L132 6872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 1496 .loc 1 6872 11 is_stmt 1 view .LVU444 1497 001c 1023 movs r3, #16 1498 001e D361 str r3, [r2, #28] 6873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1499 .loc 1 6873 11 view .LVU445 6873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1500 .loc 1 6873 27 is_stmt 0 view .LVU446 1501 0020 0C3B subs r3, r3, #12 1502 0022 6364 str r3, [r4, #68] 1503 .L133: 6881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1504 .loc 1 6881 9 is_stmt 1 view .LVU447 1505 0024 2368 ldr r3, [r4] 1506 0026 2022 movs r2, #32 1507 0028 DA61 str r2, [r3, #28] 6884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1508 .loc 1 6884 9 view .LVU448 1509 002a 2168 ldr r1, [r4] 1510 002c 4B68 ldr r3, [r1, #4] 1511 002e 1C48 ldr r0, .L142 1512 0030 0340 ands r3, r0 1513 0032 4B60 str r3, [r1, #4] 6886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1514 .loc 1 6886 9 view .LVU449 6886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1515 .loc 1 6886 21 is_stmt 0 view .LVU450 1516 0034 4123 movs r3, #65 1517 0036 E254 strb r2, [r4, r3] 6887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1518 .loc 1 6887 9 is_stmt 1 view .LVU451 6887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1519 .loc 1 6887 20 is_stmt 0 view .LVU452 1520 0038 0023 movs r3, #0 1521 003a 2232 adds r2, r2, #34 1522 003c A354 strb r3, [r4, r2] 6890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1523 .loc 1 6890 9 is_stmt 1 view .LVU453 6890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1524 .loc 1 6890 9 view .LVU454 1525 003e 023A subs r2, r2, #2 1526 0040 A354 strb r3, [r4, r2] 6890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1527 .loc 1 6890 9 view .LVU455 6892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1528 .loc 1 6892 9 view .LVU456 6892:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1529 .loc 1 6892 16 is_stmt 0 view .LVU457 1530 0042 0120 movs r0, #1 1531 0044 29E0 b .L129 1532 .L132: ARM GAS /tmp/ccuRhBPx.s page 161 6877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1533 .loc 1 6877 11 is_stmt 1 view .LVU458 6877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1534 .loc 1 6877 27 is_stmt 0 view .LVU459 1535 0046 0023 movs r3, #0 1536 0048 6364 str r3, [r4, #68] 1537 004a EBE7 b .L133 1538 .L134: 6899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1539 .loc 1 6899 7 is_stmt 1 view .LVU460 6899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1540 .loc 1 6899 12 is_stmt 0 view .LVU461 1541 004c 2368 ldr r3, [r4] 1542 004e 9B69 ldr r3, [r3, #24] 6899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1543 .loc 1 6899 10 view .LVU462 1544 0050 5B07 lsls r3, r3, #29 1545 0052 16D5 bpl .L139 1546 .L128: 6849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1547 .loc 1 6849 50 is_stmt 1 view .LVU463 6849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1548 .loc 1 6849 10 is_stmt 0 view .LVU464 1549 0054 2368 ldr r3, [r4] 1550 0056 9B69 ldr r3, [r3, #24] 6849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1551 .loc 1 6849 50 view .LVU465 1552 0058 5B07 lsls r3, r3, #29 1553 005a 1DD4 bmi .L140 6852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1554 .loc 1 6852 5 is_stmt 1 view .LVU466 6852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1555 .loc 1 6852 9 is_stmt 0 view .LVU467 1556 005c 3200 movs r2, r6 1557 005e 2900 movs r1, r5 1558 0060 2000 movs r0, r4 1559 0062 FFF7FEFF bl I2C_IsErrorOccurred 1560 .LVL130: 6852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1561 .loc 1 6852 8 discriminator 1 view .LVU468 1562 0066 0028 cmp r0, #0 1563 0068 18D1 bne .L136 6858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1564 .loc 1 6858 5 is_stmt 1 view .LVU469 6858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1565 .loc 1 6858 9 is_stmt 0 view .LVU470 1566 006a 2268 ldr r2, [r4] 1567 006c 9369 ldr r3, [r2, #24] 6858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1568 .loc 1 6858 8 view .LVU471 1569 006e 9B06 lsls r3, r3, #26 1570 0070 CBD4 bmi .L141 6897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1571 .loc 1 6897 5 is_stmt 1 view .LVU472 6897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1572 .loc 1 6897 11 is_stmt 0 view .LVU473 1573 0072 FFF7FEFF bl HAL_GetTick ARM GAS /tmp/ccuRhBPx.s page 162 1574 .LVL131: 6897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1575 .loc 1 6897 25 discriminator 1 view .LVU474 1576 0076 801B subs r0, r0, r6 6897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1577 .loc 1 6897 8 discriminator 1 view .LVU475 1578 0078 A842 cmp r0, r5 1579 007a E7D8 bhi .L134 6897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1580 .loc 1 6897 49 discriminator 1 view .LVU476 1581 007c 002D cmp r5, #0 1582 007e E9D1 bne .L128 1583 0080 E4E7 b .L134 1584 .L139: 6901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1585 .loc 1 6901 9 is_stmt 1 view .LVU477 6901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1586 .loc 1 6901 13 is_stmt 0 view .LVU478 1587 0082 636C ldr r3, [r4, #68] 6901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1588 .loc 1 6901 25 view .LVU479 1589 0084 2022 movs r2, #32 1590 0086 1343 orrs r3, r2 1591 0088 6364 str r3, [r4, #68] 6902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1592 .loc 1 6902 9 is_stmt 1 view .LVU480 6902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1593 .loc 1 6902 21 is_stmt 0 view .LVU481 1594 008a 4123 movs r3, #65 1595 008c E254 strb r2, [r4, r3] 6905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1596 .loc 1 6905 9 is_stmt 1 view .LVU482 6905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1597 .loc 1 6905 9 view .LVU483 1598 008e 013B subs r3, r3, #1 1599 0090 0022 movs r2, #0 1600 0092 E254 strb r2, [r4, r3] 6905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1601 .loc 1 6905 9 view .LVU484 6907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1602 .loc 1 6907 9 view .LVU485 6907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1603 .loc 1 6907 16 is_stmt 0 view .LVU486 1604 0094 0120 movs r0, #1 1605 0096 00E0 b .L129 1606 .L140: 6911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1607 .loc 1 6911 10 view .LVU487 1608 0098 0020 movs r0, #0 1609 .L129: 6912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1610 .loc 1 6912 1 view .LVU488 1611 @ sp needed 1612 .LVL132: 1613 .LVL133: 1614 .LVL134: 6912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 163 1615 .loc 1 6912 1 view .LVU489 1616 009a 70BD pop {r4, r5, r6, pc} 1617 .LVL135: 1618 .L136: 6854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1619 .loc 1 6854 14 view .LVU490 1620 009c 0120 movs r0, #1 1621 009e FCE7 b .L129 1622 .L143: 1623 .align 2 1624 .L142: 1625 00a0 00E800FE .word -33495040 1626 .cfi_endproc 1627 .LFE115: 1629 .section .text.HAL_I2C_MspInit,"ax",%progbits 1630 .align 1 1631 .weak HAL_I2C_MspInit 1632 .syntax unified 1633 .code 16 1634 .thumb_func 1636 HAL_I2C_MspInit: 1637 .LVL136: 1638 .LFB42: 692:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1639 .loc 1 692 1 is_stmt 1 view -0 1640 .cfi_startproc 1641 @ args = 0, pretend = 0, frame = 0 1642 @ frame_needed = 0, uses_anonymous_args = 0 1643 @ link register save eliminated. 694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1644 .loc 1 694 3 view .LVU492 699:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1645 .loc 1 699 1 is_stmt 0 view .LVU493 1646 @ sp needed 1647 0000 7047 bx lr 1648 .cfi_endproc 1649 .LFE42: 1651 .section .text.HAL_I2C_Init,"ax",%progbits 1652 .align 1 1653 .global HAL_I2C_Init 1654 .syntax unified 1655 .code 16 1656 .thumb_func 1658 HAL_I2C_Init: 1659 .LVL137: 1660 .LFB40: 536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1661 .loc 1 536 1 is_stmt 1 view -0 1662 .cfi_startproc 1663 @ args = 0, pretend = 0, frame = 0 1664 @ frame_needed = 0, uses_anonymous_args = 0 536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1665 .loc 1 536 1 is_stmt 0 view .LVU495 1666 0000 10B5 push {r4, lr} 1667 .cfi_def_cfa_offset 8 1668 .cfi_offset 4, -8 1669 .cfi_offset 14, -4 ARM GAS /tmp/ccuRhBPx.s page 164 1670 0002 041E subs r4, r0, #0 538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1671 .loc 1 538 3 is_stmt 1 view .LVU496 538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1672 .loc 1 538 6 is_stmt 0 view .LVU497 1673 0004 59D0 beq .L151 544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 1674 .loc 1 544 3 is_stmt 1 view .LVU498 545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 1675 .loc 1 545 3 view .LVU499 546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 1676 .loc 1 546 3 view .LVU500 547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 1677 .loc 1 547 3 view .LVU501 548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 1678 .loc 1 548 3 view .LVU502 549:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 1679 .loc 1 549 3 view .LVU503 550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 1680 .loc 1 550 3 view .LVU504 551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1681 .loc 1 551 3 view .LVU505 553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1682 .loc 1 553 3 view .LVU506 553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1683 .loc 1 553 11 is_stmt 0 view .LVU507 1684 0006 4123 movs r3, #65 1685 0008 C35C ldrb r3, [r0, r3] 553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1686 .loc 1 553 6 view .LVU508 1687 000a 002B cmp r3, #0 1688 000c 43D0 beq .L152 1689 .LVL138: 1690 .L147: 584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1691 .loc 1 584 3 is_stmt 1 view .LVU509 584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1692 .loc 1 584 15 is_stmt 0 view .LVU510 1693 000e 4123 movs r3, #65 1694 0010 2422 movs r2, #36 1695 0012 E254 strb r2, [r4, r3] 587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1696 .loc 1 587 3 is_stmt 1 view .LVU511 1697 0014 2268 ldr r2, [r4] 1698 0016 1368 ldr r3, [r2] 1699 0018 0121 movs r1, #1 1700 001a 8B43 bics r3, r1 1701 001c 1360 str r3, [r2] 591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1702 .loc 1 591 3 view .LVU512 591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1703 .loc 1 591 39 is_stmt 0 view .LVU513 1704 001e 6368 ldr r3, [r4, #4] 591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1705 .loc 1 591 7 view .LVU514 1706 0020 2268 ldr r2, [r4] 591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 165 1707 .loc 1 591 47 view .LVU515 1708 0022 2749 ldr r1, .L155 1709 0024 0B40 ands r3, r1 591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1710 .loc 1 591 27 view .LVU516 1711 0026 1361 str r3, [r2, #16] 595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1712 .loc 1 595 3 is_stmt 1 view .LVU517 595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1713 .loc 1 595 7 is_stmt 0 view .LVU518 1714 0028 2268 ldr r2, [r4] 595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1715 .loc 1 595 17 view .LVU519 1716 002a 9368 ldr r3, [r2, #8] 595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1717 .loc 1 595 24 view .LVU520 1718 002c 2549 ldr r1, .L155+4 1719 002e 0B40 ands r3, r1 1720 0030 9360 str r3, [r2, #8] 598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1721 .loc 1 598 3 is_stmt 1 view .LVU521 598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1722 .loc 1 598 17 is_stmt 0 view .LVU522 1723 0032 E368 ldr r3, [r4, #12] 598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1724 .loc 1 598 6 view .LVU523 1725 0034 012B cmp r3, #1 1726 0036 34D0 beq .L153 604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1727 .loc 1 604 5 is_stmt 1 view .LVU524 604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1728 .loc 1 604 75 is_stmt 0 view .LVU525 1729 0038 A168 ldr r1, [r4, #8] 604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1730 .loc 1 604 9 view .LVU526 1731 003a 2268 ldr r2, [r4] 604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1732 .loc 1 604 63 view .LVU527 1733 003c 8423 movs r3, #132 1734 003e 1B02 lsls r3, r3, #8 1735 0040 0B43 orrs r3, r1 604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1736 .loc 1 604 26 view .LVU528 1737 0042 9360 str r3, [r2, #8] 1738 .L149: 609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1739 .loc 1 609 3 is_stmt 1 view .LVU529 609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1740 .loc 1 609 17 is_stmt 0 view .LVU530 1741 0044 E368 ldr r3, [r4, #12] 609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1742 .loc 1 609 6 view .LVU531 1743 0046 022B cmp r3, #2 1744 0048 32D0 beq .L154 1745 .L150: 614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1746 .loc 1 614 3 is_stmt 1 view .LVU532 ARM GAS /tmp/ccuRhBPx.s page 166 614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1747 .loc 1 614 7 is_stmt 0 view .LVU533 1748 004a 2268 ldr r2, [r4] 614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1749 .loc 1 614 17 view .LVU534 1750 004c 5168 ldr r1, [r2, #4] 614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1751 .loc 1 614 23 view .LVU535 1752 004e 1E4B ldr r3, .L155+8 1753 0050 0B43 orrs r3, r1 1754 0052 5360 str r3, [r2, #4] 618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1755 .loc 1 618 3 is_stmt 1 view .LVU536 618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1756 .loc 1 618 7 is_stmt 0 view .LVU537 1757 0054 2268 ldr r2, [r4] 618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1758 .loc 1 618 17 view .LVU538 1759 0056 D368 ldr r3, [r2, #12] 618:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1760 .loc 1 618 24 view .LVU539 1761 0058 1A49 ldr r1, .L155+4 1762 005a 0B40 ands r3, r1 1763 005c D360 str r3, [r2, #12] 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1764 .loc 1 621 3 is_stmt 1 view .LVU540 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1765 .loc 1 621 37 is_stmt 0 view .LVU541 1766 005e 2369 ldr r3, [r4, #16] 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1767 .loc 1 621 66 view .LVU542 1768 0060 6269 ldr r2, [r4, #20] 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1769 .loc 1 621 54 view .LVU543 1770 0062 1343 orrs r3, r2 622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1771 .loc 1 622 38 view .LVU544 1772 0064 A269 ldr r2, [r4, #24] 622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1773 .loc 1 622 56 view .LVU545 1774 0066 1202 lsls r2, r2, #8 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1775 .loc 1 621 7 view .LVU546 1776 0068 2168 ldr r1, [r4] 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1777 .loc 1 621 79 view .LVU547 1778 006a 1343 orrs r3, r2 621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1779 .loc 1 621 24 view .LVU548 1780 006c CB60 str r3, [r1, #12] 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1781 .loc 1 626 3 is_stmt 1 view .LVU549 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1782 .loc 1 626 36 is_stmt 0 view .LVU550 1783 006e E369 ldr r3, [r4, #28] 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1784 .loc 1 626 65 view .LVU551 ARM GAS /tmp/ccuRhBPx.s page 167 1785 0070 216A ldr r1, [r4, #32] 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1786 .loc 1 626 7 view .LVU552 1787 0072 2268 ldr r2, [r4] 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1788 .loc 1 626 53 view .LVU553 1789 0074 0B43 orrs r3, r1 626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1790 .loc 1 626 23 view .LVU554 1791 0076 1360 str r3, [r2] 629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1792 .loc 1 629 3 is_stmt 1 view .LVU555 1793 0078 2268 ldr r2, [r4] 1794 007a 1368 ldr r3, [r2] 1795 007c 0121 movs r1, #1 1796 007e 0B43 orrs r3, r1 1797 0080 1360 str r3, [r2] 631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1798 .loc 1 631 3 view .LVU556 631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1799 .loc 1 631 19 is_stmt 0 view .LVU557 1800 0082 0023 movs r3, #0 1801 0084 6364 str r3, [r4, #68] 632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1802 .loc 1 632 3 is_stmt 1 view .LVU558 632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1803 .loc 1 632 15 is_stmt 0 view .LVU559 1804 0086 4122 movs r2, #65 1805 0088 1F31 adds r1, r1, #31 1806 008a A154 strb r1, [r4, r2] 633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1807 .loc 1 633 3 is_stmt 1 view .LVU560 633:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1808 .loc 1 633 23 is_stmt 0 view .LVU561 1809 008c 2363 str r3, [r4, #48] 634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1810 .loc 1 634 3 is_stmt 1 view .LVU562 634:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1811 .loc 1 634 14 is_stmt 0 view .LVU563 1812 008e 0132 adds r2, r2, #1 1813 0090 A354 strb r3, [r4, r2] 636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1814 .loc 1 636 3 is_stmt 1 view .LVU564 636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1815 .loc 1 636 10 is_stmt 0 view .LVU565 1816 0092 0020 movs r0, #0 1817 .L146: 637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1818 .loc 1 637 1 view .LVU566 1819 @ sp needed 1820 .LVL139: 637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1821 .loc 1 637 1 view .LVU567 1822 0094 10BD pop {r4, pc} 1823 .LVL140: 1824 .L152: 556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 168 1825 .loc 1 556 5 is_stmt 1 view .LVU568 556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1826 .loc 1 556 16 is_stmt 0 view .LVU569 1827 0096 4033 adds r3, r3, #64 1828 0098 0022 movs r2, #0 1829 009a C254 strb r2, [r0, r3] 580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1830 .loc 1 580 5 is_stmt 1 view .LVU570 1831 009c FFF7FEFF bl HAL_I2C_MspInit 1832 .LVL141: 580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1833 .loc 1 580 5 is_stmt 0 view .LVU571 1834 00a0 B5E7 b .L147 1835 .L153: 600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1836 .loc 1 600 5 is_stmt 1 view .LVU572 600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1837 .loc 1 600 56 is_stmt 0 view .LVU573 1838 00a2 A168 ldr r1, [r4, #8] 600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1839 .loc 1 600 9 view .LVU574 1840 00a4 2268 ldr r2, [r4] 600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1841 .loc 1 600 44 view .LVU575 1842 00a6 8023 movs r3, #128 1843 00a8 1B02 lsls r3, r3, #8 1844 00aa 0B43 orrs r3, r1 600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1845 .loc 1 600 26 view .LVU576 1846 00ac 9360 str r3, [r2, #8] 1847 00ae C9E7 b .L149 1848 .L154: 611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1849 .loc 1 611 5 is_stmt 1 view .LVU577 611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1850 .loc 1 611 9 is_stmt 0 view .LVU578 1851 00b0 2368 ldr r3, [r4] 611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1852 .loc 1 611 25 view .LVU579 1853 00b2 8022 movs r2, #128 1854 00b4 1201 lsls r2, r2, #4 1855 00b6 5A60 str r2, [r3, #4] 1856 00b8 C7E7 b .L150 1857 .LVL142: 1858 .L151: 540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1859 .loc 1 540 12 view .LVU580 1860 00ba 0120 movs r0, #1 1861 .LVL143: 540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1862 .loc 1 540 12 view .LVU581 1863 00bc EAE7 b .L146 1864 .L156: 1865 00be C046 .align 2 1866 .L155: 1867 00c0 FFFFFFF0 .word -251658241 1868 00c4 FF7FFFFF .word -32769 ARM GAS /tmp/ccuRhBPx.s page 169 1869 00c8 00800002 .word 33587200 1870 .cfi_endproc 1871 .LFE40: 1873 .section .text.HAL_I2C_MspDeInit,"ax",%progbits 1874 .align 1 1875 .weak HAL_I2C_MspDeInit 1876 .syntax unified 1877 .code 16 1878 .thumb_func 1880 HAL_I2C_MspDeInit: 1881 .LVL144: 1882 .LFB43: 708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1883 .loc 1 708 1 is_stmt 1 view -0 1884 .cfi_startproc 1885 @ args = 0, pretend = 0, frame = 0 1886 @ frame_needed = 0, uses_anonymous_args = 0 1887 @ link register save eliminated. 710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1888 .loc 1 710 3 view .LVU583 715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1889 .loc 1 715 1 is_stmt 0 view .LVU584 1890 @ sp needed 1891 0000 7047 bx lr 1892 .cfi_endproc 1893 .LFE43: 1895 .section .text.HAL_I2C_DeInit,"ax",%progbits 1896 .align 1 1897 .global HAL_I2C_DeInit 1898 .syntax unified 1899 .code 16 1900 .thumb_func 1902 HAL_I2C_DeInit: 1903 .LVL145: 1904 .LFB41: 646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1905 .loc 1 646 1 is_stmt 1 view -0 1906 .cfi_startproc 1907 @ args = 0, pretend = 0, frame = 0 1908 @ frame_needed = 0, uses_anonymous_args = 0 646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1909 .loc 1 646 1 is_stmt 0 view .LVU586 1910 0000 70B5 push {r4, r5, r6, lr} 1911 .cfi_def_cfa_offset 16 1912 .cfi_offset 4, -16 1913 .cfi_offset 5, -12 1914 .cfi_offset 6, -8 1915 .cfi_offset 14, -4 1916 0002 041E subs r4, r0, #0 648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1917 .loc 1 648 3 is_stmt 1 view .LVU587 648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 1918 .loc 1 648 6 is_stmt 0 view .LVU588 1919 0004 13D0 beq .L160 654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1920 .loc 1 654 3 is_stmt 1 view .LVU589 656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 170 1921 .loc 1 656 3 view .LVU590 656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1922 .loc 1 656 15 is_stmt 0 view .LVU591 1923 0006 4125 movs r5, #65 1924 0008 2423 movs r3, #36 1925 000a 4355 strb r3, [r0, r5] 659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1926 .loc 1 659 3 is_stmt 1 view .LVU592 1927 000c 0268 ldr r2, [r0] 1928 000e 1368 ldr r3, [r2] 1929 0010 0121 movs r1, #1 1930 0012 8B43 bics r3, r1 1931 0014 1360 str r3, [r2] 671:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1932 .loc 1 671 3 view .LVU593 1933 0016 FFF7FEFF bl HAL_I2C_MspDeInit 1934 .LVL146: 674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1935 .loc 1 674 3 view .LVU594 674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1936 .loc 1 674 19 is_stmt 0 view .LVU595 1937 001a 0023 movs r3, #0 1938 001c 6364 str r3, [r4, #68] 675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1939 .loc 1 675 3 is_stmt 1 view .LVU596 675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1940 .loc 1 675 15 is_stmt 0 view .LVU597 1941 001e 6355 strb r3, [r4, r5] 676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1942 .loc 1 676 3 is_stmt 1 view .LVU598 676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1943 .loc 1 676 23 is_stmt 0 view .LVU599 1944 0020 2363 str r3, [r4, #48] 677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1945 .loc 1 677 3 is_stmt 1 view .LVU600 677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1946 .loc 1 677 14 is_stmt 0 view .LVU601 1947 0022 4222 movs r2, #66 1948 0024 A354 strb r3, [r4, r2] 680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1949 .loc 1 680 3 is_stmt 1 view .LVU602 680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1950 .loc 1 680 3 view .LVU603 1951 0026 023A subs r2, r2, #2 1952 0028 A354 strb r3, [r4, r2] 680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1953 .loc 1 680 3 view .LVU604 682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1954 .loc 1 682 3 view .LVU605 682:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1955 .loc 1 682 10 is_stmt 0 view .LVU606 1956 002a 0020 movs r0, #0 1957 .L159: 683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1958 .loc 1 683 1 view .LVU607 1959 @ sp needed 1960 .LVL147: ARM GAS /tmp/ccuRhBPx.s page 171 683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 1961 .loc 1 683 1 view .LVU608 1962 002c 70BD pop {r4, r5, r6, pc} 1963 .LVL148: 1964 .L160: 650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1965 .loc 1 650 12 view .LVU609 1966 002e 0120 movs r0, #1 1967 .LVL149: 650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 1968 .loc 1 650 12 view .LVU610 1969 0030 FCE7 b .L159 1970 .cfi_endproc 1971 .LFE41: 1973 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits 1974 .align 1 1975 .global HAL_I2C_Master_Transmit 1976 .syntax unified 1977 .code 16 1978 .thumb_func 1980 HAL_I2C_Master_Transmit: 1981 .LVL150: 1982 .LFB44: 1116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 1983 .loc 1 1116 1 is_stmt 1 view -0 1984 .cfi_startproc 1985 @ args = 4, pretend = 0, frame = 8 1986 @ frame_needed = 0, uses_anonymous_args = 0 1116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 1987 .loc 1 1116 1 is_stmt 0 view .LVU612 1988 0000 F0B5 push {r4, r5, r6, r7, lr} 1989 .cfi_def_cfa_offset 20 1990 .cfi_offset 4, -20 1991 .cfi_offset 5, -16 1992 .cfi_offset 6, -12 1993 .cfi_offset 7, -8 1994 .cfi_offset 14, -4 1995 0002 85B0 sub sp, sp, #20 1996 .cfi_def_cfa_offset 40 1997 0004 0400 movs r4, r0 1998 0006 0F00 movs r7, r1 1999 0008 0292 str r2, [sp, #8] 2000 000a 0393 str r3, [sp, #12] 2001 000c 0A9D ldr r5, [sp, #40] 1117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2002 .loc 1 1117 3 is_stmt 1 view .LVU613 1119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2003 .loc 1 1119 3 view .LVU614 1119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2004 .loc 1 1119 11 is_stmt 0 view .LVU615 2005 000e 4123 movs r3, #65 2006 .LVL151: 1119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2007 .loc 1 1119 11 view .LVU616 2008 0010 C35C ldrb r3, [r0, r3] 1119:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2009 .loc 1 1119 6 view .LVU617 ARM GAS /tmp/ccuRhBPx.s page 172 2010 0012 202B cmp r3, #32 2011 0014 00D0 beq .LCB1939 2012 0016 9BE0 b .L169 @long jump 2013 .LCB1939: 1122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2014 .loc 1 1122 5 is_stmt 1 view .LVU618 1122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2015 .loc 1 1122 5 view .LVU619 2016 0018 2033 adds r3, r3, #32 2017 001a C35C ldrb r3, [r0, r3] 2018 001c 012B cmp r3, #1 2019 001e 00D1 bne .LCB1945 2020 0020 99E0 b .L170 @long jump 2021 .LCB1945: 1122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2022 .loc 1 1122 5 discriminator 2 view .LVU620 2023 0022 4023 movs r3, #64 2024 0024 0122 movs r2, #1 2025 .LVL152: 1122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2026 .loc 1 1122 5 is_stmt 0 discriminator 2 view .LVU621 2027 0026 C254 strb r2, [r0, r3] 1122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2028 .loc 1 1122 5 is_stmt 1 discriminator 2 view .LVU622 1125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2029 .loc 1 1125 5 view .LVU623 1125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2030 .loc 1 1125 17 is_stmt 0 view .LVU624 2031 0028 FFF7FEFF bl HAL_GetTick 2032 .LVL153: 1125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2033 .loc 1 1125 17 view .LVU625 2034 002c 0600 movs r6, r0 2035 .LVL154: 1127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2036 .loc 1 1127 5 is_stmt 1 view .LVU626 1127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2037 .loc 1 1127 9 is_stmt 0 view .LVU627 2038 002e 8021 movs r1, #128 2039 0030 0090 str r0, [sp] 2040 0032 1923 movs r3, #25 2041 0034 0122 movs r2, #1 2042 0036 0902 lsls r1, r1, #8 2043 0038 2000 movs r0, r4 2044 .LVL155: 1127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2045 .loc 1 1127 9 view .LVU628 2046 003a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2047 .LVL156: 1127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2048 .loc 1 1127 8 discriminator 1 view .LVU629 2049 003e 0028 cmp r0, #0 2050 0040 00D0 beq .LCB1969 2051 0042 8AE0 b .L171 @long jump 2052 .LCB1969: 1132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2053 .loc 1 1132 5 is_stmt 1 view .LVU630 ARM GAS /tmp/ccuRhBPx.s page 173 1132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2054 .loc 1 1132 21 is_stmt 0 view .LVU631 2055 0044 4123 movs r3, #65 2056 0046 2122 movs r2, #33 2057 0048 E254 strb r2, [r4, r3] 1133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2058 .loc 1 1133 5 is_stmt 1 view .LVU632 1133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2059 .loc 1 1133 21 is_stmt 0 view .LVU633 2060 004a 0133 adds r3, r3, #1 2061 004c 113A subs r2, r2, #17 2062 004e E254 strb r2, [r4, r3] 1134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2063 .loc 1 1134 5 is_stmt 1 view .LVU634 1134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2064 .loc 1 1134 21 is_stmt 0 view .LVU635 2065 0050 0023 movs r3, #0 2066 0052 6364 str r3, [r4, #68] 1137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2067 .loc 1 1137 5 is_stmt 1 view .LVU636 1137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2068 .loc 1 1137 21 is_stmt 0 view .LVU637 2069 0054 029A ldr r2, [sp, #8] 2070 0056 6262 str r2, [r4, #36] 1138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2071 .loc 1 1138 5 is_stmt 1 view .LVU638 1138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2072 .loc 1 1138 21 is_stmt 0 view .LVU639 2073 0058 039A ldr r2, [sp, #12] 2074 005a 6285 strh r2, [r4, #42] 1139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2075 .loc 1 1139 5 is_stmt 1 view .LVU640 1139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2076 .loc 1 1139 21 is_stmt 0 view .LVU641 2077 005c 6363 str r3, [r4, #52] 1143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2078 .loc 1 1143 5 is_stmt 1 view .LVU642 1143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2079 .loc 1 1143 13 is_stmt 0 view .LVU643 2080 005e 638D ldrh r3, [r4, #42] 2081 0060 9BB2 uxth r3, r3 1143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2082 .loc 1 1143 8 view .LVU644 2083 0062 FF2B cmp r3, #255 2084 0064 0BD9 bls .L163 1145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2085 .loc 1 1145 7 is_stmt 1 view .LVU645 1145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2086 .loc 1 1145 22 is_stmt 0 view .LVU646 2087 0066 FF23 movs r3, #255 2088 0068 2385 strh r3, [r4, #40] 1146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 2089 .loc 1 1146 7 is_stmt 1 view .LVU647 2090 006a 7F3B subs r3, r3, #127 2091 006c 3F4A ldr r2, .L176 2092 006e 0092 str r2, [sp] 2093 0070 5B04 lsls r3, r3, #17 ARM GAS /tmp/ccuRhBPx.s page 174 2094 0072 FF22 movs r2, #255 2095 0074 3900 movs r1, r7 2096 0076 2000 movs r0, r4 2097 0078 FFF7FEFF bl I2C_TransferConfig 2098 .LVL157: 2099 007c 18E0 b .L165 2100 .L163: 1151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2101 .loc 1 1151 7 view .LVU648 1151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2102 .loc 1 1151 28 is_stmt 0 view .LVU649 2103 007e 628D ldrh r2, [r4, #42] 2104 0080 92B2 uxth r2, r2 1151:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2105 .loc 1 1151 22 view .LVU650 2106 0082 2285 strh r2, [r4, #40] 1152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 2107 .loc 1 1152 7 is_stmt 1 view .LVU651 2108 0084 8023 movs r3, #128 2109 0086 D2B2 uxtb r2, r2 2110 0088 3849 ldr r1, .L176 2111 008a 0091 str r1, [sp] 2112 008c 9B04 lsls r3, r3, #18 2113 008e 3900 movs r1, r7 2114 0090 2000 movs r0, r4 2115 0092 FFF7FEFF bl I2C_TransferConfig 2116 .LVL158: 2117 0096 0BE0 b .L165 2118 .L167: 1188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2119 .loc 1 1188 11 view .LVU652 1188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2120 .loc 1 1188 32 is_stmt 0 view .LVU653 2121 0098 628D ldrh r2, [r4, #42] 2122 009a 92B2 uxth r2, r2 1188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2123 .loc 1 1188 26 view .LVU654 2124 009c 2285 strh r2, [r4, #40] 1189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2125 .loc 1 1189 11 is_stmt 1 view .LVU655 2126 009e 8023 movs r3, #128 2127 00a0 D2B2 uxtb r2, r2 2128 00a2 0021 movs r1, #0 2129 00a4 0091 str r1, [sp] 2130 00a6 9B04 lsls r3, r3, #18 2131 00a8 3900 movs r1, r7 2132 00aa 2000 movs r0, r4 2133 00ac FFF7FEFF bl I2C_TransferConfig 2134 .LVL159: 2135 .L165: 1156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2136 .loc 1 1156 28 view .LVU656 1156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2137 .loc 1 1156 16 is_stmt 0 view .LVU657 2138 00b0 638D ldrh r3, [r4, #42] 2139 00b2 9BB2 uxth r3, r3 1156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 175 2140 .loc 1 1156 28 view .LVU658 2141 00b4 002B cmp r3, #0 2142 00b6 34D0 beq .L175 1159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2143 .loc 1 1159 7 is_stmt 1 view .LVU659 1159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2144 .loc 1 1159 11 is_stmt 0 view .LVU660 2145 00b8 3200 movs r2, r6 2146 00ba 2900 movs r1, r5 2147 00bc 2000 movs r0, r4 2148 00be FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2149 .LVL160: 1159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2150 .loc 1 1159 10 discriminator 1 view .LVU661 2151 00c2 0028 cmp r0, #0 2152 00c4 4BD1 bne .L172 1164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2153 .loc 1 1164 7 is_stmt 1 view .LVU662 1164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2154 .loc 1 1164 35 is_stmt 0 view .LVU663 2155 00c6 626A ldr r2, [r4, #36] 1164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2156 .loc 1 1164 11 view .LVU664 2157 00c8 2368 ldr r3, [r4] 1164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2158 .loc 1 1164 30 view .LVU665 2159 00ca 1278 ldrb r2, [r2] 1164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2160 .loc 1 1164 28 view .LVU666 2161 00cc 9A62 str r2, [r3, #40] 1167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2162 .loc 1 1167 7 is_stmt 1 view .LVU667 1167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2163 .loc 1 1167 11 is_stmt 0 view .LVU668 2164 00ce 636A ldr r3, [r4, #36] 1167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2165 .loc 1 1167 21 view .LVU669 2166 00d0 0133 adds r3, r3, #1 2167 00d2 6362 str r3, [r4, #36] 1169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 2168 .loc 1 1169 7 is_stmt 1 view .LVU670 1169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 2169 .loc 1 1169 11 is_stmt 0 view .LVU671 2170 00d4 638D ldrh r3, [r4, #42] 1169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 2171 .loc 1 1169 22 view .LVU672 2172 00d6 013B subs r3, r3, #1 2173 00d8 9BB2 uxth r3, r3 2174 00da 6385 strh r3, [r4, #42] 1170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2175 .loc 1 1170 7 is_stmt 1 view .LVU673 1170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2176 .loc 1 1170 11 is_stmt 0 view .LVU674 2177 00dc 238D ldrh r3, [r4, #40] 1170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2178 .loc 1 1170 21 view .LVU675 2179 00de 013B subs r3, r3, #1 ARM GAS /tmp/ccuRhBPx.s page 176 2180 00e0 9BB2 uxth r3, r3 2181 00e2 2385 strh r3, [r4, #40] 1172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2182 .loc 1 1172 7 is_stmt 1 view .LVU676 1172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2183 .loc 1 1172 16 is_stmt 0 view .LVU677 2184 00e4 628D ldrh r2, [r4, #42] 2185 00e6 92B2 uxth r2, r2 1172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2186 .loc 1 1172 10 view .LVU678 2187 00e8 002A cmp r2, #0 2188 00ea E1D0 beq .L165 1172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2189 .loc 1 1172 35 discriminator 1 view .LVU679 2190 00ec 002B cmp r3, #0 2191 00ee DFD1 bne .L165 1175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2192 .loc 1 1175 9 is_stmt 1 view .LVU680 1175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2193 .loc 1 1175 13 is_stmt 0 view .LVU681 2194 00f0 0096 str r6, [sp] 2195 00f2 2B00 movs r3, r5 2196 00f4 0022 movs r2, #0 2197 00f6 8021 movs r1, #128 2198 00f8 2000 movs r0, r4 2199 00fa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2200 .LVL161: 1175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2201 .loc 1 1175 12 discriminator 1 view .LVU682 2202 00fe 0028 cmp r0, #0 2203 0100 2FD1 bne .L173 1180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2204 .loc 1 1180 9 is_stmt 1 view .LVU683 1180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2205 .loc 1 1180 17 is_stmt 0 view .LVU684 2206 0102 638D ldrh r3, [r4, #42] 2207 0104 9BB2 uxth r3, r3 1180:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2208 .loc 1 1180 12 view .LVU685 2209 0106 FF2B cmp r3, #255 2210 0108 C6D9 bls .L167 1182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2211 .loc 1 1182 11 is_stmt 1 view .LVU686 1182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2212 .loc 1 1182 26 is_stmt 0 view .LVU687 2213 010a FF23 movs r3, #255 2214 010c 2385 strh r3, [r4, #40] 1183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2215 .loc 1 1183 11 is_stmt 1 view .LVU688 2216 010e 7F3B subs r3, r3, #127 2217 0110 0022 movs r2, #0 2218 0112 0092 str r2, [sp] 2219 0114 5B04 lsls r3, r3, #17 2220 0116 FF32 adds r2, r2, #255 2221 0118 3900 movs r1, r7 2222 011a 2000 movs r0, r4 2223 011c FFF7FEFF bl I2C_TransferConfig ARM GAS /tmp/ccuRhBPx.s page 177 2224 .LVL162: 2225 0120 C6E7 b .L165 2226 .L175: 1197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2227 .loc 1 1197 5 view .LVU689 1197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2228 .loc 1 1197 9 is_stmt 0 view .LVU690 2229 0122 3200 movs r2, r6 2230 0124 2900 movs r1, r5 2231 0126 2000 movs r0, r4 2232 0128 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2233 .LVL163: 1197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2234 .loc 1 1197 8 discriminator 1 view .LVU691 2235 012c 0028 cmp r0, #0 2236 012e 1AD1 bne .L174 1203:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2237 .loc 1 1203 5 is_stmt 1 view .LVU692 2238 0130 2368 ldr r3, [r4] 2239 0132 2022 movs r2, #32 2240 0134 DA61 str r2, [r3, #28] 1206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2241 .loc 1 1206 5 view .LVU693 2242 0136 2168 ldr r1, [r4] 2243 0138 4B68 ldr r3, [r1, #4] 2244 013a 0D4D ldr r5, .L176+4 2245 013c 2B40 ands r3, r5 2246 013e 4B60 str r3, [r1, #4] 1208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2247 .loc 1 1208 5 view .LVU694 1208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2248 .loc 1 1208 17 is_stmt 0 view .LVU695 2249 0140 4123 movs r3, #65 2250 0142 E254 strb r2, [r4, r3] 1209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2251 .loc 1 1209 5 is_stmt 1 view .LVU696 1209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2252 .loc 1 1209 17 is_stmt 0 view .LVU697 2253 0144 0023 movs r3, #0 2254 0146 2232 adds r2, r2, #34 2255 0148 A354 strb r3, [r4, r2] 1212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2256 .loc 1 1212 5 is_stmt 1 view .LVU698 1212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2257 .loc 1 1212 5 view .LVU699 2258 014a 023A subs r2, r2, #2 2259 014c A354 strb r3, [r4, r2] 1212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2260 .loc 1 1212 5 view .LVU700 1214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2261 .loc 1 1214 5 view .LVU701 1214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2262 .loc 1 1214 12 is_stmt 0 view .LVU702 2263 014e 00E0 b .L162 2264 .LVL164: 2265 .L169: 1218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 178 2266 .loc 1 1218 12 view .LVU703 2267 0150 0220 movs r0, #2 2268 .LVL165: 2269 .L162: 1220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2270 .loc 1 1220 1 view .LVU704 2271 0152 05B0 add sp, sp, #20 2272 @ sp needed 2273 .LVL166: 2274 .LVL167: 1220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2275 .loc 1 1220 1 view .LVU705 2276 0154 F0BD pop {r4, r5, r6, r7, pc} 2277 .LVL168: 2278 .L170: 1122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2279 .loc 1 1122 5 discriminator 1 view .LVU706 2280 0156 0220 movs r0, #2 2281 .LVL169: 1122:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2282 .loc 1 1122 5 discriminator 1 view .LVU707 2283 0158 FBE7 b .L162 2284 .LVL170: 2285 .L171: 1129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2286 .loc 1 1129 14 view .LVU708 2287 015a 0120 movs r0, #1 2288 015c F9E7 b .L162 2289 .L172: 1161:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2290 .loc 1 1161 16 view .LVU709 2291 015e 0120 movs r0, #1 2292 0160 F7E7 b .L162 2293 .L173: 1177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2294 .loc 1 1177 18 view .LVU710 2295 0162 0120 movs r0, #1 2296 0164 F5E7 b .L162 2297 .L174: 1199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2298 .loc 1 1199 14 view .LVU711 2299 0166 0120 movs r0, #1 2300 0168 F3E7 b .L162 2301 .L177: 2302 016a C046 .align 2 2303 .L176: 2304 016c 00200080 .word -2147475456 2305 0170 00E800FE .word -33495040 2306 .cfi_endproc 2307 .LFE44: 2309 .section .text.HAL_I2C_Master_Receive,"ax",%progbits 2310 .align 1 2311 .global HAL_I2C_Master_Receive 2312 .syntax unified 2313 .code 16 2314 .thumb_func 2316 HAL_I2C_Master_Receive: ARM GAS /tmp/ccuRhBPx.s page 179 2317 .LVL171: 2318 .LFB45: 1235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2319 .loc 1 1235 1 is_stmt 1 view -0 2320 .cfi_startproc 2321 @ args = 4, pretend = 0, frame = 8 2322 @ frame_needed = 0, uses_anonymous_args = 0 1235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2323 .loc 1 1235 1 is_stmt 0 view .LVU713 2324 0000 F0B5 push {r4, r5, r6, r7, lr} 2325 .cfi_def_cfa_offset 20 2326 .cfi_offset 4, -20 2327 .cfi_offset 5, -16 2328 .cfi_offset 6, -12 2329 .cfi_offset 7, -8 2330 .cfi_offset 14, -4 2331 0002 85B0 sub sp, sp, #20 2332 .cfi_def_cfa_offset 40 2333 0004 0400 movs r4, r0 2334 0006 0F00 movs r7, r1 2335 0008 0292 str r2, [sp, #8] 2336 000a 0393 str r3, [sp, #12] 2337 000c 0A9D ldr r5, [sp, #40] 1236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2338 .loc 1 1236 3 is_stmt 1 view .LVU714 1238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2339 .loc 1 1238 3 view .LVU715 1238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2340 .loc 1 1238 11 is_stmt 0 view .LVU716 2341 000e 4123 movs r3, #65 2342 .LVL172: 1238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2343 .loc 1 1238 11 view .LVU717 2344 0010 C35C ldrb r3, [r0, r3] 1238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2345 .loc 1 1238 6 view .LVU718 2346 0012 202B cmp r3, #32 2347 0014 00D0 beq .LCB2260 2348 0016 9BE0 b .L186 @long jump 2349 .LCB2260: 1241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2350 .loc 1 1241 5 is_stmt 1 view .LVU719 1241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2351 .loc 1 1241 5 view .LVU720 2352 0018 2033 adds r3, r3, #32 2353 001a C35C ldrb r3, [r0, r3] 2354 001c 012B cmp r3, #1 2355 001e 00D1 bne .LCB2266 2356 0020 99E0 b .L187 @long jump 2357 .LCB2266: 1241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2358 .loc 1 1241 5 discriminator 2 view .LVU721 2359 0022 4023 movs r3, #64 2360 0024 0122 movs r2, #1 2361 .LVL173: 1241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2362 .loc 1 1241 5 is_stmt 0 discriminator 2 view .LVU722 ARM GAS /tmp/ccuRhBPx.s page 180 2363 0026 C254 strb r2, [r0, r3] 1241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2364 .loc 1 1241 5 is_stmt 1 discriminator 2 view .LVU723 1244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2365 .loc 1 1244 5 view .LVU724 1244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2366 .loc 1 1244 17 is_stmt 0 view .LVU725 2367 0028 FFF7FEFF bl HAL_GetTick 2368 .LVL174: 1244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2369 .loc 1 1244 17 view .LVU726 2370 002c 0600 movs r6, r0 2371 .LVL175: 1246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2372 .loc 1 1246 5 is_stmt 1 view .LVU727 1246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2373 .loc 1 1246 9 is_stmt 0 view .LVU728 2374 002e 8021 movs r1, #128 2375 0030 0090 str r0, [sp] 2376 0032 1923 movs r3, #25 2377 0034 0122 movs r2, #1 2378 0036 0902 lsls r1, r1, #8 2379 0038 2000 movs r0, r4 2380 .LVL176: 1246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2381 .loc 1 1246 9 view .LVU729 2382 003a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2383 .LVL177: 1246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2384 .loc 1 1246 8 discriminator 1 view .LVU730 2385 003e 0028 cmp r0, #0 2386 0040 00D0 beq .LCB2290 2387 0042 8AE0 b .L188 @long jump 2388 .LCB2290: 1251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2389 .loc 1 1251 5 is_stmt 1 view .LVU731 1251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2390 .loc 1 1251 21 is_stmt 0 view .LVU732 2391 0044 4123 movs r3, #65 2392 0046 2222 movs r2, #34 2393 0048 E254 strb r2, [r4, r3] 1252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2394 .loc 1 1252 5 is_stmt 1 view .LVU733 1252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2395 .loc 1 1252 21 is_stmt 0 view .LVU734 2396 004a 0133 adds r3, r3, #1 2397 004c 123A subs r2, r2, #18 2398 004e E254 strb r2, [r4, r3] 1253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2399 .loc 1 1253 5 is_stmt 1 view .LVU735 1253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2400 .loc 1 1253 21 is_stmt 0 view .LVU736 2401 0050 0023 movs r3, #0 2402 0052 6364 str r3, [r4, #68] 1256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2403 .loc 1 1256 5 is_stmt 1 view .LVU737 1256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccuRhBPx.s page 181 2404 .loc 1 1256 21 is_stmt 0 view .LVU738 2405 0054 029A ldr r2, [sp, #8] 2406 0056 6262 str r2, [r4, #36] 1257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2407 .loc 1 1257 5 is_stmt 1 view .LVU739 1257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2408 .loc 1 1257 21 is_stmt 0 view .LVU740 2409 0058 039A ldr r2, [sp, #12] 2410 005a 6285 strh r2, [r4, #42] 1258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2411 .loc 1 1258 5 is_stmt 1 view .LVU741 1258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2412 .loc 1 1258 21 is_stmt 0 view .LVU742 2413 005c 6363 str r3, [r4, #52] 1262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2414 .loc 1 1262 5 is_stmt 1 view .LVU743 1262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2415 .loc 1 1262 13 is_stmt 0 view .LVU744 2416 005e 638D ldrh r3, [r4, #42] 2417 0060 9BB2 uxth r3, r3 1262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2418 .loc 1 1262 8 view .LVU745 2419 0062 FF2B cmp r3, #255 2420 0064 0BD9 bls .L180 1264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2421 .loc 1 1264 7 is_stmt 1 view .LVU746 1264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2422 .loc 1 1264 22 is_stmt 0 view .LVU747 2423 0066 FF23 movs r3, #255 2424 0068 2385 strh r3, [r4, #40] 1265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2425 .loc 1 1265 7 is_stmt 1 view .LVU748 2426 006a 7F3B subs r3, r3, #127 2427 006c 3F4A ldr r2, .L193 2428 006e 0092 str r2, [sp] 2429 0070 5B04 lsls r3, r3, #17 2430 0072 FF22 movs r2, #255 2431 0074 3900 movs r1, r7 2432 0076 2000 movs r0, r4 2433 0078 FFF7FEFF bl I2C_TransferConfig 2434 .LVL178: 2435 007c 18E0 b .L182 2436 .L180: 1270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2437 .loc 1 1270 7 view .LVU749 1270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2438 .loc 1 1270 28 is_stmt 0 view .LVU750 2439 007e 628D ldrh r2, [r4, #42] 2440 0080 92B2 uxth r2, r2 1270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2441 .loc 1 1270 22 view .LVU751 2442 0082 2285 strh r2, [r4, #40] 1271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2443 .loc 1 1271 7 is_stmt 1 view .LVU752 2444 0084 8023 movs r3, #128 2445 0086 D2B2 uxtb r2, r2 2446 0088 3849 ldr r1, .L193 ARM GAS /tmp/ccuRhBPx.s page 182 2447 008a 0091 str r1, [sp] 2448 008c 9B04 lsls r3, r3, #18 2449 008e 3900 movs r1, r7 2450 0090 2000 movs r0, r4 2451 0092 FFF7FEFF bl I2C_TransferConfig 2452 .LVL179: 2453 0096 0BE0 b .L182 2454 .L184: 1308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2455 .loc 1 1308 11 view .LVU753 1308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2456 .loc 1 1308 32 is_stmt 0 view .LVU754 2457 0098 628D ldrh r2, [r4, #42] 2458 009a 92B2 uxth r2, r2 1308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2459 .loc 1 1308 26 view .LVU755 2460 009c 2285 strh r2, [r4, #40] 1309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2461 .loc 1 1309 11 is_stmt 1 view .LVU756 2462 009e 8023 movs r3, #128 2463 00a0 D2B2 uxtb r2, r2 2464 00a2 0021 movs r1, #0 2465 00a4 0091 str r1, [sp] 2466 00a6 9B04 lsls r3, r3, #18 2467 00a8 3900 movs r1, r7 2468 00aa 2000 movs r0, r4 2469 00ac FFF7FEFF bl I2C_TransferConfig 2470 .LVL180: 2471 .L182: 1275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2472 .loc 1 1275 28 view .LVU757 1275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2473 .loc 1 1275 16 is_stmt 0 view .LVU758 2474 00b0 638D ldrh r3, [r4, #42] 2475 00b2 9BB2 uxth r3, r3 1275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2476 .loc 1 1275 28 view .LVU759 2477 00b4 002B cmp r3, #0 2478 00b6 34D0 beq .L192 1278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2479 .loc 1 1278 7 is_stmt 1 view .LVU760 1278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2480 .loc 1 1278 11 is_stmt 0 view .LVU761 2481 00b8 3200 movs r2, r6 2482 00ba 2900 movs r1, r5 2483 00bc 2000 movs r0, r4 2484 00be FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2485 .LVL181: 1278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2486 .loc 1 1278 10 discriminator 1 view .LVU762 2487 00c2 0028 cmp r0, #0 2488 00c4 4BD1 bne .L189 1284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2489 .loc 1 1284 7 is_stmt 1 view .LVU763 1284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2490 .loc 1 1284 38 is_stmt 0 view .LVU764 2491 00c6 2368 ldr r3, [r4] ARM GAS /tmp/ccuRhBPx.s page 183 1284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2492 .loc 1 1284 48 view .LVU765 2493 00c8 5A6A ldr r2, [r3, #36] 1284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2494 .loc 1 1284 12 view .LVU766 2495 00ca 636A ldr r3, [r4, #36] 1284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2496 .loc 1 1284 23 view .LVU767 2497 00cc 1A70 strb r2, [r3] 1287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2498 .loc 1 1287 7 is_stmt 1 view .LVU768 1287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2499 .loc 1 1287 11 is_stmt 0 view .LVU769 2500 00ce 636A ldr r3, [r4, #36] 1287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2501 .loc 1 1287 21 view .LVU770 2502 00d0 0133 adds r3, r3, #1 2503 00d2 6362 str r3, [r4, #36] 1289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 2504 .loc 1 1289 7 is_stmt 1 view .LVU771 1289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 2505 .loc 1 1289 11 is_stmt 0 view .LVU772 2506 00d4 238D ldrh r3, [r4, #40] 1289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 2507 .loc 1 1289 21 view .LVU773 2508 00d6 013B subs r3, r3, #1 2509 00d8 9BB2 uxth r3, r3 2510 00da 2385 strh r3, [r4, #40] 1290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2511 .loc 1 1290 7 is_stmt 1 view .LVU774 1290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2512 .loc 1 1290 11 is_stmt 0 view .LVU775 2513 00dc 628D ldrh r2, [r4, #42] 1290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2514 .loc 1 1290 22 view .LVU776 2515 00de 013A subs r2, r2, #1 2516 00e0 92B2 uxth r2, r2 2517 00e2 6285 strh r2, [r4, #42] 1292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2518 .loc 1 1292 7 is_stmt 1 view .LVU777 1292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2519 .loc 1 1292 16 is_stmt 0 view .LVU778 2520 00e4 628D ldrh r2, [r4, #42] 2521 00e6 92B2 uxth r2, r2 1292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2522 .loc 1 1292 10 view .LVU779 2523 00e8 002A cmp r2, #0 2524 00ea E1D0 beq .L182 1292:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2525 .loc 1 1292 35 discriminator 1 view .LVU780 2526 00ec 002B cmp r3, #0 2527 00ee DFD1 bne .L182 1295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2528 .loc 1 1295 9 is_stmt 1 view .LVU781 1295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2529 .loc 1 1295 13 is_stmt 0 view .LVU782 2530 00f0 0096 str r6, [sp] ARM GAS /tmp/ccuRhBPx.s page 184 2531 00f2 2B00 movs r3, r5 2532 00f4 0022 movs r2, #0 2533 00f6 8021 movs r1, #128 2534 00f8 2000 movs r0, r4 2535 00fa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2536 .LVL182: 1295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2537 .loc 1 1295 12 discriminator 1 view .LVU783 2538 00fe 0028 cmp r0, #0 2539 0100 2FD1 bne .L190 1300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2540 .loc 1 1300 9 is_stmt 1 view .LVU784 1300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2541 .loc 1 1300 17 is_stmt 0 view .LVU785 2542 0102 638D ldrh r3, [r4, #42] 2543 0104 9BB2 uxth r3, r3 1300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2544 .loc 1 1300 12 view .LVU786 2545 0106 FF2B cmp r3, #255 2546 0108 C6D9 bls .L184 1302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2547 .loc 1 1302 11 is_stmt 1 view .LVU787 1302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2548 .loc 1 1302 26 is_stmt 0 view .LVU788 2549 010a FF23 movs r3, #255 2550 010c 2385 strh r3, [r4, #40] 1303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2551 .loc 1 1303 11 is_stmt 1 view .LVU789 2552 010e 7F3B subs r3, r3, #127 2553 0110 0022 movs r2, #0 2554 0112 0092 str r2, [sp] 2555 0114 5B04 lsls r3, r3, #17 2556 0116 FF32 adds r2, r2, #255 2557 0118 3900 movs r1, r7 2558 011a 2000 movs r0, r4 2559 011c FFF7FEFF bl I2C_TransferConfig 2560 .LVL183: 2561 0120 C6E7 b .L182 2562 .L192: 1317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2563 .loc 1 1317 5 view .LVU790 1317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2564 .loc 1 1317 9 is_stmt 0 view .LVU791 2565 0122 3200 movs r2, r6 2566 0124 2900 movs r1, r5 2567 0126 2000 movs r0, r4 2568 0128 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2569 .LVL184: 1317:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2570 .loc 1 1317 8 discriminator 1 view .LVU792 2571 012c 0028 cmp r0, #0 2572 012e 1AD1 bne .L191 1323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2573 .loc 1 1323 5 is_stmt 1 view .LVU793 2574 0130 2368 ldr r3, [r4] 2575 0132 2022 movs r2, #32 2576 0134 DA61 str r2, [r3, #28] ARM GAS /tmp/ccuRhBPx.s page 185 1326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2577 .loc 1 1326 5 view .LVU794 2578 0136 2168 ldr r1, [r4] 2579 0138 4B68 ldr r3, [r1, #4] 2580 013a 0D4D ldr r5, .L193+4 2581 013c 2B40 ands r3, r5 2582 013e 4B60 str r3, [r1, #4] 1328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2583 .loc 1 1328 5 view .LVU795 1328:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2584 .loc 1 1328 17 is_stmt 0 view .LVU796 2585 0140 4123 movs r3, #65 2586 0142 E254 strb r2, [r4, r3] 1329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2587 .loc 1 1329 5 is_stmt 1 view .LVU797 1329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2588 .loc 1 1329 17 is_stmt 0 view .LVU798 2589 0144 0023 movs r3, #0 2590 0146 2232 adds r2, r2, #34 2591 0148 A354 strb r3, [r4, r2] 1332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2592 .loc 1 1332 5 is_stmt 1 view .LVU799 1332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2593 .loc 1 1332 5 view .LVU800 2594 014a 023A subs r2, r2, #2 2595 014c A354 strb r3, [r4, r2] 1332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2596 .loc 1 1332 5 view .LVU801 1334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2597 .loc 1 1334 5 view .LVU802 1334:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2598 .loc 1 1334 12 is_stmt 0 view .LVU803 2599 014e 00E0 b .L179 2600 .LVL185: 2601 .L186: 1338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2602 .loc 1 1338 12 view .LVU804 2603 0150 0220 movs r0, #2 2604 .LVL186: 2605 .L179: 1340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2606 .loc 1 1340 1 view .LVU805 2607 0152 05B0 add sp, sp, #20 2608 @ sp needed 2609 .LVL187: 2610 .LVL188: 1340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2611 .loc 1 1340 1 view .LVU806 2612 0154 F0BD pop {r4, r5, r6, r7, pc} 2613 .LVL189: 2614 .L187: 1241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2615 .loc 1 1241 5 discriminator 1 view .LVU807 2616 0156 0220 movs r0, #2 2617 .LVL190: 1241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2618 .loc 1 1241 5 discriminator 1 view .LVU808 ARM GAS /tmp/ccuRhBPx.s page 186 2619 0158 FBE7 b .L179 2620 .LVL191: 2621 .L188: 1248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2622 .loc 1 1248 14 view .LVU809 2623 015a 0120 movs r0, #1 2624 015c F9E7 b .L179 2625 .L189: 1280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2626 .loc 1 1280 16 view .LVU810 2627 015e 0120 movs r0, #1 2628 0160 F7E7 b .L179 2629 .L190: 1297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2630 .loc 1 1297 18 view .LVU811 2631 0162 0120 movs r0, #1 2632 0164 F5E7 b .L179 2633 .L191: 1319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2634 .loc 1 1319 14 view .LVU812 2635 0166 0120 movs r0, #1 2636 0168 F3E7 b .L179 2637 .L194: 2638 016a C046 .align 2 2639 .L193: 2640 016c 00240080 .word -2147474432 2641 0170 00E800FE .word -33495040 2642 .cfi_endproc 2643 .LFE45: 2645 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits 2646 .align 1 2647 .global HAL_I2C_Slave_Transmit 2648 .syntax unified 2649 .code 16 2650 .thumb_func 2652 HAL_I2C_Slave_Transmit: 2653 .LVL192: 2654 .LFB46: 1353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2655 .loc 1 1353 1 is_stmt 1 view -0 2656 .cfi_startproc 2657 @ args = 0, pretend = 0, frame = 0 2658 @ frame_needed = 0, uses_anonymous_args = 0 1353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 2659 .loc 1 1353 1 is_stmt 0 view .LVU814 2660 0000 F0B5 push {r4, r5, r6, r7, lr} 2661 .cfi_def_cfa_offset 20 2662 .cfi_offset 4, -20 2663 .cfi_offset 5, -16 2664 .cfi_offset 6, -12 2665 .cfi_offset 7, -8 2666 .cfi_offset 14, -4 2667 0002 C646 mov lr, r8 2668 0004 00B5 push {lr} 2669 .cfi_def_cfa_offset 24 2670 .cfi_offset 8, -24 2671 0006 82B0 sub sp, sp, #8 ARM GAS /tmp/ccuRhBPx.s page 187 2672 .cfi_def_cfa_offset 32 2673 0008 0400 movs r4, r0 2674 000a 0D00 movs r5, r1 2675 000c 9046 mov r8, r2 2676 000e 1E00 movs r6, r3 1354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2677 .loc 1 1354 3 is_stmt 1 view .LVU815 1356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2678 .loc 1 1356 3 view .LVU816 1356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2679 .loc 1 1356 11 is_stmt 0 view .LVU817 2680 0010 4123 movs r3, #65 2681 .LVL193: 1356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2682 .loc 1 1356 11 view .LVU818 2683 0012 C35C ldrb r3, [r0, r3] 1356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2684 .loc 1 1356 6 view .LVU819 2685 0014 202B cmp r3, #32 2686 0016 00D0 beq .LCB2582 2687 0018 DCE0 b .L209 @long jump 2688 .LCB2582: 1358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2689 .loc 1 1358 5 is_stmt 1 view .LVU820 1358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2690 .loc 1 1358 8 is_stmt 0 view .LVU821 2691 001a 0029 cmp r1, #0 2692 001c 52D0 beq .L197 1358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2693 .loc 1 1358 25 discriminator 1 view .LVU822 2694 001e 002A cmp r2, #0 2695 0020 50D0 beq .L197 1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2696 .loc 1 1364 5 is_stmt 1 view .LVU823 1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2697 .loc 1 1364 5 view .LVU824 2698 0022 4023 movs r3, #64 2699 0024 C35C ldrb r3, [r0, r3] 2700 0026 012B cmp r3, #1 2701 0028 00D1 bne .LCB2593 2702 002a D8E0 b .L210 @long jump 2703 .LCB2593: 1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2704 .loc 1 1364 5 discriminator 2 view .LVU825 2705 002c 4023 movs r3, #64 2706 002e 0122 movs r2, #1 2707 .LVL194: 1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2708 .loc 1 1364 5 is_stmt 0 discriminator 2 view .LVU826 2709 0030 C254 strb r2, [r0, r3] 1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2710 .loc 1 1364 5 is_stmt 1 discriminator 2 view .LVU827 1367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2711 .loc 1 1367 5 view .LVU828 1367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2712 .loc 1 1367 17 is_stmt 0 view .LVU829 2713 0032 FFF7FEFF bl HAL_GetTick ARM GAS /tmp/ccuRhBPx.s page 188 2714 .LVL195: 1367:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2715 .loc 1 1367 17 view .LVU830 2716 0036 0700 movs r7, r0 2717 .LVL196: 1369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2718 .loc 1 1369 5 is_stmt 1 view .LVU831 1369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2719 .loc 1 1369 21 is_stmt 0 view .LVU832 2720 0038 4123 movs r3, #65 2721 003a 2122 movs r2, #33 2722 003c E254 strb r2, [r4, r3] 1370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2723 .loc 1 1370 5 is_stmt 1 view .LVU833 1370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2724 .loc 1 1370 21 is_stmt 0 view .LVU834 2725 003e 0133 adds r3, r3, #1 2726 0040 013A subs r2, r2, #1 2727 0042 E254 strb r2, [r4, r3] 1371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2728 .loc 1 1371 5 is_stmt 1 view .LVU835 1371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2729 .loc 1 1371 21 is_stmt 0 view .LVU836 2730 0044 0023 movs r3, #0 2731 0046 6364 str r3, [r4, #68] 1374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2732 .loc 1 1374 5 is_stmt 1 view .LVU837 1374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 2733 .loc 1 1374 21 is_stmt 0 view .LVU838 2734 0048 6562 str r5, [r4, #36] 1375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2735 .loc 1 1375 5 is_stmt 1 view .LVU839 1375:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 2736 .loc 1 1375 21 is_stmt 0 view .LVU840 2737 004a 4246 mov r2, r8 2738 004c 6285 strh r2, [r4, #42] 1376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2739 .loc 1 1376 5 is_stmt 1 view .LVU841 1376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2740 .loc 1 1376 21 is_stmt 0 view .LVU842 2741 004e 6363 str r3, [r4, #52] 1379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2742 .loc 1 1379 5 is_stmt 1 view .LVU843 1379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2743 .loc 1 1379 9 is_stmt 0 view .LVU844 2744 0050 2268 ldr r2, [r4] 1379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2745 .loc 1 1379 19 view .LVU845 2746 0052 5368 ldr r3, [r2, #4] 1379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2747 .loc 1 1379 25 view .LVU846 2748 0054 6349 ldr r1, .L218 2749 0056 0B40 ands r3, r1 2750 0058 5360 str r3, [r2, #4] 1382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2751 .loc 1 1382 5 is_stmt 1 view .LVU847 1382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 189 2752 .loc 1 1382 9 is_stmt 0 view .LVU848 2753 005a 0090 str r0, [sp] 2754 005c 3300 movs r3, r6 2755 005e 0022 movs r2, #0 2756 0060 0821 movs r1, #8 2757 0062 2000 movs r0, r4 2758 .LVL197: 1382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2759 .loc 1 1382 9 view .LVU849 2760 0064 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2761 .LVL198: 1382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2762 .loc 1 1382 8 discriminator 1 view .LVU850 2763 0068 0028 cmp r0, #0 2764 006a 30D1 bne .L211 1390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2765 .loc 1 1390 5 is_stmt 1 view .LVU851 1390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2766 .loc 1 1390 19 is_stmt 0 view .LVU852 2767 006c 226A ldr r2, [r4, #32] 1390:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2768 .loc 1 1390 8 view .LVU853 2769 006e 8023 movs r3, #128 2770 0070 9B02 lsls r3, r3, #10 2771 0072 9A42 cmp r2, r3 2772 0074 33D0 beq .L212 2773 .L200: 1403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2774 .loc 1 1403 5 is_stmt 1 view .LVU854 2775 0076 2368 ldr r3, [r4] 2776 0078 0822 movs r2, #8 2777 007a DA61 str r2, [r3, #28] 1406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2778 .loc 1 1406 5 view .LVU855 1406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2779 .loc 1 1406 19 is_stmt 0 view .LVU856 2780 007c E368 ldr r3, [r4, #12] 1406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2781 .loc 1 1406 8 view .LVU857 2782 007e 022B cmp r3, #2 2783 0080 39D0 beq .L213 2784 .L201: 1421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2785 .loc 1 1421 5 is_stmt 1 view .LVU858 1421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2786 .loc 1 1421 9 is_stmt 0 view .LVU859 2787 0082 8021 movs r1, #128 2788 0084 0097 str r7, [sp] 2789 0086 3300 movs r3, r6 2790 0088 0022 movs r2, #0 2791 008a 4902 lsls r1, r1, #9 2792 008c 2000 movs r0, r4 2793 008e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2794 .LVL199: 1421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2795 .loc 1 1421 8 discriminator 1 view .LVU860 2796 0092 0028 cmp r0, #0 ARM GAS /tmp/ccuRhBPx.s page 190 2797 0094 44D1 bne .L214 2798 .LVL200: 2799 .L203: 1428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2800 .loc 1 1428 28 is_stmt 1 view .LVU861 1428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2801 .loc 1 1428 16 is_stmt 0 view .LVU862 2802 0096 638D ldrh r3, [r4, #42] 2803 0098 9BB2 uxth r3, r3 1428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2804 .loc 1 1428 28 view .LVU863 2805 009a 002B cmp r3, #0 2806 009c 50D0 beq .L215 1431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2807 .loc 1 1431 7 is_stmt 1 view .LVU864 1431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2808 .loc 1 1431 11 is_stmt 0 view .LVU865 2809 009e 3A00 movs r2, r7 2810 00a0 3100 movs r1, r6 2811 00a2 2000 movs r0, r4 2812 00a4 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2813 .LVL201: 1431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2814 .loc 1 1431 10 discriminator 1 view .LVU866 2815 00a8 0028 cmp r0, #0 2816 00aa 41D1 bne .L216 1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2817 .loc 1 1439 7 is_stmt 1 view .LVU867 1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2818 .loc 1 1439 35 is_stmt 0 view .LVU868 2819 00ac 626A ldr r2, [r4, #36] 1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2820 .loc 1 1439 11 view .LVU869 2821 00ae 2368 ldr r3, [r4] 1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2822 .loc 1 1439 30 view .LVU870 2823 00b0 1278 ldrb r2, [r2] 1439:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2824 .loc 1 1439 28 view .LVU871 2825 00b2 9A62 str r2, [r3, #40] 1442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2826 .loc 1 1442 7 is_stmt 1 view .LVU872 1442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2827 .loc 1 1442 11 is_stmt 0 view .LVU873 2828 00b4 636A ldr r3, [r4, #36] 1442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2829 .loc 1 1442 21 view .LVU874 2830 00b6 0133 adds r3, r3, #1 2831 00b8 6362 str r3, [r4, #36] 1444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2832 .loc 1 1444 7 is_stmt 1 view .LVU875 1444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2833 .loc 1 1444 11 is_stmt 0 view .LVU876 2834 00ba 658D ldrh r5, [r4, #42] 1444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2835 .loc 1 1444 22 view .LVU877 2836 00bc 013D subs r5, r5, #1 ARM GAS /tmp/ccuRhBPx.s page 191 2837 00be ADB2 uxth r5, r5 2838 00c0 6585 strh r5, [r4, #42] 2839 00c2 E8E7 b .L203 2840 .LVL202: 2841 .L197: 1360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2842 .loc 1 1360 7 is_stmt 1 view .LVU878 1360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2843 .loc 1 1360 23 is_stmt 0 view .LVU879 2844 00c4 8023 movs r3, #128 2845 00c6 9B00 lsls r3, r3, #2 2846 00c8 6364 str r3, [r4, #68] 1361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2847 .loc 1 1361 7 is_stmt 1 view .LVU880 1361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2848 .loc 1 1361 15 is_stmt 0 view .LVU881 2849 00ca 0120 movs r0, #1 2850 .LVL203: 1361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2851 .loc 1 1361 15 view .LVU882 2852 00cc 83E0 b .L196 2853 .LVL204: 2854 .L211: 1385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2855 .loc 1 1385 7 is_stmt 1 view .LVU883 1385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2856 .loc 1 1385 11 is_stmt 0 view .LVU884 2857 00ce 2268 ldr r2, [r4] 1385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2858 .loc 1 1385 21 view .LVU885 2859 00d0 5168 ldr r1, [r2, #4] 1385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2860 .loc 1 1385 27 view .LVU886 2861 00d2 8023 movs r3, #128 2862 00d4 1B02 lsls r3, r3, #8 2863 00d6 0B43 orrs r3, r1 2864 00d8 5360 str r3, [r2, #4] 1386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2865 .loc 1 1386 7 is_stmt 1 view .LVU887 1386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2866 .loc 1 1386 14 is_stmt 0 view .LVU888 2867 00da 0120 movs r0, #1 2868 00dc 7BE0 b .L196 2869 .L212: 1394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2870 .loc 1 1394 7 is_stmt 1 view .LVU889 1394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2871 .loc 1 1394 35 is_stmt 0 view .LVU890 2872 00de 626A ldr r2, [r4, #36] 1394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2873 .loc 1 1394 11 view .LVU891 2874 00e0 2368 ldr r3, [r4] 1394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2875 .loc 1 1394 30 view .LVU892 2876 00e2 1278 ldrb r2, [r2] 1394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2877 .loc 1 1394 28 view .LVU893 ARM GAS /tmp/ccuRhBPx.s page 192 2878 00e4 9A62 str r2, [r3, #40] 1397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2879 .loc 1 1397 7 is_stmt 1 view .LVU894 1397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2880 .loc 1 1397 11 is_stmt 0 view .LVU895 2881 00e6 636A ldr r3, [r4, #36] 1397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2882 .loc 1 1397 21 view .LVU896 2883 00e8 0133 adds r3, r3, #1 2884 00ea 6362 str r3, [r4, #36] 1399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2885 .loc 1 1399 7 is_stmt 1 view .LVU897 1399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2886 .loc 1 1399 11 is_stmt 0 view .LVU898 2887 00ec 638D ldrh r3, [r4, #42] 1399:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2888 .loc 1 1399 22 view .LVU899 2889 00ee 013B subs r3, r3, #1 2890 00f0 9BB2 uxth r3, r3 2891 00f2 6385 strh r3, [r4, #42] 2892 00f4 BFE7 b .L200 2893 .L213: 1409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2894 .loc 1 1409 7 is_stmt 1 view .LVU900 1409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2895 .loc 1 1409 11 is_stmt 0 view .LVU901 2896 00f6 0097 str r7, [sp] 2897 00f8 3300 movs r3, r6 2898 00fa 0022 movs r2, #0 2899 00fc 0821 movs r1, #8 2900 00fe 2000 movs r0, r4 2901 0100 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2902 .LVL205: 1409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2903 .loc 1 1409 10 discriminator 1 view .LVU902 2904 0104 0028 cmp r0, #0 2905 0106 03D1 bne .L217 1417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2906 .loc 1 1417 7 is_stmt 1 view .LVU903 2907 0108 2368 ldr r3, [r4] 2908 010a 0822 movs r2, #8 2909 010c DA61 str r2, [r3, #28] 2910 010e B8E7 b .L201 2911 .L217: 1412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2912 .loc 1 1412 9 view .LVU904 1412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2913 .loc 1 1412 13 is_stmt 0 view .LVU905 2914 0110 2268 ldr r2, [r4] 1412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2915 .loc 1 1412 23 view .LVU906 2916 0112 5168 ldr r1, [r2, #4] 1412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2917 .loc 1 1412 29 view .LVU907 2918 0114 8023 movs r3, #128 2919 0116 1B02 lsls r3, r3, #8 2920 0118 0B43 orrs r3, r1 ARM GAS /tmp/ccuRhBPx.s page 193 2921 011a 5360 str r3, [r2, #4] 1413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2922 .loc 1 1413 9 is_stmt 1 view .LVU908 1413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2923 .loc 1 1413 16 is_stmt 0 view .LVU909 2924 011c 0120 movs r0, #1 2925 011e 5AE0 b .L196 2926 .L214: 1424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2927 .loc 1 1424 7 is_stmt 1 view .LVU910 1424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2928 .loc 1 1424 11 is_stmt 0 view .LVU911 2929 0120 2268 ldr r2, [r4] 1424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2930 .loc 1 1424 21 view .LVU912 2931 0122 5168 ldr r1, [r2, #4] 1424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2932 .loc 1 1424 27 view .LVU913 2933 0124 8023 movs r3, #128 2934 0126 1B02 lsls r3, r3, #8 2935 0128 0B43 orrs r3, r1 2936 012a 5360 str r3, [r2, #4] 1425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2937 .loc 1 1425 7 is_stmt 1 view .LVU914 1425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2938 .loc 1 1425 14 is_stmt 0 view .LVU915 2939 012c 0120 movs r0, #1 2940 012e 52E0 b .L196 2941 .LVL206: 2942 .L216: 1434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2943 .loc 1 1434 9 is_stmt 1 view .LVU916 1434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2944 .loc 1 1434 13 is_stmt 0 view .LVU917 2945 0130 2268 ldr r2, [r4] 1434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2946 .loc 1 1434 23 view .LVU918 2947 0132 5168 ldr r1, [r2, #4] 1434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2948 .loc 1 1434 29 view .LVU919 2949 0134 8023 movs r3, #128 2950 0136 1B02 lsls r3, r3, #8 2951 0138 0B43 orrs r3, r1 2952 013a 5360 str r3, [r2, #4] 1435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2953 .loc 1 1435 9 is_stmt 1 view .LVU920 1435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2954 .loc 1 1435 16 is_stmt 0 view .LVU921 2955 013c 0120 movs r0, #1 2956 013e 4AE0 b .L196 2957 .L215: 1448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2958 .loc 1 1448 5 is_stmt 1 view .LVU922 1448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2959 .loc 1 1448 9 is_stmt 0 view .LVU923 2960 0140 0097 str r7, [sp] 2961 0142 3300 movs r3, r6 ARM GAS /tmp/ccuRhBPx.s page 194 2962 0144 0022 movs r2, #0 2963 0146 1021 movs r1, #16 2964 0148 2000 movs r0, r4 2965 014a FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2966 .LVL207: 1448:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2967 .loc 1 1448 8 discriminator 1 view .LVU924 2968 014e 0028 cmp r0, #0 2969 0150 07D0 beq .L206 1451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2970 .loc 1 1451 7 is_stmt 1 view .LVU925 1451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2971 .loc 1 1451 11 is_stmt 0 view .LVU926 2972 0152 2268 ldr r2, [r4] 1451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2973 .loc 1 1451 21 view .LVU927 2974 0154 5168 ldr r1, [r2, #4] 1451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 2975 .loc 1 1451 27 view .LVU928 2976 0156 8023 movs r3, #128 2977 0158 1B02 lsls r3, r3, #8 2978 015a 0B43 orrs r3, r1 2979 015c 5360 str r3, [r2, #4] 1452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2980 .loc 1 1452 7 is_stmt 1 view .LVU929 1452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 2981 .loc 1 1452 14 is_stmt 0 view .LVU930 2982 015e 0120 movs r0, #1 2983 0160 39E0 b .L196 2984 .L206: 1456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2985 .loc 1 1456 5 is_stmt 1 view .LVU931 2986 0162 2000 movs r0, r4 2987 0164 FFF7FEFF bl I2C_Flush_TXDR 2988 .LVL208: 1459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 2989 .loc 1 1459 5 view .LVU932 2990 0168 2368 ldr r3, [r4] 2991 016a 1022 movs r2, #16 2992 016c DA61 str r2, [r3, #28] 1462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2993 .loc 1 1462 5 view .LVU933 1462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 2994 .loc 1 1462 9 is_stmt 0 view .LVU934 2995 016e 3A00 movs r2, r7 2996 0170 3100 movs r1, r6 2997 0172 2000 movs r0, r4 2998 0174 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2999 .LVL209: 1462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3000 .loc 1 1462 8 discriminator 1 view .LVU935 3001 0178 0028 cmp r0, #0 3002 017a 07D0 beq .L207 1465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3003 .loc 1 1465 7 is_stmt 1 view .LVU936 1465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3004 .loc 1 1465 11 is_stmt 0 view .LVU937 ARM GAS /tmp/ccuRhBPx.s page 195 3005 017c 2268 ldr r2, [r4] 1465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3006 .loc 1 1465 21 view .LVU938 3007 017e 5168 ldr r1, [r2, #4] 1465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3008 .loc 1 1465 27 view .LVU939 3009 0180 8023 movs r3, #128 3010 0182 1B02 lsls r3, r3, #8 3011 0184 0B43 orrs r3, r1 3012 0186 5360 str r3, [r2, #4] 1467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3013 .loc 1 1467 7 is_stmt 1 view .LVU940 1467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3014 .loc 1 1467 14 is_stmt 0 view .LVU941 3015 0188 0120 movs r0, #1 3016 018a 24E0 b .L196 3017 .L207: 1471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3018 .loc 1 1471 5 is_stmt 1 view .LVU942 3019 018c 2368 ldr r3, [r4] 3020 018e 2022 movs r2, #32 3021 0190 DA61 str r2, [r3, #28] 1474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3022 .loc 1 1474 5 view .LVU943 1474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3023 .loc 1 1474 9 is_stmt 0 view .LVU944 3024 0192 8021 movs r1, #128 3025 0194 0097 str r7, [sp] 3026 0196 3300 movs r3, r6 3027 0198 1F3A subs r2, r2, #31 3028 019a 0902 lsls r1, r1, #8 3029 019c 2000 movs r0, r4 3030 019e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3031 .LVL210: 1474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3032 .loc 1 1474 8 discriminator 1 view .LVU945 3033 01a2 0028 cmp r0, #0 3034 01a4 07D0 beq .L208 1477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3035 .loc 1 1477 7 is_stmt 1 view .LVU946 1477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3036 .loc 1 1477 11 is_stmt 0 view .LVU947 3037 01a6 2268 ldr r2, [r4] 1477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3038 .loc 1 1477 21 view .LVU948 3039 01a8 5168 ldr r1, [r2, #4] 1477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3040 .loc 1 1477 27 view .LVU949 3041 01aa 8023 movs r3, #128 3042 01ac 1B02 lsls r3, r3, #8 3043 01ae 0B43 orrs r3, r1 3044 01b0 5360 str r3, [r2, #4] 1478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3045 .loc 1 1478 7 is_stmt 1 view .LVU950 1478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3046 .loc 1 1478 14 is_stmt 0 view .LVU951 3047 01b2 0120 movs r0, #1 ARM GAS /tmp/ccuRhBPx.s page 196 3048 01b4 0FE0 b .L196 3049 .L208: 1482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3050 .loc 1 1482 5 is_stmt 1 view .LVU952 1482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3051 .loc 1 1482 9 is_stmt 0 view .LVU953 3052 01b6 2268 ldr r2, [r4] 1482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3053 .loc 1 1482 19 view .LVU954 3054 01b8 5168 ldr r1, [r2, #4] 1482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3055 .loc 1 1482 25 view .LVU955 3056 01ba 8023 movs r3, #128 3057 01bc 1B02 lsls r3, r3, #8 3058 01be 0B43 orrs r3, r1 3059 01c0 5360 str r3, [r2, #4] 1484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3060 .loc 1 1484 5 is_stmt 1 view .LVU956 1484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3061 .loc 1 1484 17 is_stmt 0 view .LVU957 3062 01c2 4123 movs r3, #65 3063 01c4 2022 movs r2, #32 3064 01c6 E254 strb r2, [r4, r3] 1485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3065 .loc 1 1485 5 is_stmt 1 view .LVU958 1485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3066 .loc 1 1485 17 is_stmt 0 view .LVU959 3067 01c8 0023 movs r3, #0 3068 01ca 2232 adds r2, r2, #34 3069 01cc A354 strb r3, [r4, r2] 1488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3070 .loc 1 1488 5 is_stmt 1 view .LVU960 1488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3071 .loc 1 1488 5 view .LVU961 3072 01ce 023A subs r2, r2, #2 3073 01d0 A354 strb r3, [r4, r2] 1488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3074 .loc 1 1488 5 view .LVU962 1490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3075 .loc 1 1490 5 view .LVU963 1490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3076 .loc 1 1490 12 is_stmt 0 view .LVU964 3077 01d2 00E0 b .L196 3078 .LVL211: 3079 .L209: 1494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3080 .loc 1 1494 12 view .LVU965 3081 01d4 0220 movs r0, #2 3082 .LVL212: 3083 .L196: 1496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3084 .loc 1 1496 1 view .LVU966 3085 01d6 02B0 add sp, sp, #8 3086 @ sp needed 3087 .LVL213: 3088 .LVL214: 3089 .LVL215: ARM GAS /tmp/ccuRhBPx.s page 197 1496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3090 .loc 1 1496 1 view .LVU967 3091 01d8 80BC pop {r7} 3092 01da B846 mov r8, r7 3093 01dc F0BD pop {r4, r5, r6, r7, pc} 3094 .LVL216: 3095 .L210: 1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3096 .loc 1 1364 5 discriminator 1 view .LVU968 3097 01de 0220 movs r0, #2 3098 .LVL217: 1364:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3099 .loc 1 1364 5 discriminator 1 view .LVU969 3100 01e0 F9E7 b .L196 3101 .L219: 3102 01e2 C046 .align 2 3103 .L218: 3104 01e4 FF7FFFFF .word -32769 3105 .cfi_endproc 3106 .LFE46: 3108 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits 3109 .align 1 3110 .global HAL_I2C_Slave_Receive 3111 .syntax unified 3112 .code 16 3113 .thumb_func 3115 HAL_I2C_Slave_Receive: 3116 .LVL218: 3117 .LFB47: 1509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 3118 .loc 1 1509 1 is_stmt 1 view -0 3119 .cfi_startproc 3120 @ args = 0, pretend = 0, frame = 0 3121 @ frame_needed = 0, uses_anonymous_args = 0 1509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 3122 .loc 1 1509 1 is_stmt 0 view .LVU971 3123 0000 F0B5 push {r4, r5, r6, r7, lr} 3124 .cfi_def_cfa_offset 20 3125 .cfi_offset 4, -20 3126 .cfi_offset 5, -16 3127 .cfi_offset 6, -12 3128 .cfi_offset 7, -8 3129 .cfi_offset 14, -4 3130 0002 C646 mov lr, r8 3131 0004 00B5 push {lr} 3132 .cfi_def_cfa_offset 24 3133 .cfi_offset 8, -24 3134 0006 82B0 sub sp, sp, #8 3135 .cfi_def_cfa_offset 32 3136 0008 0400 movs r4, r0 3137 000a 0D00 movs r5, r1 3138 000c 9046 mov r8, r2 3139 000e 1E00 movs r6, r3 1510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3140 .loc 1 1510 3 is_stmt 1 view .LVU972 1512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3141 .loc 1 1512 3 view .LVU973 ARM GAS /tmp/ccuRhBPx.s page 198 1512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3142 .loc 1 1512 11 is_stmt 0 view .LVU974 3143 0010 4123 movs r3, #65 3144 .LVL219: 1512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3145 .loc 1 1512 11 view .LVU975 3146 0012 C35C ldrb r3, [r0, r3] 1512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3147 .loc 1 1512 6 view .LVU976 3148 0014 202B cmp r3, #32 3149 0016 00D0 beq .LCB3002 3150 0018 B1E0 b .L231 @long jump 3151 .LCB3002: 1514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3152 .loc 1 1514 5 is_stmt 1 view .LVU977 1514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3153 .loc 1 1514 8 is_stmt 0 view .LVU978 3154 001a 0029 cmp r1, #0 3155 001c 30D0 beq .L222 1514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3156 .loc 1 1514 25 discriminator 1 view .LVU979 3157 001e 002A cmp r2, #0 3158 0020 2ED0 beq .L222 1520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3159 .loc 1 1520 5 is_stmt 1 view .LVU980 1520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3160 .loc 1 1520 5 view .LVU981 3161 0022 4023 movs r3, #64 3162 0024 C35C ldrb r3, [r0, r3] 3163 0026 012B cmp r3, #1 3164 0028 00D1 bne .LCB3013 3165 002a ADE0 b .L232 @long jump 3166 .LCB3013: 1520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3167 .loc 1 1520 5 discriminator 2 view .LVU982 3168 002c 4023 movs r3, #64 3169 002e 0122 movs r2, #1 3170 .LVL220: 1520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3171 .loc 1 1520 5 is_stmt 0 discriminator 2 view .LVU983 3172 0030 C254 strb r2, [r0, r3] 1520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3173 .loc 1 1520 5 is_stmt 1 discriminator 2 view .LVU984 1523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3174 .loc 1 1523 5 view .LVU985 1523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3175 .loc 1 1523 17 is_stmt 0 view .LVU986 3176 0032 FFF7FEFF bl HAL_GetTick 3177 .LVL221: 1523:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3178 .loc 1 1523 17 view .LVU987 3179 0036 0700 movs r7, r0 3180 .LVL222: 1525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3181 .loc 1 1525 5 is_stmt 1 view .LVU988 1525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3182 .loc 1 1525 21 is_stmt 0 view .LVU989 ARM GAS /tmp/ccuRhBPx.s page 199 3183 0038 4123 movs r3, #65 3184 003a 2222 movs r2, #34 3185 003c E254 strb r2, [r4, r3] 1526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3186 .loc 1 1526 5 is_stmt 1 view .LVU990 1526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3187 .loc 1 1526 21 is_stmt 0 view .LVU991 3188 003e 0133 adds r3, r3, #1 3189 0040 023A subs r2, r2, #2 3190 0042 E254 strb r2, [r4, r3] 1527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3191 .loc 1 1527 5 is_stmt 1 view .LVU992 1527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3192 .loc 1 1527 21 is_stmt 0 view .LVU993 3193 0044 0023 movs r3, #0 3194 0046 6364 str r3, [r4, #68] 1530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3195 .loc 1 1530 5 is_stmt 1 view .LVU994 1530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3196 .loc 1 1530 21 is_stmt 0 view .LVU995 3197 0048 6562 str r5, [r4, #36] 1531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3198 .loc 1 1531 5 is_stmt 1 view .LVU996 1531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3199 .loc 1 1531 21 is_stmt 0 view .LVU997 3200 004a 4246 mov r2, r8 3201 004c 6285 strh r2, [r4, #42] 1532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 3202 .loc 1 1532 5 is_stmt 1 view .LVU998 1532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 3203 .loc 1 1532 26 is_stmt 0 view .LVU999 3204 004e 628D ldrh r2, [r4, #42] 1532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 3205 .loc 1 1532 20 view .LVU1000 3206 0050 2285 strh r2, [r4, #40] 1533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3207 .loc 1 1533 5 is_stmt 1 view .LVU1001 1533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3208 .loc 1 1533 21 is_stmt 0 view .LVU1002 3209 0052 6363 str r3, [r4, #52] 1536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3210 .loc 1 1536 5 is_stmt 1 view .LVU1003 1536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3211 .loc 1 1536 9 is_stmt 0 view .LVU1004 3212 0054 2268 ldr r2, [r4] 1536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3213 .loc 1 1536 19 view .LVU1005 3214 0056 5368 ldr r3, [r2, #4] 1536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3215 .loc 1 1536 25 view .LVU1006 3216 0058 4C49 ldr r1, .L235 3217 005a 0B40 ands r3, r1 3218 005c 5360 str r3, [r2, #4] 1539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3219 .loc 1 1539 5 is_stmt 1 view .LVU1007 1539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3220 .loc 1 1539 9 is_stmt 0 view .LVU1008 ARM GAS /tmp/ccuRhBPx.s page 200 3221 005e 0090 str r0, [sp] 3222 0060 3300 movs r3, r6 3223 0062 0022 movs r2, #0 3224 0064 0821 movs r1, #8 3225 0066 2000 movs r0, r4 3226 .LVL223: 1539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3227 .loc 1 1539 9 view .LVU1009 3228 0068 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3229 .LVL224: 1539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3230 .loc 1 1539 8 discriminator 1 view .LVU1010 3231 006c 0028 cmp r0, #0 3232 006e 0CD0 beq .L224 1542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3233 .loc 1 1542 7 is_stmt 1 view .LVU1011 1542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3234 .loc 1 1542 11 is_stmt 0 view .LVU1012 3235 0070 2268 ldr r2, [r4] 1542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3236 .loc 1 1542 21 view .LVU1013 3237 0072 5168 ldr r1, [r2, #4] 1542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3238 .loc 1 1542 27 view .LVU1014 3239 0074 8023 movs r3, #128 3240 0076 1B02 lsls r3, r3, #8 3241 0078 0B43 orrs r3, r1 3242 007a 5360 str r3, [r2, #4] 1543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3243 .loc 1 1543 7 is_stmt 1 view .LVU1015 1543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3244 .loc 1 1543 14 is_stmt 0 view .LVU1016 3245 007c 0120 movs r0, #1 3246 007e 7FE0 b .L221 3247 .LVL225: 3248 .L222: 1516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3249 .loc 1 1516 7 is_stmt 1 view .LVU1017 1516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3250 .loc 1 1516 23 is_stmt 0 view .LVU1018 3251 0080 8023 movs r3, #128 3252 0082 9B00 lsls r3, r3, #2 3253 0084 6364 str r3, [r4, #68] 1517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3254 .loc 1 1517 7 is_stmt 1 view .LVU1019 1517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3255 .loc 1 1517 15 is_stmt 0 view .LVU1020 3256 0086 0120 movs r0, #1 3257 .LVL226: 1517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3258 .loc 1 1517 15 view .LVU1021 3259 0088 7AE0 b .L221 3260 .LVL227: 3261 .L224: 1547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3262 .loc 1 1547 5 is_stmt 1 view .LVU1022 3263 008a 2368 ldr r3, [r4] ARM GAS /tmp/ccuRhBPx.s page 201 3264 008c 0822 movs r2, #8 3265 008e DA61 str r2, [r3, #28] 1550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3266 .loc 1 1550 5 view .LVU1023 1550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3267 .loc 1 1550 9 is_stmt 0 view .LVU1024 3268 0090 8021 movs r1, #128 3269 0092 0097 str r7, [sp] 3270 0094 3300 movs r3, r6 3271 0096 073A subs r2, r2, #7 3272 0098 4902 lsls r1, r1, #9 3273 009a 2000 movs r0, r4 3274 009c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3275 .LVL228: 1550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3276 .loc 1 1550 8 discriminator 1 view .LVU1025 3277 00a0 0028 cmp r0, #0 3278 00a2 15D0 beq .L225 1553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3279 .loc 1 1553 7 is_stmt 1 view .LVU1026 1553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3280 .loc 1 1553 11 is_stmt 0 view .LVU1027 3281 00a4 2268 ldr r2, [r4] 1553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3282 .loc 1 1553 21 view .LVU1028 3283 00a6 5168 ldr r1, [r2, #4] 1553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3284 .loc 1 1553 27 view .LVU1029 3285 00a8 8023 movs r3, #128 3286 00aa 1B02 lsls r3, r3, #8 3287 00ac 0B43 orrs r3, r1 3288 00ae 5360 str r3, [r2, #4] 1554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3289 .loc 1 1554 7 is_stmt 1 view .LVU1030 1554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3290 .loc 1 1554 14 is_stmt 0 view .LVU1031 3291 00b0 0120 movs r0, #1 3292 00b2 65E0 b .L221 3293 .LVL229: 3294 .L226: 1582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3295 .loc 1 1582 7 is_stmt 1 view .LVU1032 1582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3296 .loc 1 1582 38 is_stmt 0 view .LVU1033 3297 00b4 2368 ldr r3, [r4] 1582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3298 .loc 1 1582 48 view .LVU1034 3299 00b6 5A6A ldr r2, [r3, #36] 1582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3300 .loc 1 1582 12 view .LVU1035 3301 00b8 636A ldr r3, [r4, #36] 1582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3302 .loc 1 1582 23 view .LVU1036 3303 00ba 1A70 strb r2, [r3] 1585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3304 .loc 1 1585 7 is_stmt 1 view .LVU1037 1585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 202 3305 .loc 1 1585 11 is_stmt 0 view .LVU1038 3306 00bc 636A ldr r3, [r4, #36] 1585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3307 .loc 1 1585 21 view .LVU1039 3308 00be 0133 adds r3, r3, #1 3309 00c0 6362 str r3, [r4, #36] 1587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 3310 .loc 1 1587 7 is_stmt 1 view .LVU1040 1587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 3311 .loc 1 1587 11 is_stmt 0 view .LVU1041 3312 00c2 658D ldrh r5, [r4, #42] 1587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 3313 .loc 1 1587 22 view .LVU1042 3314 00c4 013D subs r5, r5, #1 3315 00c6 ADB2 uxth r5, r5 3316 00c8 6585 strh r5, [r4, #42] 1588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3317 .loc 1 1588 7 is_stmt 1 view .LVU1043 1588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3318 .loc 1 1588 11 is_stmt 0 view .LVU1044 3319 00ca 238D ldrh r3, [r4, #40] 1588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3320 .loc 1 1588 21 view .LVU1045 3321 00cc 013B subs r3, r3, #1 3322 00ce 2385 strh r3, [r4, #40] 3323 .L225: 1557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3324 .loc 1 1557 28 is_stmt 1 view .LVU1046 1557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3325 .loc 1 1557 16 is_stmt 0 view .LVU1047 3326 00d0 638D ldrh r3, [r4, #42] 3327 00d2 9BB2 uxth r3, r3 1557:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3328 .loc 1 1557 28 view .LVU1048 3329 00d4 002B cmp r3, #0 3330 00d6 1FD0 beq .L234 1560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3331 .loc 1 1560 7 is_stmt 1 view .LVU1049 1560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3332 .loc 1 1560 11 is_stmt 0 view .LVU1050 3333 00d8 3A00 movs r2, r7 3334 00da 3100 movs r1, r6 3335 00dc 2000 movs r0, r4 3336 00de FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 3337 .LVL230: 1560:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3338 .loc 1 1560 10 discriminator 1 view .LVU1051 3339 00e2 0028 cmp r0, #0 3340 00e4 E6D0 beq .L226 1563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3341 .loc 1 1563 9 is_stmt 1 view .LVU1052 1563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3342 .loc 1 1563 13 is_stmt 0 view .LVU1053 3343 00e6 2268 ldr r2, [r4] 1563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3344 .loc 1 1563 23 view .LVU1054 3345 00e8 5168 ldr r1, [r2, #4] ARM GAS /tmp/ccuRhBPx.s page 203 1563:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3346 .loc 1 1563 29 view .LVU1055 3347 00ea 8023 movs r3, #128 3348 00ec 1B02 lsls r3, r3, #8 3349 00ee 0B43 orrs r3, r1 3350 00f0 5360 str r3, [r2, #4] 1566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3351 .loc 1 1566 9 is_stmt 1 view .LVU1056 1566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3352 .loc 1 1566 13 is_stmt 0 view .LVU1057 3353 00f2 2268 ldr r2, [r4] 3354 00f4 9369 ldr r3, [r2, #24] 1566:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3355 .loc 1 1566 12 view .LVU1058 3356 00f6 5B07 lsls r3, r3, #29 3357 00f8 0CD5 bpl .L227 1569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3358 .loc 1 1569 11 is_stmt 1 view .LVU1059 1569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3359 .loc 1 1569 52 is_stmt 0 view .LVU1060 3360 00fa 526A ldr r2, [r2, #36] 1569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3361 .loc 1 1569 16 view .LVU1061 3362 00fc 636A ldr r3, [r4, #36] 1569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3363 .loc 1 1569 27 view .LVU1062 3364 00fe 1A70 strb r2, [r3] 1572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3365 .loc 1 1572 11 is_stmt 1 view .LVU1063 1572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3366 .loc 1 1572 15 is_stmt 0 view .LVU1064 3367 0100 636A ldr r3, [r4, #36] 1572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3368 .loc 1 1572 25 view .LVU1065 3369 0102 0133 adds r3, r3, #1 3370 0104 6362 str r3, [r4, #36] 1574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 3371 .loc 1 1574 11 is_stmt 1 view .LVU1066 1574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 3372 .loc 1 1574 15 is_stmt 0 view .LVU1067 3373 0106 638D ldrh r3, [r4, #42] 1574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 3374 .loc 1 1574 26 view .LVU1068 3375 0108 013B subs r3, r3, #1 3376 010a 9BB2 uxth r3, r3 3377 010c 6385 strh r3, [r4, #42] 1575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3378 .loc 1 1575 11 is_stmt 1 view .LVU1069 1575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3379 .loc 1 1575 15 is_stmt 0 view .LVU1070 3380 010e 238D ldrh r3, [r4, #40] 1575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3381 .loc 1 1575 25 view .LVU1071 3382 0110 013B subs r3, r3, #1 3383 0112 2385 strh r3, [r4, #40] 3384 .L227: 1578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 204 3385 .loc 1 1578 9 is_stmt 1 view .LVU1072 1578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3386 .loc 1 1578 16 is_stmt 0 view .LVU1073 3387 0114 0120 movs r0, #1 3388 0116 33E0 b .L221 3389 .L234: 1592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3390 .loc 1 1592 5 is_stmt 1 view .LVU1074 1592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3391 .loc 1 1592 9 is_stmt 0 view .LVU1075 3392 0118 3A00 movs r2, r7 3393 011a 3100 movs r1, r6 3394 011c 2000 movs r0, r4 3395 011e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 3396 .LVL231: 1592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3397 .loc 1 1592 8 discriminator 1 view .LVU1076 3398 0122 0028 cmp r0, #0 3399 0124 07D0 beq .L229 1595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3400 .loc 1 1595 7 is_stmt 1 view .LVU1077 1595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3401 .loc 1 1595 11 is_stmt 0 view .LVU1078 3402 0126 2268 ldr r2, [r4] 1595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3403 .loc 1 1595 21 view .LVU1079 3404 0128 5168 ldr r1, [r2, #4] 1595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3405 .loc 1 1595 27 view .LVU1080 3406 012a 8023 movs r3, #128 3407 012c 1B02 lsls r3, r3, #8 3408 012e 0B43 orrs r3, r1 3409 0130 5360 str r3, [r2, #4] 1596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3410 .loc 1 1596 7 is_stmt 1 view .LVU1081 1596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3411 .loc 1 1596 14 is_stmt 0 view .LVU1082 3412 0132 0120 movs r0, #1 3413 0134 24E0 b .L221 3414 .L229: 1600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3415 .loc 1 1600 5 is_stmt 1 view .LVU1083 3416 0136 2368 ldr r3, [r4] 3417 0138 2022 movs r2, #32 3418 013a DA61 str r2, [r3, #28] 1603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3419 .loc 1 1603 5 view .LVU1084 1603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3420 .loc 1 1603 9 is_stmt 0 view .LVU1085 3421 013c 8021 movs r1, #128 3422 013e 0097 str r7, [sp] 3423 0140 3300 movs r3, r6 3424 0142 1F3A subs r2, r2, #31 3425 0144 0902 lsls r1, r1, #8 3426 0146 2000 movs r0, r4 3427 0148 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3428 .LVL232: ARM GAS /tmp/ccuRhBPx.s page 205 1603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3429 .loc 1 1603 8 discriminator 1 view .LVU1086 3430 014c 0028 cmp r0, #0 3431 014e 07D0 beq .L230 1606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3432 .loc 1 1606 7 is_stmt 1 view .LVU1087 1606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3433 .loc 1 1606 11 is_stmt 0 view .LVU1088 3434 0150 2268 ldr r2, [r4] 1606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3435 .loc 1 1606 21 view .LVU1089 3436 0152 5168 ldr r1, [r2, #4] 1606:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 3437 .loc 1 1606 27 view .LVU1090 3438 0154 8023 movs r3, #128 3439 0156 1B02 lsls r3, r3, #8 3440 0158 0B43 orrs r3, r1 3441 015a 5360 str r3, [r2, #4] 1607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3442 .loc 1 1607 7 is_stmt 1 view .LVU1091 1607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3443 .loc 1 1607 14 is_stmt 0 view .LVU1092 3444 015c 0120 movs r0, #1 3445 015e 0FE0 b .L221 3446 .L230: 1611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3447 .loc 1 1611 5 is_stmt 1 view .LVU1093 1611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3448 .loc 1 1611 9 is_stmt 0 view .LVU1094 3449 0160 2268 ldr r2, [r4] 1611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3450 .loc 1 1611 19 view .LVU1095 3451 0162 5168 ldr r1, [r2, #4] 1611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3452 .loc 1 1611 25 view .LVU1096 3453 0164 8023 movs r3, #128 3454 0166 1B02 lsls r3, r3, #8 3455 0168 0B43 orrs r3, r1 3456 016a 5360 str r3, [r2, #4] 1613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3457 .loc 1 1613 5 is_stmt 1 view .LVU1097 1613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3458 .loc 1 1613 17 is_stmt 0 view .LVU1098 3459 016c 4123 movs r3, #65 3460 016e 2022 movs r2, #32 3461 0170 E254 strb r2, [r4, r3] 1614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3462 .loc 1 1614 5 is_stmt 1 view .LVU1099 1614:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3463 .loc 1 1614 17 is_stmt 0 view .LVU1100 3464 0172 0023 movs r3, #0 3465 0174 2232 adds r2, r2, #34 3466 0176 A354 strb r3, [r4, r2] 1617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3467 .loc 1 1617 5 is_stmt 1 view .LVU1101 1617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3468 .loc 1 1617 5 view .LVU1102 ARM GAS /tmp/ccuRhBPx.s page 206 3469 0178 023A subs r2, r2, #2 3470 017a A354 strb r3, [r4, r2] 1617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3471 .loc 1 1617 5 view .LVU1103 1619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3472 .loc 1 1619 5 view .LVU1104 1619:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3473 .loc 1 1619 12 is_stmt 0 view .LVU1105 3474 017c 00E0 b .L221 3475 .LVL233: 3476 .L231: 1623:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3477 .loc 1 1623 12 view .LVU1106 3478 017e 0220 movs r0, #2 3479 .LVL234: 3480 .L221: 1625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3481 .loc 1 1625 1 view .LVU1107 3482 0180 02B0 add sp, sp, #8 3483 @ sp needed 3484 .LVL235: 3485 .LVL236: 3486 .LVL237: 1625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3487 .loc 1 1625 1 view .LVU1108 3488 0182 80BC pop {r7} 3489 0184 B846 mov r8, r7 3490 0186 F0BD pop {r4, r5, r6, r7, pc} 3491 .LVL238: 3492 .L232: 1520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3493 .loc 1 1520 5 discriminator 1 view .LVU1109 3494 0188 0220 movs r0, #2 3495 .LVL239: 1520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3496 .loc 1 1520 5 discriminator 1 view .LVU1110 3497 018a F9E7 b .L221 3498 .L236: 3499 .align 2 3500 .L235: 3501 018c FF7FFFFF .word -32769 3502 .cfi_endproc 3503 .LFE47: 3505 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits 3506 .align 1 3507 .global HAL_I2C_Master_Transmit_IT 3508 .syntax unified 3509 .code 16 3510 .thumb_func 3512 HAL_I2C_Master_Transmit_IT: 3513 .LVL240: 3514 .LFB48: 1639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3515 .loc 1 1639 1 is_stmt 1 view -0 3516 .cfi_startproc 3517 @ args = 0, pretend = 0, frame = 0 3518 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccuRhBPx.s page 207 1639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3519 .loc 1 1639 1 is_stmt 0 view .LVU1112 3520 0000 30B5 push {r4, r5, lr} 3521 .cfi_def_cfa_offset 12 3522 .cfi_offset 4, -12 3523 .cfi_offset 5, -8 3524 .cfi_offset 14, -4 3525 0002 83B0 sub sp, sp, #12 3526 .cfi_def_cfa_offset 24 3527 0004 0400 movs r4, r0 1640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3528 .loc 1 1640 3 is_stmt 1 view .LVU1113 1642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3529 .loc 1 1642 3 view .LVU1114 1642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3530 .loc 1 1642 11 is_stmt 0 view .LVU1115 3531 0006 4120 movs r0, #65 3532 .LVL241: 1642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3533 .loc 1 1642 11 view .LVU1116 3534 0008 205C ldrb r0, [r4, r0] 1642:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3535 .loc 1 1642 6 view .LVU1117 3536 000a 2028 cmp r0, #32 3537 000c 36D1 bne .L241 1644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3538 .loc 1 1644 5 is_stmt 1 view .LVU1118 1644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3539 .loc 1 1644 9 is_stmt 0 view .LVU1119 3540 000e 2068 ldr r0, [r4] 3541 0010 8069 ldr r0, [r0, #24] 1644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3542 .loc 1 1644 8 view .LVU1120 3543 0012 0004 lsls r0, r0, #16 3544 0014 34D4 bmi .L242 1650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3545 .loc 1 1650 5 is_stmt 1 view .LVU1121 1650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3546 .loc 1 1650 5 view .LVU1122 3547 0016 4020 movs r0, #64 3548 0018 205C ldrb r0, [r4, r0] 3549 001a 0128 cmp r0, #1 3550 001c 32D0 beq .L243 1650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3551 .loc 1 1650 5 discriminator 2 view .LVU1123 3552 001e 4020 movs r0, #64 3553 0020 0125 movs r5, #1 3554 0022 2554 strb r5, [r4, r0] 1650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3555 .loc 1 1650 5 discriminator 2 view .LVU1124 1652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3556 .loc 1 1652 5 view .LVU1125 1652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3557 .loc 1 1652 23 is_stmt 0 view .LVU1126 3558 0024 0130 adds r0, r0, #1 3559 0026 2035 adds r5, r5, #32 3560 0028 2554 strb r5, [r4, r0] ARM GAS /tmp/ccuRhBPx.s page 208 1653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3561 .loc 1 1653 5 is_stmt 1 view .LVU1127 1653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3562 .loc 1 1653 23 is_stmt 0 view .LVU1128 3563 002a 0130 adds r0, r0, #1 3564 002c 113D subs r5, r5, #17 3565 002e 2554 strb r5, [r4, r0] 1654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3566 .loc 1 1654 5 is_stmt 1 view .LVU1129 1654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3567 .loc 1 1654 23 is_stmt 0 view .LVU1130 3568 0030 0020 movs r0, #0 3569 0032 6064 str r0, [r4, #68] 1657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3570 .loc 1 1657 5 is_stmt 1 view .LVU1131 1657:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3571 .loc 1 1657 23 is_stmt 0 view .LVU1132 3572 0034 6262 str r2, [r4, #36] 1658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3573 .loc 1 1658 5 is_stmt 1 view .LVU1133 1658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3574 .loc 1 1658 23 is_stmt 0 view .LVU1134 3575 0036 6385 strh r3, [r4, #42] 1659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3576 .loc 1 1659 5 is_stmt 1 view .LVU1135 1659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3577 .loc 1 1659 23 is_stmt 0 view .LVU1136 3578 0038 134B ldr r3, .L244 3579 .LVL242: 1659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3580 .loc 1 1659 23 view .LVU1137 3581 003a E362 str r3, [r4, #44] 3582 .LVL243: 1660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3583 .loc 1 1660 5 is_stmt 1 view .LVU1138 1660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3584 .loc 1 1660 23 is_stmt 0 view .LVU1139 3585 003c 134B ldr r3, .L244+4 3586 003e 6363 str r3, [r4, #52] 1662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3587 .loc 1 1662 5 is_stmt 1 view .LVU1140 1662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3588 .loc 1 1662 13 is_stmt 0 view .LVU1141 3589 0040 638D ldrh r3, [r4, #42] 3590 0042 9BB2 uxth r3, r3 1662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3591 .loc 1 1662 8 view .LVU1142 3592 0044 FF2B cmp r3, #255 3593 0046 14D9 bls .L239 1664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3594 .loc 1 1664 7 is_stmt 1 view .LVU1143 1664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3595 .loc 1 1664 22 is_stmt 0 view .LVU1144 3596 0048 FF23 movs r3, #255 3597 004a 2385 strh r3, [r4, #40] 1665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3598 .loc 1 1665 7 is_stmt 1 view .LVU1145 ARM GAS /tmp/ccuRhBPx.s page 209 3599 .LVL244: 1665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3600 .loc 1 1665 16 is_stmt 0 view .LVU1146 3601 004c 8023 movs r3, #128 3602 004e 5B04 lsls r3, r3, #17 3603 .LVL245: 3604 .L240: 1675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3605 .loc 1 1675 5 is_stmt 1 view .LVU1147 1675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3606 .loc 1 1675 55 is_stmt 0 view .LVU1148 3607 0050 228D ldrh r2, [r4, #40] 3608 .LVL246: 1675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3609 .loc 1 1675 5 view .LVU1149 3610 0052 D2B2 uxtb r2, r2 3611 0054 0E48 ldr r0, .L244+8 3612 0056 0090 str r0, [sp] 3613 .LVL247: 1675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3614 .loc 1 1675 5 view .LVU1150 3615 0058 2000 movs r0, r4 3616 005a FFF7FEFF bl I2C_TransferConfig 3617 .LVL248: 1678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3618 .loc 1 1678 5 is_stmt 1 view .LVU1151 1678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3619 .loc 1 1678 5 view .LVU1152 3620 005e 4023 movs r3, #64 3621 0060 0022 movs r2, #0 3622 0062 E254 strb r2, [r4, r3] 1678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3623 .loc 1 1678 5 view .LVU1153 1688:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3624 .loc 1 1688 5 view .LVU1154 3625 0064 0121 movs r1, #1 3626 0066 2000 movs r0, r4 3627 0068 FFF7FEFF bl I2C_Enable_IRQ 3628 .LVL249: 1690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3629 .loc 1 1690 5 view .LVU1155 1690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3630 .loc 1 1690 12 is_stmt 0 view .LVU1156 3631 006c 0020 movs r0, #0 3632 .LVL250: 3633 .L238: 1696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3634 .loc 1 1696 1 view .LVU1157 3635 006e 03B0 add sp, sp, #12 3636 @ sp needed 3637 .LVL251: 1696:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3638 .loc 1 1696 1 view .LVU1158 3639 0070 30BD pop {r4, r5, pc} 3640 .LVL252: 3641 .L239: 1669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; ARM GAS /tmp/ccuRhBPx.s page 210 3642 .loc 1 1669 7 is_stmt 1 view .LVU1159 1669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3643 .loc 1 1669 28 is_stmt 0 view .LVU1160 3644 0072 638D ldrh r3, [r4, #42] 1669:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3645 .loc 1 1669 22 view .LVU1161 3646 0074 2385 strh r3, [r4, #40] 1670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3647 .loc 1 1670 7 is_stmt 1 view .LVU1162 3648 .LVL253: 1670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3649 .loc 1 1670 16 is_stmt 0 view .LVU1163 3650 0076 8023 movs r3, #128 3651 0078 9B04 lsls r3, r3, #18 3652 007a E9E7 b .L240 3653 .LVL254: 3654 .L241: 1694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3655 .loc 1 1694 12 view .LVU1164 3656 007c 0220 movs r0, #2 3657 007e F6E7 b .L238 3658 .L242: 1646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3659 .loc 1 1646 14 view .LVU1165 3660 0080 0220 movs r0, #2 3661 0082 F4E7 b .L238 3662 .L243: 1650:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3663 .loc 1 1650 5 discriminator 1 view .LVU1166 3664 0084 0220 movs r0, #2 3665 0086 F2E7 b .L238 3666 .L245: 3667 .align 2 3668 .L244: 3669 0088 0000FFFF .word -65536 3670 008c 00000000 .word I2C_Master_ISR_IT 3671 0090 00200080 .word -2147475456 3672 .cfi_endproc 3673 .LFE48: 3675 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits 3676 .align 1 3677 .global HAL_I2C_Master_Receive_IT 3678 .syntax unified 3679 .code 16 3680 .thumb_func 3682 HAL_I2C_Master_Receive_IT: 3683 .LVL255: 3684 .LFB49: 1710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3685 .loc 1 1710 1 is_stmt 1 view -0 3686 .cfi_startproc 3687 @ args = 0, pretend = 0, frame = 0 3688 @ frame_needed = 0, uses_anonymous_args = 0 1710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 3689 .loc 1 1710 1 is_stmt 0 view .LVU1168 3690 0000 30B5 push {r4, r5, lr} 3691 .cfi_def_cfa_offset 12 ARM GAS /tmp/ccuRhBPx.s page 211 3692 .cfi_offset 4, -12 3693 .cfi_offset 5, -8 3694 .cfi_offset 14, -4 3695 0002 83B0 sub sp, sp, #12 3696 .cfi_def_cfa_offset 24 3697 0004 0400 movs r4, r0 1711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3698 .loc 1 1711 3 is_stmt 1 view .LVU1169 1713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3699 .loc 1 1713 3 view .LVU1170 1713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3700 .loc 1 1713 11 is_stmt 0 view .LVU1171 3701 0006 4120 movs r0, #65 3702 .LVL256: 1713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3703 .loc 1 1713 11 view .LVU1172 3704 0008 205C ldrb r0, [r4, r0] 1713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3705 .loc 1 1713 6 view .LVU1173 3706 000a 2028 cmp r0, #32 3707 000c 36D1 bne .L250 1715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3708 .loc 1 1715 5 is_stmt 1 view .LVU1174 1715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3709 .loc 1 1715 9 is_stmt 0 view .LVU1175 3710 000e 2068 ldr r0, [r4] 3711 0010 8069 ldr r0, [r0, #24] 1715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3712 .loc 1 1715 8 view .LVU1176 3713 0012 0004 lsls r0, r0, #16 3714 0014 34D4 bmi .L251 1721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3715 .loc 1 1721 5 is_stmt 1 view .LVU1177 1721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3716 .loc 1 1721 5 view .LVU1178 3717 0016 4020 movs r0, #64 3718 0018 205C ldrb r0, [r4, r0] 3719 001a 0128 cmp r0, #1 3720 001c 32D0 beq .L252 1721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3721 .loc 1 1721 5 discriminator 2 view .LVU1179 3722 001e 4020 movs r0, #64 3723 0020 0125 movs r5, #1 3724 0022 2554 strb r5, [r4, r0] 1721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3725 .loc 1 1721 5 discriminator 2 view .LVU1180 1723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3726 .loc 1 1723 5 view .LVU1181 1723:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3727 .loc 1 1723 23 is_stmt 0 view .LVU1182 3728 0024 0130 adds r0, r0, #1 3729 0026 2135 adds r5, r5, #33 3730 0028 2554 strb r5, [r4, r0] 1724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3731 .loc 1 1724 5 is_stmt 1 view .LVU1183 1724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3732 .loc 1 1724 23 is_stmt 0 view .LVU1184 ARM GAS /tmp/ccuRhBPx.s page 212 3733 002a 0130 adds r0, r0, #1 3734 002c 123D subs r5, r5, #18 3735 002e 2554 strb r5, [r4, r0] 1725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3736 .loc 1 1725 5 is_stmt 1 view .LVU1185 1725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3737 .loc 1 1725 23 is_stmt 0 view .LVU1186 3738 0030 0020 movs r0, #0 3739 0032 6064 str r0, [r4, #68] 1728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3740 .loc 1 1728 5 is_stmt 1 view .LVU1187 1728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3741 .loc 1 1728 23 is_stmt 0 view .LVU1188 3742 0034 6262 str r2, [r4, #36] 1729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3743 .loc 1 1729 5 is_stmt 1 view .LVU1189 1729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3744 .loc 1 1729 23 is_stmt 0 view .LVU1190 3745 0036 6385 strh r3, [r4, #42] 1730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3746 .loc 1 1730 5 is_stmt 1 view .LVU1191 1730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3747 .loc 1 1730 23 is_stmt 0 view .LVU1192 3748 0038 134B ldr r3, .L253 3749 .LVL257: 1730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3750 .loc 1 1730 23 view .LVU1193 3751 003a E362 str r3, [r4, #44] 3752 .LVL258: 1731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3753 .loc 1 1731 5 is_stmt 1 view .LVU1194 1731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3754 .loc 1 1731 23 is_stmt 0 view .LVU1195 3755 003c 134B ldr r3, .L253+4 3756 003e 6363 str r3, [r4, #52] 1733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3757 .loc 1 1733 5 is_stmt 1 view .LVU1196 1733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3758 .loc 1 1733 13 is_stmt 0 view .LVU1197 3759 0040 638D ldrh r3, [r4, #42] 3760 0042 9BB2 uxth r3, r3 1733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3761 .loc 1 1733 8 view .LVU1198 3762 0044 FF2B cmp r3, #255 3763 0046 14D9 bls .L248 1735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3764 .loc 1 1735 7 is_stmt 1 view .LVU1199 1735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3765 .loc 1 1735 22 is_stmt 0 view .LVU1200 3766 0048 FF23 movs r3, #255 3767 004a 2385 strh r3, [r4, #40] 1736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3768 .loc 1 1736 7 is_stmt 1 view .LVU1201 3769 .LVL259: 1736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3770 .loc 1 1736 16 is_stmt 0 view .LVU1202 3771 004c 8023 movs r3, #128 ARM GAS /tmp/ccuRhBPx.s page 213 3772 004e 5B04 lsls r3, r3, #17 3773 .LVL260: 3774 .L249: 1746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3775 .loc 1 1746 5 is_stmt 1 view .LVU1203 1746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3776 .loc 1 1746 55 is_stmt 0 view .LVU1204 3777 0050 228D ldrh r2, [r4, #40] 3778 .LVL261: 1746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3779 .loc 1 1746 5 view .LVU1205 3780 0052 D2B2 uxtb r2, r2 3781 0054 0E48 ldr r0, .L253+8 3782 0056 0090 str r0, [sp] 3783 .LVL262: 1746:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3784 .loc 1 1746 5 view .LVU1206 3785 0058 2000 movs r0, r4 3786 005a FFF7FEFF bl I2C_TransferConfig 3787 .LVL263: 1749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3788 .loc 1 1749 5 is_stmt 1 view .LVU1207 1749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3789 .loc 1 1749 5 view .LVU1208 3790 005e 4023 movs r3, #64 3791 0060 0022 movs r2, #0 3792 0062 E254 strb r2, [r4, r3] 1749:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3793 .loc 1 1749 5 view .LVU1209 1759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3794 .loc 1 1759 5 view .LVU1210 3795 0064 0221 movs r1, #2 3796 0066 2000 movs r0, r4 3797 0068 FFF7FEFF bl I2C_Enable_IRQ 3798 .LVL264: 1761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3799 .loc 1 1761 5 view .LVU1211 1761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3800 .loc 1 1761 12 is_stmt 0 view .LVU1212 3801 006c 0020 movs r0, #0 3802 .LVL265: 3803 .L247: 1767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3804 .loc 1 1767 1 view .LVU1213 3805 006e 03B0 add sp, sp, #12 3806 @ sp needed 3807 .LVL266: 1767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3808 .loc 1 1767 1 view .LVU1214 3809 0070 30BD pop {r4, r5, pc} 3810 .LVL267: 3811 .L248: 1740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3812 .loc 1 1740 7 is_stmt 1 view .LVU1215 1740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3813 .loc 1 1740 28 is_stmt 0 view .LVU1216 3814 0072 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccuRhBPx.s page 214 1740:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3815 .loc 1 1740 22 view .LVU1217 3816 0074 2385 strh r3, [r4, #40] 1741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3817 .loc 1 1741 7 is_stmt 1 view .LVU1218 3818 .LVL268: 1741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3819 .loc 1 1741 16 is_stmt 0 view .LVU1219 3820 0076 8023 movs r3, #128 3821 0078 9B04 lsls r3, r3, #18 3822 007a E9E7 b .L249 3823 .LVL269: 3824 .L250: 1765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3825 .loc 1 1765 12 view .LVU1220 3826 007c 0220 movs r0, #2 3827 007e F6E7 b .L247 3828 .L251: 1717:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3829 .loc 1 1717 14 view .LVU1221 3830 0080 0220 movs r0, #2 3831 0082 F4E7 b .L247 3832 .L252: 1721:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3833 .loc 1 1721 5 discriminator 1 view .LVU1222 3834 0084 0220 movs r0, #2 3835 0086 F2E7 b .L247 3836 .L254: 3837 .align 2 3838 .L253: 3839 0088 0000FFFF .word -65536 3840 008c 00000000 .word I2C_Master_ISR_IT 3841 0090 00240080 .word -2147474432 3842 .cfi_endproc 3843 .LFE49: 3845 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits 3846 .align 1 3847 .global HAL_I2C_Slave_Transmit_IT 3848 .syntax unified 3849 .code 16 3850 .thumb_func 3852 HAL_I2C_Slave_Transmit_IT: 3853 .LVL270: 3854 .LFB50: 1778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3855 .loc 1 1778 1 is_stmt 1 view -0 3856 .cfi_startproc 3857 @ args = 0, pretend = 0, frame = 0 3858 @ frame_needed = 0, uses_anonymous_args = 0 1778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3859 .loc 1 1778 1 is_stmt 0 view .LVU1224 3860 0000 70B5 push {r4, r5, r6, lr} 3861 .cfi_def_cfa_offset 16 3862 .cfi_offset 4, -16 3863 .cfi_offset 5, -12 3864 .cfi_offset 6, -8 3865 .cfi_offset 14, -4 ARM GAS /tmp/ccuRhBPx.s page 215 1779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3866 .loc 1 1779 3 is_stmt 1 view .LVU1225 1779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3867 .loc 1 1779 11 is_stmt 0 view .LVU1226 3868 0002 4123 movs r3, #65 3869 0004 C35C ldrb r3, [r0, r3] 1779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3870 .loc 1 1779 6 view .LVU1227 3871 0006 202B cmp r3, #32 3872 0008 36D1 bne .L258 1782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3873 .loc 1 1782 5 is_stmt 1 view .LVU1228 1782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3874 .loc 1 1782 5 view .LVU1229 3875 000a 2033 adds r3, r3, #32 3876 000c C35C ldrb r3, [r0, r3] 3877 000e 012B cmp r3, #1 3878 0010 34D0 beq .L259 1782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3879 .loc 1 1782 5 discriminator 2 view .LVU1230 3880 0012 4023 movs r3, #64 3881 0014 0124 movs r4, #1 3882 0016 C454 strb r4, [r0, r3] 1782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3883 .loc 1 1782 5 discriminator 2 view .LVU1231 1784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3884 .loc 1 1784 5 view .LVU1232 1784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3885 .loc 1 1784 23 is_stmt 0 view .LVU1233 3886 0018 0133 adds r3, r3, #1 3887 001a 2034 adds r4, r4, #32 3888 001c C454 strb r4, [r0, r3] 1785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3889 .loc 1 1785 5 is_stmt 1 view .LVU1234 1785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3890 .loc 1 1785 23 is_stmt 0 view .LVU1235 3891 001e 0133 adds r3, r3, #1 3892 0020 013C subs r4, r4, #1 3893 0022 C454 strb r4, [r0, r3] 1786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3894 .loc 1 1786 5 is_stmt 1 view .LVU1236 1786:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3895 .loc 1 1786 23 is_stmt 0 view .LVU1237 3896 0024 0023 movs r3, #0 3897 0026 4364 str r3, [r0, #68] 1789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3898 .loc 1 1789 5 is_stmt 1 view .LVU1238 1789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3899 .loc 1 1789 9 is_stmt 0 view .LVU1239 3900 0028 0468 ldr r4, [r0] 1789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3901 .loc 1 1789 19 view .LVU1240 3902 002a 6368 ldr r3, [r4, #4] 1789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3903 .loc 1 1789 25 view .LVU1241 3904 002c 144D ldr r5, .L261 3905 002e 2B40 ands r3, r5 ARM GAS /tmp/ccuRhBPx.s page 216 3906 0030 6360 str r3, [r4, #4] 1792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3907 .loc 1 1792 5 is_stmt 1 view .LVU1242 1792:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 3908 .loc 1 1792 23 is_stmt 0 view .LVU1243 3909 0032 4162 str r1, [r0, #36] 1793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3910 .loc 1 1793 5 is_stmt 1 view .LVU1244 1793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3911 .loc 1 1793 23 is_stmt 0 view .LVU1245 3912 0034 4285 strh r2, [r0, #42] 1794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3913 .loc 1 1794 5 is_stmt 1 view .LVU1246 1794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3914 .loc 1 1794 29 is_stmt 0 view .LVU1247 3915 0036 438D ldrh r3, [r0, #42] 1794:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3916 .loc 1 1794 23 view .LVU1248 3917 0038 0385 strh r3, [r0, #40] 1795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3918 .loc 1 1795 5 is_stmt 1 view .LVU1249 1795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3919 .loc 1 1795 23 is_stmt 0 view .LVU1250 3920 003a 124B ldr r3, .L261+4 3921 003c C362 str r3, [r0, #44] 1796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3922 .loc 1 1796 5 is_stmt 1 view .LVU1251 1796:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3923 .loc 1 1796 23 is_stmt 0 view .LVU1252 3924 003e 124B ldr r3, .L261+8 3925 0040 4363 str r3, [r0, #52] 1799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3926 .loc 1 1799 5 is_stmt 1 view .LVU1253 1799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3927 .loc 1 1799 19 is_stmt 0 view .LVU1254 3928 0042 026A ldr r2, [r0, #32] 3929 .LVL271: 1799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 3930 .loc 1 1799 8 view .LVU1255 3931 0044 8023 movs r3, #128 3932 0046 9B02 lsls r3, r3, #10 3933 0048 9A42 cmp r2, r3 3934 004a 07D0 beq .L260 3935 .L257: 1813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3936 .loc 1 1813 5 is_stmt 1 view .LVU1256 1813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3937 .loc 1 1813 5 view .LVU1257 3938 004c 4023 movs r3, #64 3939 004e 0022 movs r2, #0 3940 0050 C254 strb r2, [r0, r3] 1813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3941 .loc 1 1813 5 view .LVU1258 1823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3942 .loc 1 1823 5 view .LVU1259 3943 0052 0E49 ldr r1, .L261+12 3944 .LVL272: ARM GAS /tmp/ccuRhBPx.s page 217 1823:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3945 .loc 1 1823 5 is_stmt 0 view .LVU1260 3946 0054 FFF7FEFF bl I2C_Enable_IRQ 3947 .LVL273: 1825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3948 .loc 1 1825 5 is_stmt 1 view .LVU1261 1825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3949 .loc 1 1825 12 is_stmt 0 view .LVU1262 3950 0058 0020 movs r0, #0 3951 .L256: 1831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3952 .loc 1 1831 1 view .LVU1263 3953 @ sp needed 3954 005a 70BD pop {r4, r5, r6, pc} 3955 .LVL274: 3956 .L260: 1803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3957 .loc 1 1803 7 is_stmt 1 view .LVU1264 1803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3958 .loc 1 1803 11 is_stmt 0 view .LVU1265 3959 005c 0368 ldr r3, [r0] 1803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3960 .loc 1 1803 30 view .LVU1266 3961 005e 0A78 ldrb r2, [r1] 1803:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3962 .loc 1 1803 28 view .LVU1267 3963 0060 9A62 str r2, [r3, #40] 1806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3964 .loc 1 1806 7 is_stmt 1 view .LVU1268 1806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3965 .loc 1 1806 11 is_stmt 0 view .LVU1269 3966 0062 436A ldr r3, [r0, #36] 1806:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3967 .loc 1 1806 21 view .LVU1270 3968 0064 0133 adds r3, r3, #1 3969 0066 4362 str r3, [r0, #36] 1808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 3970 .loc 1 1808 7 is_stmt 1 view .LVU1271 1808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 3971 .loc 1 1808 11 is_stmt 0 view .LVU1272 3972 0068 438D ldrh r3, [r0, #42] 1808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 3973 .loc 1 1808 22 view .LVU1273 3974 006a 013B subs r3, r3, #1 3975 006c 9BB2 uxth r3, r3 3976 006e 4385 strh r3, [r0, #42] 1809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3977 .loc 1 1809 7 is_stmt 1 view .LVU1274 1809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3978 .loc 1 1809 11 is_stmt 0 view .LVU1275 3979 0070 038D ldrh r3, [r0, #40] 1809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3980 .loc 1 1809 21 view .LVU1276 3981 0072 013B subs r3, r3, #1 3982 0074 0385 strh r3, [r0, #40] 3983 0076 E9E7 b .L257 3984 .LVL275: ARM GAS /tmp/ccuRhBPx.s page 218 3985 .L258: 1829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3986 .loc 1 1829 12 view .LVU1277 3987 0078 0220 movs r0, #2 3988 .LVL276: 1829:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 3989 .loc 1 1829 12 view .LVU1278 3990 007a EEE7 b .L256 3991 .LVL277: 3992 .L259: 1782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3993 .loc 1 1782 5 discriminator 1 view .LVU1279 3994 007c 0220 movs r0, #2 3995 .LVL278: 1782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 3996 .loc 1 1782 5 discriminator 1 view .LVU1280 3997 007e ECE7 b .L256 3998 .L262: 3999 .align 2 4000 .L261: 4001 0080 FF7FFFFF .word -32769 4002 0084 0000FFFF .word -65536 4003 0088 00000000 .word I2C_Slave_ISR_IT 4004 008c 01800000 .word 32769 4005 .cfi_endproc 4006 .LFE50: 4008 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits 4009 .align 1 4010 .global HAL_I2C_Slave_Receive_IT 4011 .syntax unified 4012 .code 16 4013 .thumb_func 4015 HAL_I2C_Slave_Receive_IT: 4016 .LVL279: 4017 .LFB51: 1842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 4018 .loc 1 1842 1 is_stmt 1 view -0 4019 .cfi_startproc 4020 @ args = 0, pretend = 0, frame = 0 4021 @ frame_needed = 0, uses_anonymous_args = 0 1842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 4022 .loc 1 1842 1 is_stmt 0 view .LVU1282 4023 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 4024 .cfi_def_cfa_offset 24 4025 .cfi_offset 3, -24 4026 .cfi_offset 4, -20 4027 .cfi_offset 5, -16 4028 .cfi_offset 6, -12 4029 .cfi_offset 7, -8 4030 .cfi_offset 14, -4 1843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4031 .loc 1 1843 3 is_stmt 1 view .LVU1283 1843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4032 .loc 1 1843 11 is_stmt 0 view .LVU1284 4033 0002 4123 movs r3, #65 4034 0004 C35C ldrb r3, [r0, r3] 1843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 219 4035 .loc 1 1843 6 view .LVU1285 4036 0006 202B cmp r3, #32 4037 0008 21D1 bne .L265 1846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4038 .loc 1 1846 5 is_stmt 1 view .LVU1286 1846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4039 .loc 1 1846 5 view .LVU1287 4040 000a 2033 adds r3, r3, #32 4041 000c C35C ldrb r3, [r0, r3] 4042 000e 012B cmp r3, #1 4043 0010 1FD0 beq .L266 1846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4044 .loc 1 1846 5 discriminator 2 view .LVU1288 4045 0012 4024 movs r4, #64 4046 0014 0123 movs r3, #1 4047 0016 0355 strb r3, [r0, r4] 1846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4048 .loc 1 1846 5 discriminator 2 view .LVU1289 1848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4049 .loc 1 1848 5 view .LVU1290 1848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4050 .loc 1 1848 23 is_stmt 0 view .LVU1291 4051 0018 4033 adds r3, r3, #64 4052 001a 2225 movs r5, #34 4053 001c C554 strb r5, [r0, r3] 1849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4054 .loc 1 1849 5 is_stmt 1 view .LVU1292 1849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4055 .loc 1 1849 23 is_stmt 0 view .LVU1293 4056 001e 0133 adds r3, r3, #1 4057 0020 023D subs r5, r5, #2 4058 0022 C554 strb r5, [r0, r3] 1850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4059 .loc 1 1850 5 is_stmt 1 view .LVU1294 1850:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4060 .loc 1 1850 23 is_stmt 0 view .LVU1295 4061 0024 0025 movs r5, #0 4062 0026 4564 str r5, [r0, #68] 1853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4063 .loc 1 1853 5 is_stmt 1 view .LVU1296 1853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4064 .loc 1 1853 9 is_stmt 0 view .LVU1297 4065 0028 0668 ldr r6, [r0] 1853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4066 .loc 1 1853 19 view .LVU1298 4067 002a 7368 ldr r3, [r6, #4] 1853:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4068 .loc 1 1853 25 view .LVU1299 4069 002c 0A4F ldr r7, .L267 4070 002e 3B40 ands r3, r7 4071 0030 7360 str r3, [r6, #4] 1856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4072 .loc 1 1856 5 is_stmt 1 view .LVU1300 1856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4073 .loc 1 1856 23 is_stmt 0 view .LVU1301 4074 0032 4162 str r1, [r0, #36] 1857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; ARM GAS /tmp/ccuRhBPx.s page 220 4075 .loc 1 1857 5 is_stmt 1 view .LVU1302 1857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4076 .loc 1 1857 23 is_stmt 0 view .LVU1303 4077 0034 4285 strh r2, [r0, #42] 1858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4078 .loc 1 1858 5 is_stmt 1 view .LVU1304 1858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4079 .loc 1 1858 29 is_stmt 0 view .LVU1305 4080 0036 438D ldrh r3, [r0, #42] 1858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4081 .loc 1 1858 23 view .LVU1306 4082 0038 0385 strh r3, [r0, #40] 1859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4083 .loc 1 1859 5 is_stmt 1 view .LVU1307 1859:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4084 .loc 1 1859 23 is_stmt 0 view .LVU1308 4085 003a 084B ldr r3, .L267+4 4086 003c C362 str r3, [r0, #44] 1860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4087 .loc 1 1860 5 is_stmt 1 view .LVU1309 1860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4088 .loc 1 1860 23 is_stmt 0 view .LVU1310 4089 003e 084B ldr r3, .L267+8 4090 0040 4363 str r3, [r0, #52] 1863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4091 .loc 1 1863 5 is_stmt 1 view .LVU1311 1863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4092 .loc 1 1863 5 view .LVU1312 4093 0042 0555 strb r5, [r0, r4] 1863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4094 .loc 1 1863 5 view .LVU1313 1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4095 .loc 1 1873 5 view .LVU1314 4096 0044 0749 ldr r1, .L267+12 4097 .LVL280: 1873:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4098 .loc 1 1873 5 is_stmt 0 view .LVU1315 4099 0046 FFF7FEFF bl I2C_Enable_IRQ 4100 .LVL281: 1875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4101 .loc 1 1875 5 is_stmt 1 view .LVU1316 1875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4102 .loc 1 1875 12 is_stmt 0 view .LVU1317 4103 004a 0020 movs r0, #0 4104 .L264: 1881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4105 .loc 1 1881 1 view .LVU1318 4106 @ sp needed 4107 004c F8BD pop {r3, r4, r5, r6, r7, pc} 4108 .LVL282: 4109 .L265: 1879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4110 .loc 1 1879 12 view .LVU1319 4111 004e 0220 movs r0, #2 4112 .LVL283: 1879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4113 .loc 1 1879 12 view .LVU1320 ARM GAS /tmp/ccuRhBPx.s page 221 4114 0050 FCE7 b .L264 4115 .LVL284: 4116 .L266: 1846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4117 .loc 1 1846 5 discriminator 1 view .LVU1321 4118 0052 0220 movs r0, #2 4119 .LVL285: 1846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4120 .loc 1 1846 5 discriminator 1 view .LVU1322 4121 0054 FAE7 b .L264 4122 .L268: 4123 0056 C046 .align 2 4124 .L267: 4125 0058 FF7FFFFF .word -32769 4126 005c 0000FFFF .word -65536 4127 0060 00000000 .word I2C_Slave_ISR_IT 4128 0064 02800000 .word 32770 4129 .cfi_endproc 4130 .LFE51: 4132 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits 4133 .align 1 4134 .global HAL_I2C_Master_Transmit_DMA 4135 .syntax unified 4136 .code 16 4137 .thumb_func 4139 HAL_I2C_Master_Transmit_DMA: 4140 .LVL286: 4141 .LFB52: 1895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 4142 .loc 1 1895 1 is_stmt 1 view -0 4143 .cfi_startproc 4144 @ args = 0, pretend = 0, frame = 0 4145 @ frame_needed = 0, uses_anonymous_args = 0 1895:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 4146 .loc 1 1895 1 is_stmt 0 view .LVU1324 4147 0000 F0B5 push {r4, r5, r6, r7, lr} 4148 .cfi_def_cfa_offset 20 4149 .cfi_offset 4, -20 4150 .cfi_offset 5, -16 4151 .cfi_offset 6, -12 4152 .cfi_offset 7, -8 4153 .cfi_offset 14, -4 4154 0002 83B0 sub sp, sp, #12 4155 .cfi_def_cfa_offset 32 4156 0004 0400 movs r4, r0 4157 0006 0E00 movs r6, r1 4158 0008 1500 movs r5, r2 1896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4159 .loc 1 1896 3 is_stmt 1 view .LVU1325 1897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4160 .loc 1 1897 3 view .LVU1326 1899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4161 .loc 1 1899 3 view .LVU1327 1899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4162 .loc 1 1899 11 is_stmt 0 view .LVU1328 4163 000a 4122 movs r2, #65 4164 .LVL287: ARM GAS /tmp/ccuRhBPx.s page 222 1899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4165 .loc 1 1899 11 view .LVU1329 4166 000c 825C ldrb r2, [r0, r2] 1899:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4167 .loc 1 1899 6 view .LVU1330 4168 000e 202A cmp r2, #32 4169 0010 00D0 beq .LCB3933 4170 0012 8CE0 b .L278 @long jump 4171 .LCB3933: 1901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4172 .loc 1 1901 5 is_stmt 1 view .LVU1331 1901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4173 .loc 1 1901 9 is_stmt 0 view .LVU1332 4174 0014 0268 ldr r2, [r0] 4175 0016 9269 ldr r2, [r2, #24] 1901:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4176 .loc 1 1901 8 view .LVU1333 4177 0018 1204 lsls r2, r2, #16 4178 001a 00D5 bpl .LCB3940 4179 001c 8AE0 b .L279 @long jump 4180 .LCB3940: 1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4181 .loc 1 1907 5 is_stmt 1 view .LVU1334 1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4182 .loc 1 1907 5 view .LVU1335 4183 001e 4022 movs r2, #64 4184 0020 825C ldrb r2, [r0, r2] 4185 0022 012A cmp r2, #1 4186 0024 00D1 bne .LCB3946 4187 0026 87E0 b .L280 @long jump 4188 .LCB3946: 1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4189 .loc 1 1907 5 discriminator 2 view .LVU1336 4190 0028 4022 movs r2, #64 4191 002a 0121 movs r1, #1 4192 .LVL288: 1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4193 .loc 1 1907 5 is_stmt 0 discriminator 2 view .LVU1337 4194 002c 8154 strb r1, [r0, r2] 1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4195 .loc 1 1907 5 is_stmt 1 discriminator 2 view .LVU1338 1909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4196 .loc 1 1909 5 view .LVU1339 1909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4197 .loc 1 1909 23 is_stmt 0 view .LVU1340 4198 002e 0132 adds r2, r2, #1 4199 0030 2031 adds r1, r1, #32 4200 0032 8154 strb r1, [r0, r2] 1910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4201 .loc 1 1910 5 is_stmt 1 view .LVU1341 1910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4202 .loc 1 1910 23 is_stmt 0 view .LVU1342 4203 0034 0132 adds r2, r2, #1 4204 0036 1139 subs r1, r1, #17 4205 0038 8154 strb r1, [r0, r2] 1911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4206 .loc 1 1911 5 is_stmt 1 view .LVU1343 ARM GAS /tmp/ccuRhBPx.s page 223 1911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4207 .loc 1 1911 23 is_stmt 0 view .LVU1344 4208 003a 0022 movs r2, #0 4209 003c 4264 str r2, [r0, #68] 1914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4210 .loc 1 1914 5 is_stmt 1 view .LVU1345 1914:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4211 .loc 1 1914 23 is_stmt 0 view .LVU1346 4212 003e 4562 str r5, [r0, #36] 1915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4213 .loc 1 1915 5 is_stmt 1 view .LVU1347 1915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4214 .loc 1 1915 23 is_stmt 0 view .LVU1348 4215 0040 4385 strh r3, [r0, #42] 1916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4216 .loc 1 1916 5 is_stmt 1 view .LVU1349 1916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4217 .loc 1 1916 23 is_stmt 0 view .LVU1350 4218 0042 3E4B ldr r3, .L283 4219 .LVL289: 1916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4220 .loc 1 1916 23 view .LVU1351 4221 0044 C362 str r3, [r0, #44] 4222 .LVL290: 1917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4223 .loc 1 1917 5 is_stmt 1 view .LVU1352 1917:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4224 .loc 1 1917 23 is_stmt 0 view .LVU1353 4225 0046 3E4B ldr r3, .L283+4 4226 0048 4363 str r3, [r0, #52] 1919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4227 .loc 1 1919 5 is_stmt 1 view .LVU1354 1919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4228 .loc 1 1919 13 is_stmt 0 view .LVU1355 4229 004a 438D ldrh r3, [r0, #42] 4230 004c 9BB2 uxth r3, r3 1919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4231 .loc 1 1919 8 view .LVU1356 4232 004e FF2B cmp r3, #255 4233 0050 2AD9 bls .L271 1921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4234 .loc 1 1921 7 is_stmt 1 view .LVU1357 1921:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4235 .loc 1 1921 22 is_stmt 0 view .LVU1358 4236 0052 FF23 movs r3, #255 4237 0054 0385 strh r3, [r0, #40] 1922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4238 .loc 1 1922 7 is_stmt 1 view .LVU1359 4239 .LVL291: 1922:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4240 .loc 1 1922 16 is_stmt 0 view .LVU1360 4241 0056 8027 movs r7, #128 4242 0058 7F04 lsls r7, r7, #17 4243 .LVL292: 4244 .L272: 1930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4245 .loc 1 1930 5 is_stmt 1 view .LVU1361 ARM GAS /tmp/ccuRhBPx.s page 224 1930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4246 .loc 1 1930 13 is_stmt 0 view .LVU1362 4247 005a 228D ldrh r2, [r4, #40] 1930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4248 .loc 1 1930 8 view .LVU1363 4249 005c 002A cmp r2, #0 4250 005e 52D0 beq .L273 1932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4251 .loc 1 1932 7 is_stmt 1 view .LVU1364 1932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4252 .loc 1 1932 15 is_stmt 0 view .LVU1365 4253 0060 A36B ldr r3, [r4, #56] 1932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4254 .loc 1 1932 10 view .LVU1366 4255 0062 002B cmp r3, #0 4256 0064 25D0 beq .L274 1935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4257 .loc 1 1935 9 is_stmt 1 view .LVU1367 1935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4258 .loc 1 1935 40 is_stmt 0 view .LVU1368 4259 0066 374A ldr r2, .L283+8 4260 0068 9A62 str r2, [r3, #40] 1938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4261 .loc 1 1938 9 is_stmt 1 view .LVU1369 1938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4262 .loc 1 1938 13 is_stmt 0 view .LVU1370 4263 006a A36B ldr r3, [r4, #56] 1938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4264 .loc 1 1938 41 view .LVU1371 4265 006c 364A ldr r2, .L283+12 4266 006e 1A63 str r2, [r3, #48] 1941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4267 .loc 1 1941 9 is_stmt 1 view .LVU1372 1941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4268 .loc 1 1941 13 is_stmt 0 view .LVU1373 4269 0070 A26B ldr r2, [r4, #56] 1941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4270 .loc 1 1941 44 view .LVU1374 4271 0072 0023 movs r3, #0 4272 0074 D362 str r3, [r2, #44] 1942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4273 .loc 1 1942 9 is_stmt 1 view .LVU1375 1942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4274 .loc 1 1942 13 is_stmt 0 view .LVU1376 4275 0076 A26B ldr r2, [r4, #56] 1942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4276 .loc 1 1942 41 view .LVU1377 4277 0078 5363 str r3, [r2, #52] 1945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4278 .loc 1 1945 9 is_stmt 1 view .LVU1378 1945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4279 .loc 1 1945 88 is_stmt 0 view .LVU1379 4280 007a 2268 ldr r2, [r4] 1945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4281 .loc 1 1945 83 view .LVU1380 4282 007c 2832 adds r2, r2, #40 1946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 225 4283 .loc 1 1946 46 view .LVU1381 4284 007e 238D ldrh r3, [r4, #40] 1945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4285 .loc 1 1945 25 view .LVU1382 4286 0080 A06B ldr r0, [r4, #56] 4287 .LVL293: 1945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4288 .loc 1 1945 25 view .LVU1383 4289 0082 2900 movs r1, r5 4290 0084 FFF7FEFF bl HAL_DMA_Start_IT 4291 .LVL294: 1963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4292 .loc 1 1963 7 is_stmt 1 view .LVU1384 1963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4293 .loc 1 1963 10 is_stmt 0 view .LVU1385 4294 0088 0028 cmp r0, #0 4295 008a 20D0 beq .L282 1987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4296 .loc 1 1987 9 is_stmt 1 view .LVU1386 1987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4297 .loc 1 1987 25 is_stmt 0 view .LVU1387 4298 008c 4123 movs r3, #65 4299 008e 2022 movs r2, #32 4300 0090 E254 strb r2, [r4, r3] 1988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4301 .loc 1 1988 9 is_stmt 1 view .LVU1388 1988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4302 .loc 1 1988 25 is_stmt 0 view .LVU1389 4303 0092 0022 movs r2, #0 4304 0094 0133 adds r3, r3, #1 4305 0096 E254 strb r2, [r4, r3] 1991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4306 .loc 1 1991 9 is_stmt 1 view .LVU1390 1991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4307 .loc 1 1991 13 is_stmt 0 view .LVU1391 4308 0098 636C ldr r3, [r4, #68] 1991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4309 .loc 1 1991 25 view .LVU1392 4310 009a 1021 movs r1, #16 4311 009c 0B43 orrs r3, r1 4312 009e 6364 str r3, [r4, #68] 1994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4313 .loc 1 1994 9 is_stmt 1 view .LVU1393 1994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4314 .loc 1 1994 9 view .LVU1394 4315 00a0 4023 movs r3, #64 4316 00a2 E254 strb r2, [r4, r3] 1994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4317 .loc 1 1994 9 view .LVU1395 1996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4318 .loc 1 1996 9 view .LVU1396 1996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4319 .loc 1 1996 16 is_stmt 0 view .LVU1397 4320 00a4 0120 movs r0, #1 4321 .LVL295: 1996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4322 .loc 1 1996 16 view .LVU1398 ARM GAS /tmp/ccuRhBPx.s page 226 4323 00a6 43E0 b .L270 4324 .LVL296: 4325 .L271: 1926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4326 .loc 1 1926 7 is_stmt 1 view .LVU1399 1926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4327 .loc 1 1926 28 is_stmt 0 view .LVU1400 4328 00a8 438D ldrh r3, [r0, #42] 1926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4329 .loc 1 1926 22 view .LVU1401 4330 00aa 0385 strh r3, [r0, #40] 1927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4331 .loc 1 1927 7 is_stmt 1 view .LVU1402 4332 .LVL297: 1927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4333 .loc 1 1927 16 is_stmt 0 view .LVU1403 4334 00ac 8027 movs r7, #128 4335 00ae BF04 lsls r7, r7, #18 4336 00b0 D3E7 b .L272 4337 .LVL298: 4338 .L274: 1951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4339 .loc 1 1951 9 is_stmt 1 view .LVU1404 1951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4340 .loc 1 1951 25 is_stmt 0 view .LVU1405 4341 00b2 4123 movs r3, #65 4342 00b4 2022 movs r2, #32 4343 00b6 E254 strb r2, [r4, r3] 1952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4344 .loc 1 1952 9 is_stmt 1 view .LVU1406 1952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4345 .loc 1 1952 25 is_stmt 0 view .LVU1407 4346 00b8 0022 movs r2, #0 4347 00ba 0133 adds r3, r3, #1 4348 00bc E254 strb r2, [r4, r3] 1955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4349 .loc 1 1955 9 is_stmt 1 view .LVU1408 1955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4350 .loc 1 1955 13 is_stmt 0 view .LVU1409 4351 00be 636C ldr r3, [r4, #68] 1955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4352 .loc 1 1955 25 view .LVU1410 4353 00c0 8021 movs r1, #128 4354 00c2 0B43 orrs r3, r1 4355 00c4 6364 str r3, [r4, #68] 1958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4356 .loc 1 1958 9 is_stmt 1 view .LVU1411 1958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4357 .loc 1 1958 9 view .LVU1412 4358 00c6 4023 movs r3, #64 4359 00c8 E254 strb r2, [r4, r3] 1958:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4360 .loc 1 1958 9 view .LVU1413 1960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4361 .loc 1 1960 9 view .LVU1414 1960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4362 .loc 1 1960 16 is_stmt 0 view .LVU1415 ARM GAS /tmp/ccuRhBPx.s page 227 4363 00ca 0120 movs r0, #1 4364 .LVL299: 1960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4365 .loc 1 1960 16 view .LVU1416 4366 00cc 30E0 b .L270 4367 .LVL300: 4368 .L282: 1967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4369 .loc 1 1967 9 is_stmt 1 view .LVU1417 1967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4370 .loc 1 1967 59 is_stmt 0 view .LVU1418 4371 00ce 228D ldrh r2, [r4, #40] 1967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4372 .loc 1 1967 9 view .LVU1419 4373 00d0 D2B2 uxtb r2, r2 4374 00d2 1E4B ldr r3, .L283+16 4375 00d4 0093 str r3, [sp] 4376 00d6 3B00 movs r3, r7 4377 00d8 3100 movs r1, r6 4378 00da 2000 movs r0, r4 4379 .LVL301: 1967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4380 .loc 1 1967 9 view .LVU1420 4381 00dc FFF7FEFF bl I2C_TransferConfig 4382 .LVL302: 1970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4383 .loc 1 1970 9 is_stmt 1 view .LVU1421 1970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4384 .loc 1 1970 13 is_stmt 0 view .LVU1422 4385 00e0 638D ldrh r3, [r4, #42] 1970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4386 .loc 1 1970 32 view .LVU1423 4387 00e2 228D ldrh r2, [r4, #40] 1970:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4388 .loc 1 1970 25 view .LVU1424 4389 00e4 9B1A subs r3, r3, r2 4390 00e6 9BB2 uxth r3, r3 4391 00e8 6385 strh r3, [r4, #42] 1973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4392 .loc 1 1973 9 is_stmt 1 view .LVU1425 1973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4393 .loc 1 1973 9 view .LVU1426 4394 00ea 4023 movs r3, #64 4395 00ec 0022 movs r2, #0 4396 00ee E254 strb r2, [r4, r3] 1973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4397 .loc 1 1973 9 view .LVU1427 1979:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4398 .loc 1 1979 9 view .LVU1428 4399 00f0 1021 movs r1, #16 4400 00f2 2000 movs r0, r4 4401 00f4 FFF7FEFF bl I2C_Enable_IRQ 4402 .LVL303: 1982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4403 .loc 1 1982 9 view .LVU1429 1982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4404 .loc 1 1982 13 is_stmt 0 view .LVU1430 ARM GAS /tmp/ccuRhBPx.s page 228 4405 00f8 2268 ldr r2, [r4] 1982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4406 .loc 1 1982 23 view .LVU1431 4407 00fa 1168 ldr r1, [r2] 1982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4408 .loc 1 1982 29 view .LVU1432 4409 00fc 8023 movs r3, #128 4410 00fe DB01 lsls r3, r3, #7 4411 0100 0B43 orrs r3, r1 4412 0102 1360 str r3, [r2] 4413 0104 11E0 b .L277 4414 .LVL304: 4415 .L273: 2002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4416 .loc 1 2002 7 is_stmt 1 view .LVU1433 2002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4417 .loc 1 2002 21 is_stmt 0 view .LVU1434 4418 0106 124B ldr r3, .L283+20 4419 0108 6363 str r3, [r4, #52] 2006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4420 .loc 1 2006 7 is_stmt 1 view .LVU1435 4421 010a 8023 movs r3, #128 4422 010c D2B2 uxtb r2, r2 4423 010e 0F49 ldr r1, .L283+16 4424 0110 0091 str r1, [sp] 4425 0112 9B04 lsls r3, r3, #18 4426 0114 3100 movs r1, r6 4427 0116 2000 movs r0, r4 4428 .LVL305: 2006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4429 .loc 1 2006 7 is_stmt 0 view .LVU1436 4430 0118 FFF7FEFF bl I2C_TransferConfig 4431 .LVL306: 2010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4432 .loc 1 2010 7 is_stmt 1 view .LVU1437 2010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4433 .loc 1 2010 7 view .LVU1438 4434 011c 4023 movs r3, #64 4435 011e 0022 movs r2, #0 4436 0120 E254 strb r2, [r4, r3] 2010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4437 .loc 1 2010 7 view .LVU1439 2019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4438 .loc 1 2019 7 view .LVU1440 4439 0122 0121 movs r1, #1 4440 0124 2000 movs r0, r4 4441 0126 FFF7FEFF bl I2C_Enable_IRQ 4442 .LVL307: 4443 .L277: 2022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4444 .loc 1 2022 5 view .LVU1441 2022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4445 .loc 1 2022 12 is_stmt 0 view .LVU1442 4446 012a 0020 movs r0, #0 4447 012c 00E0 b .L270 4448 .LVL308: 4449 .L278: ARM GAS /tmp/ccuRhBPx.s page 229 2026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4450 .loc 1 2026 12 view .LVU1443 4451 012e 0220 movs r0, #2 4452 .LVL309: 4453 .L270: 2028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4454 .loc 1 2028 1 view .LVU1444 4455 0130 03B0 add sp, sp, #12 4456 @ sp needed 4457 .LVL310: 4458 .LVL311: 4459 .LVL312: 2028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4460 .loc 1 2028 1 view .LVU1445 4461 0132 F0BD pop {r4, r5, r6, r7, pc} 4462 .LVL313: 4463 .L279: 1903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4464 .loc 1 1903 14 view .LVU1446 4465 0134 0220 movs r0, #2 4466 .LVL314: 1903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4467 .loc 1 1903 14 view .LVU1447 4468 0136 FBE7 b .L270 4469 .LVL315: 4470 .L280: 1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4471 .loc 1 1907 5 discriminator 1 view .LVU1448 4472 0138 0220 movs r0, #2 4473 .LVL316: 1907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4474 .loc 1 1907 5 discriminator 1 view .LVU1449 4475 013a F9E7 b .L270 4476 .L284: 4477 .align 2 4478 .L283: 4479 013c 0000FFFF .word -65536 4480 0140 00000000 .word I2C_Master_ISR_DMA 4481 0144 00000000 .word I2C_DMAMasterTransmitCplt 4482 0148 00000000 .word I2C_DMAError 4483 014c 00200080 .word -2147475456 4484 0150 00000000 .word I2C_Master_ISR_IT 4485 .cfi_endproc 4486 .LFE52: 4488 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits 4489 .align 1 4490 .global HAL_I2C_Master_Receive_DMA 4491 .syntax unified 4492 .code 16 4493 .thumb_func 4495 HAL_I2C_Master_Receive_DMA: 4496 .LVL317: 4497 .LFB53: 2042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 4498 .loc 1 2042 1 is_stmt 1 view -0 4499 .cfi_startproc 4500 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccuRhBPx.s page 230 4501 @ frame_needed = 0, uses_anonymous_args = 0 2042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 4502 .loc 1 2042 1 is_stmt 0 view .LVU1451 4503 0000 70B5 push {r4, r5, r6, lr} 4504 .cfi_def_cfa_offset 16 4505 .cfi_offset 4, -16 4506 .cfi_offset 5, -12 4507 .cfi_offset 6, -8 4508 .cfi_offset 14, -4 4509 0002 82B0 sub sp, sp, #8 4510 .cfi_def_cfa_offset 24 4511 0004 0400 movs r4, r0 4512 0006 0D00 movs r5, r1 2043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4513 .loc 1 2043 3 is_stmt 1 view .LVU1452 2044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4514 .loc 1 2044 3 view .LVU1453 2046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4515 .loc 1 2046 3 view .LVU1454 2046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4516 .loc 1 2046 11 is_stmt 0 view .LVU1455 4517 0008 4121 movs r1, #65 4518 .LVL318: 2046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4519 .loc 1 2046 11 view .LVU1456 4520 000a 415C ldrb r1, [r0, r1] 2046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4521 .loc 1 2046 6 view .LVU1457 4522 000c 2029 cmp r1, #32 4523 000e 00D0 beq .LCB4253 4524 0010 8BE0 b .L294 @long jump 4525 .LCB4253: 2048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4526 .loc 1 2048 5 is_stmt 1 view .LVU1458 2048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4527 .loc 1 2048 9 is_stmt 0 view .LVU1459 4528 0012 0168 ldr r1, [r0] 4529 0014 8969 ldr r1, [r1, #24] 2048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4530 .loc 1 2048 8 view .LVU1460 4531 0016 0904 lsls r1, r1, #16 4532 0018 00D5 bpl .LCB4260 4533 001a 89E0 b .L295 @long jump 4534 .LCB4260: 2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4535 .loc 1 2054 5 is_stmt 1 view .LVU1461 2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4536 .loc 1 2054 5 view .LVU1462 4537 001c 4021 movs r1, #64 4538 001e 415C ldrb r1, [r0, r1] 4539 0020 0129 cmp r1, #1 4540 0022 00D1 bne .LCB4266 4541 0024 86E0 b .L296 @long jump 4542 .LCB4266: 2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4543 .loc 1 2054 5 discriminator 2 view .LVU1463 4544 0026 4021 movs r1, #64 ARM GAS /tmp/ccuRhBPx.s page 231 4545 0028 0120 movs r0, #1 4546 .LVL319: 2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4547 .loc 1 2054 5 is_stmt 0 discriminator 2 view .LVU1464 4548 002a 6054 strb r0, [r4, r1] 2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4549 .loc 1 2054 5 is_stmt 1 discriminator 2 view .LVU1465 2056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4550 .loc 1 2056 5 view .LVU1466 2056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4551 .loc 1 2056 23 is_stmt 0 view .LVU1467 4552 002c 0131 adds r1, r1, #1 4553 002e 2130 adds r0, r0, #33 4554 0030 6054 strb r0, [r4, r1] 2057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4555 .loc 1 2057 5 is_stmt 1 view .LVU1468 2057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4556 .loc 1 2057 23 is_stmt 0 view .LVU1469 4557 0032 0131 adds r1, r1, #1 4558 0034 1238 subs r0, r0, #18 4559 0036 6054 strb r0, [r4, r1] 2058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4560 .loc 1 2058 5 is_stmt 1 view .LVU1470 2058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4561 .loc 1 2058 23 is_stmt 0 view .LVU1471 4562 0038 0021 movs r1, #0 4563 003a 6164 str r1, [r4, #68] 2061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4564 .loc 1 2061 5 is_stmt 1 view .LVU1472 2061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4565 .loc 1 2061 23 is_stmt 0 view .LVU1473 4566 003c 6262 str r2, [r4, #36] 2062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4567 .loc 1 2062 5 is_stmt 1 view .LVU1474 2062:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4568 .loc 1 2062 23 is_stmt 0 view .LVU1475 4569 003e 6385 strh r3, [r4, #42] 2063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4570 .loc 1 2063 5 is_stmt 1 view .LVU1476 2063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4571 .loc 1 2063 23 is_stmt 0 view .LVU1477 4572 0040 3D4B ldr r3, .L299 4573 .LVL320: 2063:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4574 .loc 1 2063 23 view .LVU1478 4575 0042 E362 str r3, [r4, #44] 4576 .LVL321: 2064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4577 .loc 1 2064 5 is_stmt 1 view .LVU1479 2064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4578 .loc 1 2064 23 is_stmt 0 view .LVU1480 4579 0044 3D4B ldr r3, .L299+4 4580 0046 6363 str r3, [r4, #52] 2066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4581 .loc 1 2066 5 is_stmt 1 view .LVU1481 2066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4582 .loc 1 2066 13 is_stmt 0 view .LVU1482 ARM GAS /tmp/ccuRhBPx.s page 232 4583 0048 638D ldrh r3, [r4, #42] 4584 004a 9BB2 uxth r3, r3 2066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4585 .loc 1 2066 8 view .LVU1483 4586 004c FF2B cmp r3, #255 4587 004e 29D9 bls .L287 2068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4588 .loc 1 2068 7 is_stmt 1 view .LVU1484 2068:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4589 .loc 1 2068 22 is_stmt 0 view .LVU1485 4590 0050 FF23 movs r3, #255 4591 0052 2385 strh r3, [r4, #40] 2069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4592 .loc 1 2069 7 is_stmt 1 view .LVU1486 4593 .LVL322: 2069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4594 .loc 1 2069 16 is_stmt 0 view .LVU1487 4595 0054 8026 movs r6, #128 4596 0056 7604 lsls r6, r6, #17 4597 .LVL323: 4598 .L288: 2077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4599 .loc 1 2077 5 is_stmt 1 view .LVU1488 2077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4600 .loc 1 2077 13 is_stmt 0 view .LVU1489 4601 0058 218D ldrh r1, [r4, #40] 2077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4602 .loc 1 2077 8 view .LVU1490 4603 005a 0029 cmp r1, #0 4604 005c 51D0 beq .L289 2079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4605 .loc 1 2079 7 is_stmt 1 view .LVU1491 2079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4606 .loc 1 2079 15 is_stmt 0 view .LVU1492 4607 005e E36B ldr r3, [r4, #60] 2079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4608 .loc 1 2079 10 view .LVU1493 4609 0060 002B cmp r3, #0 4610 0062 24D0 beq .L290 2082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4611 .loc 1 2082 9 is_stmt 1 view .LVU1494 2082:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4612 .loc 1 2082 40 is_stmt 0 view .LVU1495 4613 0064 3649 ldr r1, .L299+8 4614 0066 9962 str r1, [r3, #40] 2085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4615 .loc 1 2085 9 is_stmt 1 view .LVU1496 2085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4616 .loc 1 2085 13 is_stmt 0 view .LVU1497 4617 0068 E36B ldr r3, [r4, #60] 2085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4618 .loc 1 2085 41 view .LVU1498 4619 006a 3649 ldr r1, .L299+12 4620 006c 1963 str r1, [r3, #48] 2088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4621 .loc 1 2088 9 is_stmt 1 view .LVU1499 2088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; ARM GAS /tmp/ccuRhBPx.s page 233 4622 .loc 1 2088 13 is_stmt 0 view .LVU1500 4623 006e E16B ldr r1, [r4, #60] 2088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4624 .loc 1 2088 44 view .LVU1501 4625 0070 0023 movs r3, #0 4626 0072 CB62 str r3, [r1, #44] 2089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4627 .loc 1 2089 9 is_stmt 1 view .LVU1502 2089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4628 .loc 1 2089 13 is_stmt 0 view .LVU1503 4629 0074 E16B ldr r1, [r4, #60] 2089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4630 .loc 1 2089 41 view .LVU1504 4631 0076 4B63 str r3, [r1, #52] 2092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4632 .loc 1 2092 9 is_stmt 1 view .LVU1505 2092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4633 .loc 1 2092 71 is_stmt 0 view .LVU1506 4634 0078 2168 ldr r1, [r4] 2092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4635 .loc 1 2092 66 view .LVU1507 4636 007a 2431 adds r1, r1, #36 2093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4637 .loc 1 2093 46 view .LVU1508 4638 007c 238D ldrh r3, [r4, #40] 2092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4639 .loc 1 2092 25 view .LVU1509 4640 007e E06B ldr r0, [r4, #60] 4641 0080 FFF7FEFF bl HAL_DMA_Start_IT 4642 .LVL324: 2110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4643 .loc 1 2110 7 is_stmt 1 view .LVU1510 2110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4644 .loc 1 2110 10 is_stmt 0 view .LVU1511 4645 0084 0028 cmp r0, #0 4646 0086 20D0 beq .L298 2134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4647 .loc 1 2134 9 is_stmt 1 view .LVU1512 2134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4648 .loc 1 2134 25 is_stmt 0 view .LVU1513 4649 0088 4123 movs r3, #65 4650 008a 2022 movs r2, #32 4651 008c E254 strb r2, [r4, r3] 2135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4652 .loc 1 2135 9 is_stmt 1 view .LVU1514 2135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4653 .loc 1 2135 25 is_stmt 0 view .LVU1515 4654 008e 0022 movs r2, #0 4655 0090 0133 adds r3, r3, #1 4656 0092 E254 strb r2, [r4, r3] 2138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4657 .loc 1 2138 9 is_stmt 1 view .LVU1516 2138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4658 .loc 1 2138 13 is_stmt 0 view .LVU1517 4659 0094 636C ldr r3, [r4, #68] 2138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4660 .loc 1 2138 25 view .LVU1518 ARM GAS /tmp/ccuRhBPx.s page 234 4661 0096 1021 movs r1, #16 4662 0098 0B43 orrs r3, r1 4663 009a 6364 str r3, [r4, #68] 2141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4664 .loc 1 2141 9 is_stmt 1 view .LVU1519 2141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4665 .loc 1 2141 9 view .LVU1520 4666 009c 4023 movs r3, #64 4667 009e E254 strb r2, [r4, r3] 2141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4668 .loc 1 2141 9 view .LVU1521 2143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4669 .loc 1 2143 9 view .LVU1522 2143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4670 .loc 1 2143 16 is_stmt 0 view .LVU1523 4671 00a0 0120 movs r0, #1 4672 .LVL325: 2143:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4673 .loc 1 2143 16 view .LVU1524 4674 00a2 43E0 b .L286 4675 .LVL326: 4676 .L287: 2073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4677 .loc 1 2073 7 is_stmt 1 view .LVU1525 2073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4678 .loc 1 2073 28 is_stmt 0 view .LVU1526 4679 00a4 638D ldrh r3, [r4, #42] 2073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4680 .loc 1 2073 22 view .LVU1527 4681 00a6 2385 strh r3, [r4, #40] 2074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4682 .loc 1 2074 7 is_stmt 1 view .LVU1528 4683 .LVL327: 2074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4684 .loc 1 2074 16 is_stmt 0 view .LVU1529 4685 00a8 8026 movs r6, #128 4686 00aa B604 lsls r6, r6, #18 4687 00ac D4E7 b .L288 4688 .LVL328: 4689 .L290: 2098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4690 .loc 1 2098 9 is_stmt 1 view .LVU1530 2098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4691 .loc 1 2098 25 is_stmt 0 view .LVU1531 4692 00ae 4123 movs r3, #65 4693 00b0 2022 movs r2, #32 4694 .LVL329: 2098:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4695 .loc 1 2098 25 view .LVU1532 4696 00b2 E254 strb r2, [r4, r3] 4697 .LVL330: 2099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4698 .loc 1 2099 9 is_stmt 1 view .LVU1533 2099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4699 .loc 1 2099 25 is_stmt 0 view .LVU1534 4700 00b4 0022 movs r2, #0 4701 00b6 0133 adds r3, r3, #1 ARM GAS /tmp/ccuRhBPx.s page 235 4702 00b8 E254 strb r2, [r4, r3] 2102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4703 .loc 1 2102 9 is_stmt 1 view .LVU1535 2102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4704 .loc 1 2102 13 is_stmt 0 view .LVU1536 4705 00ba 636C ldr r3, [r4, #68] 2102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4706 .loc 1 2102 25 view .LVU1537 4707 00bc 8021 movs r1, #128 4708 00be 0B43 orrs r3, r1 4709 00c0 6364 str r3, [r4, #68] 2105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4710 .loc 1 2105 9 is_stmt 1 view .LVU1538 2105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4711 .loc 1 2105 9 view .LVU1539 4712 00c2 4023 movs r3, #64 4713 00c4 E254 strb r2, [r4, r3] 2105:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4714 .loc 1 2105 9 view .LVU1540 2107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4715 .loc 1 2107 9 view .LVU1541 2107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4716 .loc 1 2107 16 is_stmt 0 view .LVU1542 4717 00c6 0120 movs r0, #1 4718 00c8 30E0 b .L286 4719 .LVL331: 4720 .L298: 2114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4721 .loc 1 2114 9 is_stmt 1 view .LVU1543 2114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4722 .loc 1 2114 59 is_stmt 0 view .LVU1544 4723 00ca 228D ldrh r2, [r4, #40] 2114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4724 .loc 1 2114 9 view .LVU1545 4725 00cc D2B2 uxtb r2, r2 4726 00ce 1E4B ldr r3, .L299+16 4727 00d0 0093 str r3, [sp] 4728 00d2 3300 movs r3, r6 4729 00d4 2900 movs r1, r5 4730 00d6 2000 movs r0, r4 4731 .LVL332: 2114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4732 .loc 1 2114 9 view .LVU1546 4733 00d8 FFF7FEFF bl I2C_TransferConfig 4734 .LVL333: 2117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4735 .loc 1 2117 9 is_stmt 1 view .LVU1547 2117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4736 .loc 1 2117 13 is_stmt 0 view .LVU1548 4737 00dc 638D ldrh r3, [r4, #42] 2117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4738 .loc 1 2117 32 view .LVU1549 4739 00de 228D ldrh r2, [r4, #40] 2117:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4740 .loc 1 2117 25 view .LVU1550 4741 00e0 9B1A subs r3, r3, r2 4742 00e2 9BB2 uxth r3, r3 ARM GAS /tmp/ccuRhBPx.s page 236 4743 00e4 6385 strh r3, [r4, #42] 2120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4744 .loc 1 2120 9 is_stmt 1 view .LVU1551 2120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4745 .loc 1 2120 9 view .LVU1552 4746 00e6 4023 movs r3, #64 4747 00e8 0022 movs r2, #0 4748 00ea E254 strb r2, [r4, r3] 2120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4749 .loc 1 2120 9 view .LVU1553 2126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4750 .loc 1 2126 9 view .LVU1554 4751 00ec 1021 movs r1, #16 4752 00ee 2000 movs r0, r4 4753 00f0 FFF7FEFF bl I2C_Enable_IRQ 4754 .LVL334: 2129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4755 .loc 1 2129 9 view .LVU1555 2129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4756 .loc 1 2129 13 is_stmt 0 view .LVU1556 4757 00f4 2268 ldr r2, [r4] 2129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4758 .loc 1 2129 23 view .LVU1557 4759 00f6 1168 ldr r1, [r2] 2129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4760 .loc 1 2129 29 view .LVU1558 4761 00f8 8023 movs r3, #128 4762 00fa 1B02 lsls r3, r3, #8 4763 00fc 0B43 orrs r3, r1 4764 00fe 1360 str r3, [r2] 4765 0100 11E0 b .L293 4766 .LVL335: 4767 .L289: 2149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4768 .loc 1 2149 7 is_stmt 1 view .LVU1559 2149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4769 .loc 1 2149 21 is_stmt 0 view .LVU1560 4770 0102 124B ldr r3, .L299+20 4771 0104 6363 str r3, [r4, #52] 2153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4772 .loc 1 2153 7 is_stmt 1 view .LVU1561 4773 0106 8023 movs r3, #128 4774 0108 CAB2 uxtb r2, r1 4775 .LVL336: 2153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4776 .loc 1 2153 7 is_stmt 0 view .LVU1562 4777 010a 0F49 ldr r1, .L299+16 4778 010c 0091 str r1, [sp] 4779 .LVL337: 2153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4780 .loc 1 2153 7 view .LVU1563 4781 010e 9B04 lsls r3, r3, #18 4782 0110 2900 movs r1, r5 4783 0112 2000 movs r0, r4 4784 0114 FFF7FEFF bl I2C_TransferConfig 4785 .LVL338: 2157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 237 4786 .loc 1 2157 7 is_stmt 1 view .LVU1564 2157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4787 .loc 1 2157 7 view .LVU1565 4788 0118 4023 movs r3, #64 4789 011a 0022 movs r2, #0 4790 011c E254 strb r2, [r4, r3] 2157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4791 .loc 1 2157 7 view .LVU1566 2166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4792 .loc 1 2166 7 view .LVU1567 4793 011e 0121 movs r1, #1 4794 0120 2000 movs r0, r4 4795 0122 FFF7FEFF bl I2C_Enable_IRQ 4796 .LVL339: 4797 .L293: 2169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4798 .loc 1 2169 5 view .LVU1568 2169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4799 .loc 1 2169 12 is_stmt 0 view .LVU1569 4800 0126 0020 movs r0, #0 4801 0128 00E0 b .L286 4802 .LVL340: 4803 .L294: 2173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4804 .loc 1 2173 12 view .LVU1570 4805 012a 0220 movs r0, #2 4806 .LVL341: 4807 .L286: 2175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4808 .loc 1 2175 1 view .LVU1571 4809 012c 02B0 add sp, sp, #8 4810 @ sp needed 4811 .LVL342: 4812 .LVL343: 2175:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4813 .loc 1 2175 1 view .LVU1572 4814 012e 70BD pop {r4, r5, r6, pc} 4815 .LVL344: 4816 .L295: 2050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4817 .loc 1 2050 14 view .LVU1573 4818 0130 0220 movs r0, #2 4819 .LVL345: 2050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4820 .loc 1 2050 14 view .LVU1574 4821 0132 FBE7 b .L286 4822 .LVL346: 4823 .L296: 2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4824 .loc 1 2054 5 discriminator 1 view .LVU1575 4825 0134 0220 movs r0, #2 4826 .LVL347: 2054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4827 .loc 1 2054 5 discriminator 1 view .LVU1576 4828 0136 F9E7 b .L286 4829 .L300: 4830 .align 2 ARM GAS /tmp/ccuRhBPx.s page 238 4831 .L299: 4832 0138 0000FFFF .word -65536 4833 013c 00000000 .word I2C_Master_ISR_DMA 4834 0140 00000000 .word I2C_DMAMasterReceiveCplt 4835 0144 00000000 .word I2C_DMAError 4836 0148 00240080 .word -2147474432 4837 014c 00000000 .word I2C_Master_ISR_IT 4838 .cfi_endproc 4839 .LFE53: 4841 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits 4842 .align 1 4843 .global HAL_I2C_Slave_Transmit_DMA 4844 .syntax unified 4845 .code 16 4846 .thumb_func 4848 HAL_I2C_Slave_Transmit_DMA: 4849 .LVL348: 4850 .LFB54: 2186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4851 .loc 1 2186 1 is_stmt 1 view -0 4852 .cfi_startproc 4853 @ args = 0, pretend = 0, frame = 0 4854 @ frame_needed = 0, uses_anonymous_args = 0 2186:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4855 .loc 1 2186 1 is_stmt 0 view .LVU1578 4856 0000 10B5 push {r4, lr} 4857 .cfi_def_cfa_offset 8 4858 .cfi_offset 4, -8 4859 .cfi_offset 14, -4 4860 0002 0400 movs r4, r0 2187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4861 .loc 1 2187 3 is_stmt 1 view .LVU1579 2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4862 .loc 1 2189 3 view .LVU1580 2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4863 .loc 1 2189 11 is_stmt 0 view .LVU1581 4864 0004 4123 movs r3, #65 4865 0006 C35C ldrb r3, [r0, r3] 2189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4866 .loc 1 2189 6 view .LVU1582 4867 0008 202B cmp r3, #32 4868 000a 00D0 beq .LCB4562 4869 000c 8CE0 b .L311 @long jump 4870 .LCB4562: 2191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4871 .loc 1 2191 5 is_stmt 1 view .LVU1583 2191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4872 .loc 1 2191 8 is_stmt 0 view .LVU1584 4873 000e 0029 cmp r1, #0 4874 0010 46D0 beq .L303 2191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4875 .loc 1 2191 25 discriminator 1 view .LVU1585 4876 0012 002A cmp r2, #0 4877 0014 44D0 beq .L303 2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4878 .loc 1 2197 5 is_stmt 1 view .LVU1586 2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 239 4879 .loc 1 2197 5 view .LVU1587 4880 0016 4023 movs r3, #64 4881 0018 C35C ldrb r3, [r0, r3] 4882 001a 012B cmp r3, #1 4883 001c 00D1 bne .LCB4573 4884 001e 85E0 b .L312 @long jump 4885 .LCB4573: 2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4886 .loc 1 2197 5 discriminator 2 view .LVU1588 4887 0020 4023 movs r3, #64 4888 0022 0120 movs r0, #1 4889 .LVL349: 2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4890 .loc 1 2197 5 is_stmt 0 discriminator 2 view .LVU1589 4891 0024 E054 strb r0, [r4, r3] 2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4892 .loc 1 2197 5 is_stmt 1 discriminator 2 view .LVU1590 2199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4893 .loc 1 2199 5 view .LVU1591 2199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4894 .loc 1 2199 23 is_stmt 0 view .LVU1592 4895 0026 0133 adds r3, r3, #1 4896 0028 2030 adds r0, r0, #32 4897 002a E054 strb r0, [r4, r3] 2200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4898 .loc 1 2200 5 is_stmt 1 view .LVU1593 2200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4899 .loc 1 2200 23 is_stmt 0 view .LVU1594 4900 002c 0133 adds r3, r3, #1 4901 002e 0138 subs r0, r0, #1 4902 0030 E054 strb r0, [r4, r3] 2201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4903 .loc 1 2201 5 is_stmt 1 view .LVU1595 2201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4904 .loc 1 2201 23 is_stmt 0 view .LVU1596 4905 0032 0023 movs r3, #0 4906 0034 6364 str r3, [r4, #68] 2204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4907 .loc 1 2204 5 is_stmt 1 view .LVU1597 2204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 4908 .loc 1 2204 23 is_stmt 0 view .LVU1598 4909 0036 6162 str r1, [r4, #36] 2205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4910 .loc 1 2205 5 is_stmt 1 view .LVU1599 2205:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4911 .loc 1 2205 23 is_stmt 0 view .LVU1600 4912 0038 6285 strh r2, [r4, #42] 2206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4913 .loc 1 2206 5 is_stmt 1 view .LVU1601 2206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4914 .loc 1 2206 29 is_stmt 0 view .LVU1602 4915 003a 638D ldrh r3, [r4, #42] 2206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4916 .loc 1 2206 23 view .LVU1603 4917 003c 2385 strh r3, [r4, #40] 2207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4918 .loc 1 2207 5 is_stmt 1 view .LVU1604 ARM GAS /tmp/ccuRhBPx.s page 240 2207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4919 .loc 1 2207 23 is_stmt 0 view .LVU1605 4920 003e 3C4B ldr r3, .L316 4921 0040 E362 str r3, [r4, #44] 2208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4922 .loc 1 2208 5 is_stmt 1 view .LVU1606 2208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4923 .loc 1 2208 23 is_stmt 0 view .LVU1607 4924 0042 3C4B ldr r3, .L316+4 4925 0044 6363 str r3, [r4, #52] 2211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4926 .loc 1 2211 5 is_stmt 1 view .LVU1608 2211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4927 .loc 1 2211 19 is_stmt 0 view .LVU1609 4928 0046 226A ldr r2, [r4, #32] 4929 .LVL350: 2211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4930 .loc 1 2211 8 view .LVU1610 4931 0048 8023 movs r3, #128 4932 004a 9B02 lsls r3, r3, #10 4933 004c 9A42 cmp r2, r3 4934 004e 2CD0 beq .L314 4935 .L305: 2224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4936 .loc 1 2224 5 is_stmt 1 view .LVU1611 2224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4937 .loc 1 2224 13 is_stmt 0 view .LVU1612 4938 0050 638D ldrh r3, [r4, #42] 4939 0052 9BB2 uxth r3, r3 2224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4940 .loc 1 2224 8 view .LVU1613 4941 0054 002B cmp r3, #0 4942 0056 58D0 beq .L306 2226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4943 .loc 1 2226 7 is_stmt 1 view .LVU1614 2226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4944 .loc 1 2226 15 is_stmt 0 view .LVU1615 4945 0058 A36B ldr r3, [r4, #56] 2226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4946 .loc 1 2226 10 view .LVU1616 4947 005a 002B cmp r3, #0 4948 005c 33D0 beq .L307 2229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4949 .loc 1 2229 9 is_stmt 1 view .LVU1617 2229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4950 .loc 1 2229 40 is_stmt 0 view .LVU1618 4951 005e 364A ldr r2, .L316+8 4952 0060 9A62 str r2, [r3, #40] 2232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4953 .loc 1 2232 9 is_stmt 1 view .LVU1619 2232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4954 .loc 1 2232 13 is_stmt 0 view .LVU1620 4955 0062 A36B ldr r3, [r4, #56] 2232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4956 .loc 1 2232 41 view .LVU1621 4957 0064 354A ldr r2, .L316+12 4958 0066 1A63 str r2, [r3, #48] ARM GAS /tmp/ccuRhBPx.s page 241 2235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4959 .loc 1 2235 9 is_stmt 1 view .LVU1622 2235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4960 .loc 1 2235 13 is_stmt 0 view .LVU1623 4961 0068 A26B ldr r2, [r4, #56] 2235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4962 .loc 1 2235 44 view .LVU1624 4963 006a 0023 movs r3, #0 4964 006c D362 str r3, [r2, #44] 2236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4965 .loc 1 2236 9 is_stmt 1 view .LVU1625 2236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4966 .loc 1 2236 13 is_stmt 0 view .LVU1626 4967 006e A26B ldr r2, [r4, #56] 2236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4968 .loc 1 2236 41 view .LVU1627 4969 0070 5363 str r3, [r2, #52] 2239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4970 .loc 1 2239 9 is_stmt 1 view .LVU1628 2240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4971 .loc 1 2240 56 is_stmt 0 view .LVU1629 4972 0072 616A ldr r1, [r4, #36] 4973 .LVL351: 2240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4974 .loc 1 2240 83 view .LVU1630 4975 0074 2268 ldr r2, [r4] 2240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 4976 .loc 1 2240 78 view .LVU1631 4977 0076 2832 adds r2, r2, #40 2241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 4978 .loc 1 2241 46 view .LVU1632 4979 0078 238D ldrh r3, [r4, #40] 2239:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4980 .loc 1 2239 25 view .LVU1633 4981 007a A06B ldr r0, [r4, #56] 4982 007c FFF7FEFF bl HAL_DMA_Start_IT 4983 .LVL352: 2258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4984 .loc 1 2258 7 is_stmt 1 view .LVU1634 2258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 4985 .loc 1 2258 10 is_stmt 0 view .LVU1635 4986 0080 0028 cmp r0, #0 4987 0082 2ED0 beq .L315 2278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4988 .loc 1 2278 9 is_stmt 1 view .LVU1636 2278:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4989 .loc 1 2278 25 is_stmt 0 view .LVU1637 4990 0084 4123 movs r3, #65 4991 0086 2822 movs r2, #40 4992 0088 E254 strb r2, [r4, r3] 2279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4993 .loc 1 2279 9 is_stmt 1 view .LVU1638 2279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4994 .loc 1 2279 25 is_stmt 0 view .LVU1639 4995 008a 0022 movs r2, #0 4996 008c 0133 adds r3, r3, #1 4997 008e E254 strb r2, [r4, r3] ARM GAS /tmp/ccuRhBPx.s page 242 2282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4998 .loc 1 2282 9 is_stmt 1 view .LVU1640 2282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 4999 .loc 1 2282 13 is_stmt 0 view .LVU1641 5000 0090 636C ldr r3, [r4, #68] 2282:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5001 .loc 1 2282 25 view .LVU1642 5002 0092 1021 movs r1, #16 5003 0094 0B43 orrs r3, r1 5004 0096 6364 str r3, [r4, #68] 2285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5005 .loc 1 2285 9 is_stmt 1 view .LVU1643 2285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5006 .loc 1 2285 9 view .LVU1644 5007 0098 4023 movs r3, #64 5008 009a E254 strb r2, [r4, r3] 2285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5009 .loc 1 2285 9 view .LVU1645 2287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5010 .loc 1 2287 9 view .LVU1646 2287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5011 .loc 1 2287 16 is_stmt 0 view .LVU1647 5012 009c 0120 movs r0, #1 5013 .LVL353: 2287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5014 .loc 1 2287 16 view .LVU1648 5015 009e 44E0 b .L302 5016 .LVL354: 5017 .L303: 2193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5018 .loc 1 2193 7 is_stmt 1 view .LVU1649 2193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5019 .loc 1 2193 23 is_stmt 0 view .LVU1650 5020 00a0 8023 movs r3, #128 5021 00a2 9B00 lsls r3, r3, #2 5022 00a4 6364 str r3, [r4, #68] 2194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5023 .loc 1 2194 7 is_stmt 1 view .LVU1651 2194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5024 .loc 1 2194 15 is_stmt 0 view .LVU1652 5025 00a6 0120 movs r0, #1 5026 .LVL355: 2194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5027 .loc 1 2194 15 view .LVU1653 5028 00a8 3FE0 b .L302 5029 .LVL356: 5030 .L314: 2215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5031 .loc 1 2215 7 is_stmt 1 view .LVU1654 2215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5032 .loc 1 2215 11 is_stmt 0 view .LVU1655 5033 00aa 2368 ldr r3, [r4] 2215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5034 .loc 1 2215 30 view .LVU1656 5035 00ac 0A78 ldrb r2, [r1] 2215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5036 .loc 1 2215 28 view .LVU1657 ARM GAS /tmp/ccuRhBPx.s page 243 5037 00ae 9A62 str r2, [r3, #40] 2218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5038 .loc 1 2218 7 is_stmt 1 view .LVU1658 2218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5039 .loc 1 2218 11 is_stmt 0 view .LVU1659 5040 00b0 636A ldr r3, [r4, #36] 2218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5041 .loc 1 2218 21 view .LVU1660 5042 00b2 0133 adds r3, r3, #1 5043 00b4 6362 str r3, [r4, #36] 2220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 5044 .loc 1 2220 7 is_stmt 1 view .LVU1661 2220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 5045 .loc 1 2220 11 is_stmt 0 view .LVU1662 5046 00b6 638D ldrh r3, [r4, #42] 2220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 5047 .loc 1 2220 22 view .LVU1663 5048 00b8 013B subs r3, r3, #1 5049 00ba 9BB2 uxth r3, r3 5050 00bc 6385 strh r3, [r4, #42] 2221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5051 .loc 1 2221 7 is_stmt 1 view .LVU1664 2221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5052 .loc 1 2221 11 is_stmt 0 view .LVU1665 5053 00be 238D ldrh r3, [r4, #40] 2221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5054 .loc 1 2221 21 view .LVU1666 5055 00c0 013B subs r3, r3, #1 5056 00c2 2385 strh r3, [r4, #40] 5057 00c4 C4E7 b .L305 5058 .L307: 2246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5059 .loc 1 2246 9 is_stmt 1 view .LVU1667 2246:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5060 .loc 1 2246 25 is_stmt 0 view .LVU1668 5061 00c6 4123 movs r3, #65 5062 00c8 2822 movs r2, #40 5063 00ca E254 strb r2, [r4, r3] 2247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5064 .loc 1 2247 9 is_stmt 1 view .LVU1669 2247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5065 .loc 1 2247 25 is_stmt 0 view .LVU1670 5066 00cc 0022 movs r2, #0 5067 00ce 0133 adds r3, r3, #1 5068 00d0 E254 strb r2, [r4, r3] 2250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5069 .loc 1 2250 9 is_stmt 1 view .LVU1671 2250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5070 .loc 1 2250 13 is_stmt 0 view .LVU1672 5071 00d2 636C ldr r3, [r4, #68] 2250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5072 .loc 1 2250 25 view .LVU1673 5073 00d4 8021 movs r1, #128 5074 .LVL357: 2250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5075 .loc 1 2250 25 view .LVU1674 5076 00d6 0B43 orrs r3, r1 ARM GAS /tmp/ccuRhBPx.s page 244 5077 00d8 6364 str r3, [r4, #68] 2253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5078 .loc 1 2253 9 is_stmt 1 view .LVU1675 2253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5079 .loc 1 2253 9 view .LVU1676 5080 00da 4023 movs r3, #64 5081 00dc E254 strb r2, [r4, r3] 2253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5082 .loc 1 2253 9 view .LVU1677 2255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5083 .loc 1 2255 9 view .LVU1678 2255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5084 .loc 1 2255 16 is_stmt 0 view .LVU1679 5085 00de 0120 movs r0, #1 5086 00e0 23E0 b .L302 5087 .LVL358: 5088 .L315: 2261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5089 .loc 1 2261 9 is_stmt 1 view .LVU1680 2261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5090 .loc 1 2261 13 is_stmt 0 view .LVU1681 5091 00e2 2268 ldr r2, [r4] 2261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5092 .loc 1 2261 23 view .LVU1682 5093 00e4 5368 ldr r3, [r2, #4] 2261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5094 .loc 1 2261 29 view .LVU1683 5095 00e6 1649 ldr r1, .L316+16 5096 00e8 0B40 ands r3, r1 5097 00ea 5360 str r3, [r2, #4] 2264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5098 .loc 1 2264 9 is_stmt 1 view .LVU1684 2264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5099 .loc 1 2264 9 view .LVU1685 5100 00ec 4023 movs r3, #64 5101 00ee 0022 movs r2, #0 5102 00f0 E254 strb r2, [r4, r3] 2264:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5103 .loc 1 2264 9 view .LVU1686 2270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5104 .loc 1 2270 9 view .LVU1687 5105 00f2 8021 movs r1, #128 5106 00f4 0902 lsls r1, r1, #8 5107 00f6 2000 movs r0, r4 5108 .LVL359: 2270:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5109 .loc 1 2270 9 is_stmt 0 view .LVU1688 5110 00f8 FFF7FEFF bl I2C_Enable_IRQ 5111 .LVL360: 2273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5112 .loc 1 2273 9 is_stmt 1 view .LVU1689 2273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5113 .loc 1 2273 13 is_stmt 0 view .LVU1690 5114 00fc 2268 ldr r2, [r4] 2273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5115 .loc 1 2273 23 view .LVU1691 5116 00fe 1168 ldr r1, [r2] ARM GAS /tmp/ccuRhBPx.s page 245 2273:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5117 .loc 1 2273 29 view .LVU1692 5118 0100 8023 movs r3, #128 5119 0102 DB01 lsls r3, r3, #7 5120 0104 0B43 orrs r3, r1 5121 0106 1360 str r3, [r2] 5122 0108 0CE0 b .L310 5123 .LVL361: 5124 .L306: 2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5125 .loc 1 2293 7 is_stmt 1 view .LVU1693 2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5126 .loc 1 2293 11 is_stmt 0 view .LVU1694 5127 010a 2268 ldr r2, [r4] 2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5128 .loc 1 2293 21 view .LVU1695 5129 010c 5368 ldr r3, [r2, #4] 2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5130 .loc 1 2293 27 view .LVU1696 5131 010e 0C49 ldr r1, .L316+16 5132 .LVL362: 2293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5133 .loc 1 2293 27 view .LVU1697 5134 0110 0B40 ands r3, r1 5135 0112 5360 str r3, [r2, #4] 2296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5136 .loc 1 2296 7 is_stmt 1 view .LVU1698 2296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5137 .loc 1 2296 7 view .LVU1699 5138 0114 4023 movs r3, #64 5139 0116 0022 movs r2, #0 5140 0118 E254 strb r2, [r4, r3] 2296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5141 .loc 1 2296 7 view .LVU1700 2302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5142 .loc 1 2302 7 view .LVU1701 5143 011a 8021 movs r1, #128 5144 011c 0902 lsls r1, r1, #8 5145 011e 2000 movs r0, r4 5146 0120 FFF7FEFF bl I2C_Enable_IRQ 5147 .LVL363: 5148 .L310: 2305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5149 .loc 1 2305 5 view .LVU1702 2305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5150 .loc 1 2305 12 is_stmt 0 view .LVU1703 5151 0124 0020 movs r0, #0 5152 0126 00E0 b .L302 5153 .LVL364: 5154 .L311: 2309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5155 .loc 1 2309 12 view .LVU1704 5156 0128 0220 movs r0, #2 5157 .LVL365: 5158 .L302: 2311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5159 .loc 1 2311 1 view .LVU1705 ARM GAS /tmp/ccuRhBPx.s page 246 5160 @ sp needed 5161 .LVL366: 2311:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5162 .loc 1 2311 1 view .LVU1706 5163 012a 10BD pop {r4, pc} 5164 .LVL367: 5165 .L312: 2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5166 .loc 1 2197 5 discriminator 1 view .LVU1707 5167 012c 0220 movs r0, #2 5168 .LVL368: 2197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5169 .loc 1 2197 5 discriminator 1 view .LVU1708 5170 012e FCE7 b .L302 5171 .L317: 5172 .align 2 5173 .L316: 5174 0130 0000FFFF .word -65536 5175 0134 00000000 .word I2C_Slave_ISR_DMA 5176 0138 00000000 .word I2C_DMASlaveTransmitCplt 5177 013c 00000000 .word I2C_DMAError 5178 0140 FF7FFFFF .word -32769 5179 .cfi_endproc 5180 .LFE54: 5182 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits 5183 .align 1 5184 .global HAL_I2C_Slave_Receive_DMA 5185 .syntax unified 5186 .code 16 5187 .thumb_func 5189 HAL_I2C_Slave_Receive_DMA: 5190 .LVL369: 5191 .LFB55: 2322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 5192 .loc 1 2322 1 is_stmt 1 view -0 5193 .cfi_startproc 5194 @ args = 0, pretend = 0, frame = 0 5195 @ frame_needed = 0, uses_anonymous_args = 0 2322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 5196 .loc 1 2322 1 is_stmt 0 view .LVU1710 5197 0000 70B5 push {r4, r5, r6, lr} 5198 .cfi_def_cfa_offset 16 5199 .cfi_offset 4, -16 5200 .cfi_offset 5, -12 5201 .cfi_offset 6, -8 5202 .cfi_offset 14, -4 5203 0002 0400 movs r4, r0 5204 0004 0D00 movs r5, r1 2323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5205 .loc 1 2323 3 is_stmt 1 view .LVU1711 2325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5206 .loc 1 2325 3 view .LVU1712 2325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5207 .loc 1 2325 11 is_stmt 0 view .LVU1713 5208 0006 4123 movs r3, #65 5209 0008 C35C ldrb r3, [r0, r3] 2325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 247 5210 .loc 1 2325 6 view .LVU1714 5211 000a 202B cmp r3, #32 5212 000c 64D1 bne .L325 2327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5213 .loc 1 2327 5 is_stmt 1 view .LVU1715 2327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5214 .loc 1 2327 8 is_stmt 0 view .LVU1716 5215 000e 0029 cmp r1, #0 5216 0010 3CD0 beq .L320 2327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5217 .loc 1 2327 25 discriminator 1 view .LVU1717 5218 0012 002A cmp r2, #0 5219 0014 3AD0 beq .L320 2333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5220 .loc 1 2333 5 is_stmt 1 view .LVU1718 2333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5221 .loc 1 2333 5 view .LVU1719 5222 0016 4023 movs r3, #64 5223 0018 C35C ldrb r3, [r0, r3] 5224 001a 012B cmp r3, #1 5225 001c 5FD0 beq .L326 2333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5226 .loc 1 2333 5 discriminator 2 view .LVU1720 5227 001e 4023 movs r3, #64 5228 0020 0121 movs r1, #1 5229 .LVL370: 2333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5230 .loc 1 2333 5 is_stmt 0 discriminator 2 view .LVU1721 5231 0022 C154 strb r1, [r0, r3] 2333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5232 .loc 1 2333 5 is_stmt 1 discriminator 2 view .LVU1722 2335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 5233 .loc 1 2335 5 view .LVU1723 2335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 5234 .loc 1 2335 23 is_stmt 0 view .LVU1724 5235 0024 0133 adds r3, r3, #1 5236 0026 2131 adds r1, r1, #33 5237 0028 C154 strb r1, [r0, r3] 2336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5238 .loc 1 2336 5 is_stmt 1 view .LVU1725 2336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5239 .loc 1 2336 23 is_stmt 0 view .LVU1726 5240 002a 0133 adds r3, r3, #1 5241 002c 0239 subs r1, r1, #2 5242 002e C154 strb r1, [r0, r3] 2337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5243 .loc 1 2337 5 is_stmt 1 view .LVU1727 2337:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5244 .loc 1 2337 23 is_stmt 0 view .LVU1728 5245 0030 0023 movs r3, #0 5246 0032 4364 str r3, [r0, #68] 2340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 5247 .loc 1 2340 5 is_stmt 1 view .LVU1729 2340:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 5248 .loc 1 2340 23 is_stmt 0 view .LVU1730 5249 0034 4562 str r5, [r0, #36] 2341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; ARM GAS /tmp/ccuRhBPx.s page 248 5250 .loc 1 2341 5 is_stmt 1 view .LVU1731 2341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5251 .loc 1 2341 23 is_stmt 0 view .LVU1732 5252 0036 4285 strh r2, [r0, #42] 2342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5253 .loc 1 2342 5 is_stmt 1 view .LVU1733 2342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5254 .loc 1 2342 29 is_stmt 0 view .LVU1734 5255 0038 438D ldrh r3, [r0, #42] 2342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5256 .loc 1 2342 23 view .LVU1735 5257 003a 0385 strh r3, [r0, #40] 2343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 5258 .loc 1 2343 5 is_stmt 1 view .LVU1736 2343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 5259 .loc 1 2343 23 is_stmt 0 view .LVU1737 5260 003c 294B ldr r3, .L329 5261 003e C362 str r3, [r0, #44] 2344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5262 .loc 1 2344 5 is_stmt 1 view .LVU1738 2344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5263 .loc 1 2344 23 is_stmt 0 view .LVU1739 5264 0040 294B ldr r3, .L329+4 5265 0042 4363 str r3, [r0, #52] 2346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5266 .loc 1 2346 5 is_stmt 1 view .LVU1740 2346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5267 .loc 1 2346 13 is_stmt 0 view .LVU1741 5268 0044 C36B ldr r3, [r0, #60] 2346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5269 .loc 1 2346 8 view .LVU1742 5270 0046 002B cmp r3, #0 5271 0048 25D0 beq .L322 2349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5272 .loc 1 2349 7 is_stmt 1 view .LVU1743 2349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5273 .loc 1 2349 38 is_stmt 0 view .LVU1744 5274 004a 284A ldr r2, .L329+8 5275 .LVL371: 2349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5276 .loc 1 2349 38 view .LVU1745 5277 004c 9A62 str r2, [r3, #40] 2352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5278 .loc 1 2352 7 is_stmt 1 view .LVU1746 2352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5279 .loc 1 2352 11 is_stmt 0 view .LVU1747 5280 004e C36B ldr r3, [r0, #60] 2352:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5281 .loc 1 2352 39 view .LVU1748 5282 0050 274A ldr r2, .L329+12 5283 0052 1A63 str r2, [r3, #48] 2355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5284 .loc 1 2355 7 is_stmt 1 view .LVU1749 2355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5285 .loc 1 2355 11 is_stmt 0 view .LVU1750 5286 0054 C26B ldr r2, [r0, #60] 2355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; ARM GAS /tmp/ccuRhBPx.s page 249 5287 .loc 1 2355 42 view .LVU1751 5288 0056 0023 movs r3, #0 5289 0058 D362 str r3, [r2, #44] 2356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5290 .loc 1 2356 7 is_stmt 1 view .LVU1752 2356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5291 .loc 1 2356 11 is_stmt 0 view .LVU1753 5292 005a C26B ldr r2, [r0, #60] 2356:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5293 .loc 1 2356 39 view .LVU1754 5294 005c 5363 str r3, [r2, #52] 2359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 5295 .loc 1 2359 7 is_stmt 1 view .LVU1755 2359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 5296 .loc 1 2359 69 is_stmt 0 view .LVU1756 5297 005e 0168 ldr r1, [r0] 2359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 5298 .loc 1 2359 64 view .LVU1757 5299 0060 2431 adds r1, r1, #36 2360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5300 .loc 1 2360 44 view .LVU1758 5301 0062 038D ldrh r3, [r0, #40] 2359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 5302 .loc 1 2359 23 view .LVU1759 5303 0064 C06B ldr r0, [r0, #60] 5304 .LVL372: 2359:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 5305 .loc 1 2359 23 view .LVU1760 5306 0066 2A00 movs r2, r5 5307 0068 FFF7FEFF bl HAL_DMA_Start_IT 5308 .LVL373: 5309 006c 051E subs r5, r0, #0 5310 .LVL374: 2377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5311 .loc 1 2377 5 is_stmt 1 view .LVU1761 2377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5312 .loc 1 2377 8 is_stmt 0 view .LVU1762 5313 006e 20D0 beq .L328 2397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5314 .loc 1 2397 7 is_stmt 1 view .LVU1763 2397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5315 .loc 1 2397 23 is_stmt 0 view .LVU1764 5316 0070 4123 movs r3, #65 5317 0072 2822 movs r2, #40 5318 0074 E254 strb r2, [r4, r3] 2398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5319 .loc 1 2398 7 is_stmt 1 view .LVU1765 2398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5320 .loc 1 2398 23 is_stmt 0 view .LVU1766 5321 0076 0022 movs r2, #0 5322 0078 0133 adds r3, r3, #1 5323 007a E254 strb r2, [r4, r3] 2401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5324 .loc 1 2401 7 is_stmt 1 view .LVU1767 2401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5325 .loc 1 2401 11 is_stmt 0 view .LVU1768 5326 007c 636C ldr r3, [r4, #68] ARM GAS /tmp/ccuRhBPx.s page 250 2401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5327 .loc 1 2401 23 view .LVU1769 5328 007e 1021 movs r1, #16 5329 0080 0B43 orrs r3, r1 5330 0082 6364 str r3, [r4, #68] 2404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5331 .loc 1 2404 7 is_stmt 1 view .LVU1770 2404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5332 .loc 1 2404 7 view .LVU1771 5333 0084 4023 movs r3, #64 5334 0086 E254 strb r2, [r4, r3] 2404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5335 .loc 1 2404 7 view .LVU1772 2406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5336 .loc 1 2406 7 view .LVU1773 2406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5337 .loc 1 2406 14 is_stmt 0 view .LVU1774 5338 0088 0125 movs r5, #1 5339 008a 26E0 b .L319 5340 .LVL375: 5341 .L320: 2329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5342 .loc 1 2329 7 is_stmt 1 view .LVU1775 2329:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5343 .loc 1 2329 23 is_stmt 0 view .LVU1776 5344 008c 8023 movs r3, #128 5345 008e 9B00 lsls r3, r3, #2 5346 0090 6364 str r3, [r4, #68] 2330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5347 .loc 1 2330 7 is_stmt 1 view .LVU1777 2330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5348 .loc 1 2330 15 is_stmt 0 view .LVU1778 5349 0092 0125 movs r5, #1 5350 0094 21E0 b .L319 5351 .LVL376: 5352 .L322: 2365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5353 .loc 1 2365 7 is_stmt 1 view .LVU1779 2365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5354 .loc 1 2365 23 is_stmt 0 view .LVU1780 5355 0096 4123 movs r3, #65 5356 0098 2822 movs r2, #40 5357 .LVL377: 2365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5358 .loc 1 2365 23 view .LVU1781 5359 009a C254 strb r2, [r0, r3] 2366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5360 .loc 1 2366 7 is_stmt 1 view .LVU1782 2366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5361 .loc 1 2366 23 is_stmt 0 view .LVU1783 5362 009c 0022 movs r2, #0 5363 009e 0133 adds r3, r3, #1 5364 00a0 C254 strb r2, [r0, r3] 2369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5365 .loc 1 2369 7 is_stmt 1 view .LVU1784 2369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5366 .loc 1 2369 11 is_stmt 0 view .LVU1785 ARM GAS /tmp/ccuRhBPx.s page 251 5367 00a2 436C ldr r3, [r0, #68] 2369:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5368 .loc 1 2369 23 view .LVU1786 5369 00a4 8021 movs r1, #128 5370 00a6 0B43 orrs r3, r1 5371 00a8 4364 str r3, [r0, #68] 2372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5372 .loc 1 2372 7 is_stmt 1 view .LVU1787 2372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5373 .loc 1 2372 7 view .LVU1788 5374 00aa 4023 movs r3, #64 5375 00ac C254 strb r2, [r0, r3] 2372:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5376 .loc 1 2372 7 view .LVU1789 2374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5377 .loc 1 2374 7 view .LVU1790 2374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5378 .loc 1 2374 14 is_stmt 0 view .LVU1791 5379 00ae 0125 movs r5, #1 5380 .LVL378: 2374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5381 .loc 1 2374 14 view .LVU1792 5382 00b0 13E0 b .L319 5383 .LVL379: 5384 .L328: 2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5385 .loc 1 2380 7 is_stmt 1 view .LVU1793 2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5386 .loc 1 2380 11 is_stmt 0 view .LVU1794 5387 00b2 2268 ldr r2, [r4] 2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5388 .loc 1 2380 21 view .LVU1795 5389 00b4 5368 ldr r3, [r2, #4] 2380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5390 .loc 1 2380 27 view .LVU1796 5391 00b6 0F49 ldr r1, .L329+16 5392 00b8 0B40 ands r3, r1 5393 00ba 5360 str r3, [r2, #4] 2383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5394 .loc 1 2383 7 is_stmt 1 view .LVU1797 2383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5395 .loc 1 2383 7 view .LVU1798 5396 00bc 4023 movs r3, #64 5397 00be 0022 movs r2, #0 5398 00c0 E254 strb r2, [r4, r3] 2383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5399 .loc 1 2383 7 view .LVU1799 2389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5400 .loc 1 2389 7 view .LVU1800 5401 00c2 8026 movs r6, #128 5402 00c4 3602 lsls r6, r6, #8 5403 00c6 3100 movs r1, r6 5404 00c8 2000 movs r0, r4 5405 .LVL380: 2389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5406 .loc 1 2389 7 is_stmt 0 view .LVU1801 5407 00ca FFF7FEFF bl I2C_Enable_IRQ ARM GAS /tmp/ccuRhBPx.s page 252 5408 .LVL381: 2392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5409 .loc 1 2392 7 is_stmt 1 view .LVU1802 2392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5410 .loc 1 2392 11 is_stmt 0 view .LVU1803 5411 00ce 2368 ldr r3, [r4] 2392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5412 .loc 1 2392 21 view .LVU1804 5413 00d0 1A68 ldr r2, [r3] 2392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5414 .loc 1 2392 27 view .LVU1805 5415 00d2 1643 orrs r6, r2 5416 00d4 1E60 str r6, [r3] 2409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5417 .loc 1 2409 5 is_stmt 1 view .LVU1806 2409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5418 .loc 1 2409 12 is_stmt 0 view .LVU1807 5419 00d6 00E0 b .L319 5420 .LVL382: 5421 .L325: 2413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5422 .loc 1 2413 12 view .LVU1808 5423 00d8 0225 movs r5, #2 5424 .LVL383: 5425 .L319: 2415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5426 .loc 1 2415 1 view .LVU1809 5427 00da 2800 movs r0, r5 5428 @ sp needed 5429 .LVL384: 2415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5430 .loc 1 2415 1 view .LVU1810 5431 00dc 70BD pop {r4, r5, r6, pc} 5432 .LVL385: 5433 .L326: 2333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5434 .loc 1 2333 5 discriminator 1 view .LVU1811 5435 00de 0225 movs r5, #2 5436 00e0 FBE7 b .L319 5437 .L330: 5438 00e2 C046 .align 2 5439 .L329: 5440 00e4 0000FFFF .word -65536 5441 00e8 00000000 .word I2C_Slave_ISR_DMA 5442 00ec 00000000 .word I2C_DMASlaveReceiveCplt 5443 00f0 00000000 .word I2C_DMAError 5444 00f4 FF7FFFFF .word -32769 5445 .cfi_endproc 5446 .LFE55: 5448 .section .text.HAL_I2C_Mem_Write,"ax",%progbits 5449 .align 1 5450 .global HAL_I2C_Mem_Write 5451 .syntax unified 5452 .code 16 5453 .thumb_func 5455 HAL_I2C_Mem_Write: 5456 .LVL386: ARM GAS /tmp/ccuRhBPx.s page 253 5457 .LFB56: 2432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5458 .loc 1 2432 1 is_stmt 1 view -0 5459 .cfi_startproc 5460 @ args = 12, pretend = 0, frame = 16 5461 @ frame_needed = 0, uses_anonymous_args = 0 2432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5462 .loc 1 2432 1 is_stmt 0 view .LVU1813 5463 0000 F0B5 push {r4, r5, r6, r7, lr} 5464 .cfi_def_cfa_offset 20 5465 .cfi_offset 4, -20 5466 .cfi_offset 5, -16 5467 .cfi_offset 6, -12 5468 .cfi_offset 7, -8 5469 .cfi_offset 14, -4 5470 0002 87B0 sub sp, sp, #28 5471 .cfi_def_cfa_offset 48 5472 0004 0400 movs r4, r0 5473 0006 0391 str r1, [sp, #12] 5474 0008 0492 str r2, [sp, #16] 5475 000a 0593 str r3, [sp, #20] 5476 000c 0CAB add r3, sp, #48 5477 .LVL387: 2432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5478 .loc 1 2432 1 view .LVU1814 5479 000e 20CB ldmia r3!, {r5} 5480 .LVL388: 2432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5481 .loc 1 2432 1 view .LVU1815 5482 0010 1F88 ldrh r7, [r3] 2433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5483 .loc 1 2433 3 is_stmt 1 view .LVU1816 2436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5484 .loc 1 2436 3 view .LVU1817 2438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5485 .loc 1 2438 3 view .LVU1818 2438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5486 .loc 1 2438 11 is_stmt 0 view .LVU1819 5487 0012 4123 movs r3, #65 5488 .LVL389: 2438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5489 .loc 1 2438 11 view .LVU1820 5490 0014 C35C ldrb r3, [r0, r3] 2438:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5491 .loc 1 2438 6 view .LVU1821 5492 0016 202B cmp r3, #32 5493 0018 00D0 beq .LCB5120 5494 001a B3E0 b .L341 @long jump 5495 .LCB5120: 2440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5496 .loc 1 2440 5 is_stmt 1 view .LVU1822 2440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5497 .loc 1 2440 8 is_stmt 0 view .LVU1823 5498 001c 002D cmp r5, #0 5499 001e 18D0 beq .L333 2440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5500 .loc 1 2440 25 discriminator 1 view .LVU1824 ARM GAS /tmp/ccuRhBPx.s page 254 5501 0020 002F cmp r7, #0 5502 0022 16D0 beq .L333 2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5503 .loc 1 2447 5 is_stmt 1 view .LVU1825 2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5504 .loc 1 2447 5 view .LVU1826 5505 0024 4023 movs r3, #64 5506 0026 C35C ldrb r3, [r0, r3] 5507 0028 012B cmp r3, #1 5508 002a 00D1 bne .LCB5131 5509 002c ADE0 b .L342 @long jump 5510 .LCB5131: 2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5511 .loc 1 2447 5 discriminator 2 view .LVU1827 5512 002e 4023 movs r3, #64 5513 0030 0122 movs r2, #1 5514 .LVL390: 2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5515 .loc 1 2447 5 is_stmt 0 discriminator 2 view .LVU1828 5516 0032 C254 strb r2, [r0, r3] 2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5517 .loc 1 2447 5 is_stmt 1 discriminator 2 view .LVU1829 2450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5518 .loc 1 2450 5 view .LVU1830 2450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5519 .loc 1 2450 17 is_stmt 0 view .LVU1831 5520 0034 FFF7FEFF bl HAL_GetTick 5521 .LVL391: 2450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5522 .loc 1 2450 17 view .LVU1832 5523 0038 0600 movs r6, r0 5524 .LVL392: 2452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5525 .loc 1 2452 5 is_stmt 1 view .LVU1833 2452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5526 .loc 1 2452 9 is_stmt 0 view .LVU1834 5527 003a 8021 movs r1, #128 5528 003c 0090 str r0, [sp] 5529 003e 1923 movs r3, #25 5530 0040 0122 movs r2, #1 5531 0042 0902 lsls r1, r1, #8 5532 0044 2000 movs r0, r4 5533 .LVL393: 2452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5534 .loc 1 2452 9 view .LVU1835 5535 0046 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5536 .LVL394: 2452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5537 .loc 1 2452 8 discriminator 1 view .LVU1836 5538 004a 0028 cmp r0, #0 5539 004c 06D0 beq .L347 2454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5540 .loc 1 2454 14 view .LVU1837 5541 004e 0120 movs r0, #1 5542 0050 99E0 b .L332 5543 .LVL395: 5544 .L333: ARM GAS /tmp/ccuRhBPx.s page 255 2442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5545 .loc 1 2442 7 is_stmt 1 view .LVU1838 2442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5546 .loc 1 2442 23 is_stmt 0 view .LVU1839 5547 0052 8023 movs r3, #128 5548 0054 9B00 lsls r3, r3, #2 5549 0056 6364 str r3, [r4, #68] 2443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5550 .loc 1 2443 7 is_stmt 1 view .LVU1840 2443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5551 .loc 1 2443 15 is_stmt 0 view .LVU1841 5552 0058 0120 movs r0, #1 5553 .LVL396: 2443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5554 .loc 1 2443 15 view .LVU1842 5555 005a 94E0 b .L332 5556 .LVL397: 5557 .L347: 2457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5558 .loc 1 2457 5 is_stmt 1 view .LVU1843 2457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5559 .loc 1 2457 21 is_stmt 0 view .LVU1844 5560 005c 4123 movs r3, #65 5561 005e 2122 movs r2, #33 5562 0060 E254 strb r2, [r4, r3] 2458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5563 .loc 1 2458 5 is_stmt 1 view .LVU1845 2458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5564 .loc 1 2458 21 is_stmt 0 view .LVU1846 5565 0062 0133 adds r3, r3, #1 5566 0064 1F32 adds r2, r2, #31 5567 0066 E254 strb r2, [r4, r3] 2459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5568 .loc 1 2459 5 is_stmt 1 view .LVU1847 2459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5569 .loc 1 2459 21 is_stmt 0 view .LVU1848 5570 0068 0023 movs r3, #0 5571 006a 6364 str r3, [r4, #68] 2462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 5572 .loc 1 2462 5 is_stmt 1 view .LVU1849 2462:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 5573 .loc 1 2462 21 is_stmt 0 view .LVU1850 5574 006c 6562 str r5, [r4, #36] 2463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5575 .loc 1 2463 5 is_stmt 1 view .LVU1851 2463:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5576 .loc 1 2463 21 is_stmt 0 view .LVU1852 5577 006e 6785 strh r7, [r4, #42] 2464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5578 .loc 1 2464 5 is_stmt 1 view .LVU1853 2464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5579 .loc 1 2464 21 is_stmt 0 view .LVU1854 5580 0070 6363 str r3, [r4, #52] 2467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5581 .loc 1 2467 5 is_stmt 1 view .LVU1855 2467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5582 .loc 1 2467 9 is_stmt 0 view .LVU1856 ARM GAS /tmp/ccuRhBPx.s page 256 5583 0072 0196 str r6, [sp, #4] 5584 0074 0E9B ldr r3, [sp, #56] 5585 0076 0093 str r3, [sp] 5586 0078 059B ldr r3, [sp, #20] 5587 007a 049A ldr r2, [sp, #16] 5588 007c 0399 ldr r1, [sp, #12] 5589 007e 2000 movs r0, r4 5590 0080 FFF7FEFF bl I2C_RequestMemoryWrite 5591 .LVL398: 2467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5592 .loc 1 2467 8 discriminator 1 view .LVU1857 5593 0084 0028 cmp r0, #0 5594 0086 0FD1 bne .L348 2475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5595 .loc 1 2475 5 is_stmt 1 view .LVU1858 2475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5596 .loc 1 2475 13 is_stmt 0 view .LVU1859 5597 0088 638D ldrh r3, [r4, #42] 5598 008a 9BB2 uxth r3, r3 2475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5599 .loc 1 2475 8 view .LVU1860 5600 008c FF2B cmp r3, #255 5601 008e 10D9 bls .L336 2477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5602 .loc 1 2477 7 is_stmt 1 view .LVU1861 2477:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5603 .loc 1 2477 22 is_stmt 0 view .LVU1862 5604 0090 FF23 movs r3, #255 5605 0092 2385 strh r3, [r4, #40] 2478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5606 .loc 1 2478 7 is_stmt 1 view .LVU1863 5607 0094 7F3B subs r3, r3, #127 5608 0096 0022 movs r2, #0 5609 0098 0092 str r2, [sp] 5610 009a 5B04 lsls r3, r3, #17 5611 009c FF32 adds r2, r2, #255 5612 009e 0399 ldr r1, [sp, #12] 5613 00a0 2000 movs r0, r4 5614 00a2 FFF7FEFF bl I2C_TransferConfig 5615 .LVL399: 5616 00a6 21E0 b .L340 5617 .L348: 2470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5618 .loc 1 2470 7 view .LVU1864 2470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5619 .loc 1 2470 7 view .LVU1865 5620 00a8 4023 movs r3, #64 5621 00aa 0022 movs r2, #0 5622 00ac E254 strb r2, [r4, r3] 2470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5623 .loc 1 2470 7 view .LVU1866 2471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5624 .loc 1 2471 7 view .LVU1867 2471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5625 .loc 1 2471 14 is_stmt 0 view .LVU1868 5626 00ae 0120 movs r0, #1 5627 00b0 69E0 b .L332 ARM GAS /tmp/ccuRhBPx.s page 257 5628 .L336: 2482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5629 .loc 1 2482 7 is_stmt 1 view .LVU1869 2482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5630 .loc 1 2482 28 is_stmt 0 view .LVU1870 5631 00b2 628D ldrh r2, [r4, #42] 5632 00b4 92B2 uxth r2, r2 2482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5633 .loc 1 2482 22 view .LVU1871 5634 00b6 2285 strh r2, [r4, #40] 2483:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5635 .loc 1 2483 7 is_stmt 1 view .LVU1872 5636 00b8 8023 movs r3, #128 5637 00ba D2B2 uxtb r2, r2 5638 00bc 0021 movs r1, #0 5639 00be 0091 str r1, [sp] 5640 00c0 9B04 lsls r3, r3, #18 5641 00c2 0399 ldr r1, [sp, #12] 5642 00c4 2000 movs r0, r4 5643 00c6 FFF7FEFF bl I2C_TransferConfig 5644 .LVL400: 5645 00ca 0FE0 b .L340 5646 .L339: 2519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5647 .loc 1 2519 11 view .LVU1873 2519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5648 .loc 1 2519 32 is_stmt 0 view .LVU1874 5649 00cc 628D ldrh r2, [r4, #42] 5650 00ce 92B2 uxth r2, r2 2519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5651 .loc 1 2519 26 view .LVU1875 5652 00d0 2285 strh r2, [r4, #40] 2520:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5653 .loc 1 2520 11 is_stmt 1 view .LVU1876 5654 00d2 8023 movs r3, #128 5655 00d4 D2B2 uxtb r2, r2 5656 00d6 0021 movs r1, #0 5657 00d8 0091 str r1, [sp] 5658 00da 9B04 lsls r3, r3, #18 5659 00dc 0399 ldr r1, [sp, #12] 5660 00de 2000 movs r0, r4 5661 00e0 FFF7FEFF bl I2C_TransferConfig 5662 .LVL401: 5663 .L338: 2525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5664 .loc 1 2525 30 view .LVU1877 2525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5665 .loc 1 2525 18 is_stmt 0 view .LVU1878 5666 00e4 638D ldrh r3, [r4, #42] 5667 00e6 9BB2 uxth r3, r3 2525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5668 .loc 1 2525 30 view .LVU1879 5669 00e8 002B cmp r3, #0 5670 00ea 34D0 beq .L349 5671 .L340: 2486:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5672 .loc 1 2486 5 is_stmt 1 view .LVU1880 ARM GAS /tmp/ccuRhBPx.s page 258 2489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5673 .loc 1 2489 7 view .LVU1881 2489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5674 .loc 1 2489 11 is_stmt 0 view .LVU1882 5675 00ec 3200 movs r2, r6 5676 00ee 0E99 ldr r1, [sp, #56] 5677 00f0 2000 movs r0, r4 5678 00f2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 5679 .LVL402: 2489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5680 .loc 1 2489 10 discriminator 1 view .LVU1883 5681 00f6 0028 cmp r0, #0 5682 00f8 49D1 bne .L344 2495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5683 .loc 1 2495 7 is_stmt 1 view .LVU1884 2495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5684 .loc 1 2495 35 is_stmt 0 view .LVU1885 5685 00fa 626A ldr r2, [r4, #36] 2495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5686 .loc 1 2495 11 view .LVU1886 5687 00fc 2368 ldr r3, [r4] 2495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5688 .loc 1 2495 30 view .LVU1887 5689 00fe 1278 ldrb r2, [r2] 2495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5690 .loc 1 2495 28 view .LVU1888 5691 0100 9A62 str r2, [r3, #40] 2498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5692 .loc 1 2498 7 is_stmt 1 view .LVU1889 2498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5693 .loc 1 2498 11 is_stmt 0 view .LVU1890 5694 0102 636A ldr r3, [r4, #36] 2498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5695 .loc 1 2498 21 view .LVU1891 5696 0104 0133 adds r3, r3, #1 5697 0106 6362 str r3, [r4, #36] 2500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 5698 .loc 1 2500 7 is_stmt 1 view .LVU1892 2500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 5699 .loc 1 2500 11 is_stmt 0 view .LVU1893 5700 0108 638D ldrh r3, [r4, #42] 2500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 5701 .loc 1 2500 22 view .LVU1894 5702 010a 013B subs r3, r3, #1 5703 010c 9BB2 uxth r3, r3 5704 010e 6385 strh r3, [r4, #42] 2501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5705 .loc 1 2501 7 is_stmt 1 view .LVU1895 2501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5706 .loc 1 2501 11 is_stmt 0 view .LVU1896 5707 0110 238D ldrh r3, [r4, #40] 2501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5708 .loc 1 2501 21 view .LVU1897 5709 0112 013B subs r3, r3, #1 5710 0114 9BB2 uxth r3, r3 5711 0116 2385 strh r3, [r4, #40] 2503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 259 5712 .loc 1 2503 7 is_stmt 1 view .LVU1898 2503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5713 .loc 1 2503 16 is_stmt 0 view .LVU1899 5714 0118 628D ldrh r2, [r4, #42] 5715 011a 92B2 uxth r2, r2 2503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5716 .loc 1 2503 10 view .LVU1900 5717 011c 002A cmp r2, #0 5718 011e E1D0 beq .L338 2503:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5719 .loc 1 2503 35 discriminator 1 view .LVU1901 5720 0120 002B cmp r3, #0 5721 0122 DFD1 bne .L338 2506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5722 .loc 1 2506 9 is_stmt 1 view .LVU1902 2506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5723 .loc 1 2506 13 is_stmt 0 view .LVU1903 5724 0124 0096 str r6, [sp] 5725 0126 0E9B ldr r3, [sp, #56] 5726 0128 0022 movs r2, #0 5727 012a 8021 movs r1, #128 5728 012c 2000 movs r0, r4 5729 012e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5730 .LVL403: 2506:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5731 .loc 1 2506 12 discriminator 1 view .LVU1904 5732 0132 0028 cmp r0, #0 5733 0134 2DD1 bne .L345 2511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5734 .loc 1 2511 9 is_stmt 1 view .LVU1905 2511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5735 .loc 1 2511 17 is_stmt 0 view .LVU1906 5736 0136 638D ldrh r3, [r4, #42] 5737 0138 9BB2 uxth r3, r3 2511:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5738 .loc 1 2511 12 view .LVU1907 5739 013a FF2B cmp r3, #255 5740 013c C6D9 bls .L339 2513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5741 .loc 1 2513 11 is_stmt 1 view .LVU1908 2513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5742 .loc 1 2513 26 is_stmt 0 view .LVU1909 5743 013e FF23 movs r3, #255 5744 0140 2385 strh r3, [r4, #40] 2514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5745 .loc 1 2514 11 is_stmt 1 view .LVU1910 5746 0142 7F3B subs r3, r3, #127 5747 0144 0022 movs r2, #0 5748 0146 0092 str r2, [sp] 5749 0148 5B04 lsls r3, r3, #17 5750 014a FF32 adds r2, r2, #255 5751 014c 0399 ldr r1, [sp, #12] 5752 014e 2000 movs r0, r4 5753 0150 FFF7FEFF bl I2C_TransferConfig 5754 .LVL404: 5755 0154 C6E7 b .L338 5756 .L349: ARM GAS /tmp/ccuRhBPx.s page 260 2529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5757 .loc 1 2529 5 view .LVU1911 2529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5758 .loc 1 2529 9 is_stmt 0 view .LVU1912 5759 0156 3200 movs r2, r6 5760 0158 0E99 ldr r1, [sp, #56] 5761 015a 2000 movs r0, r4 5762 015c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5763 .LVL405: 2529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5764 .loc 1 2529 8 discriminator 1 view .LVU1913 5765 0160 0028 cmp r0, #0 5766 0162 18D1 bne .L346 2535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5767 .loc 1 2535 5 is_stmt 1 view .LVU1914 5768 0164 2368 ldr r3, [r4] 5769 0166 2022 movs r2, #32 5770 0168 DA61 str r2, [r3, #28] 2538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5771 .loc 1 2538 5 view .LVU1915 5772 016a 2168 ldr r1, [r4] 5773 016c 4B68 ldr r3, [r1, #4] 5774 016e 0B4D ldr r5, .L350 5775 0170 2B40 ands r3, r5 5776 0172 4B60 str r3, [r1, #4] 2540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5777 .loc 1 2540 5 view .LVU1916 2540:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5778 .loc 1 2540 17 is_stmt 0 view .LVU1917 5779 0174 4123 movs r3, #65 5780 0176 E254 strb r2, [r4, r3] 2541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5781 .loc 1 2541 5 is_stmt 1 view .LVU1918 2541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5782 .loc 1 2541 17 is_stmt 0 view .LVU1919 5783 0178 0023 movs r3, #0 5784 017a 2232 adds r2, r2, #34 5785 017c A354 strb r3, [r4, r2] 2544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5786 .loc 1 2544 5 is_stmt 1 view .LVU1920 2544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5787 .loc 1 2544 5 view .LVU1921 5788 017e 023A subs r2, r2, #2 5789 0180 A354 strb r3, [r4, r2] 2544:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5790 .loc 1 2544 5 view .LVU1922 2546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5791 .loc 1 2546 5 view .LVU1923 2546:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5792 .loc 1 2546 12 is_stmt 0 view .LVU1924 5793 0182 00E0 b .L332 5794 .LVL406: 5795 .L341: 2550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5796 .loc 1 2550 12 view .LVU1925 5797 0184 0220 movs r0, #2 5798 .LVL407: ARM GAS /tmp/ccuRhBPx.s page 261 5799 .L332: 2552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5800 .loc 1 2552 1 view .LVU1926 5801 0186 07B0 add sp, sp, #28 5802 @ sp needed 5803 .LVL408: 2552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5804 .loc 1 2552 1 view .LVU1927 5805 0188 F0BD pop {r4, r5, r6, r7, pc} 5806 .LVL409: 5807 .L342: 2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5808 .loc 1 2447 5 discriminator 1 view .LVU1928 5809 018a 0220 movs r0, #2 5810 .LVL410: 2447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5811 .loc 1 2447 5 discriminator 1 view .LVU1929 5812 018c FBE7 b .L332 5813 .LVL411: 5814 .L344: 2491:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5815 .loc 1 2491 16 view .LVU1930 5816 018e 0120 movs r0, #1 5817 0190 F9E7 b .L332 5818 .L345: 2508:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5819 .loc 1 2508 18 view .LVU1931 5820 0192 0120 movs r0, #1 5821 0194 F7E7 b .L332 5822 .L346: 2531:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5823 .loc 1 2531 14 view .LVU1932 5824 0196 0120 movs r0, #1 5825 0198 F5E7 b .L332 5826 .L351: 5827 019a C046 .align 2 5828 .L350: 5829 019c 00E800FE .word -33495040 5830 .cfi_endproc 5831 .LFE56: 5833 .section .text.HAL_I2C_Mem_Read,"ax",%progbits 5834 .align 1 5835 .global HAL_I2C_Mem_Read 5836 .syntax unified 5837 .code 16 5838 .thumb_func 5840 HAL_I2C_Mem_Read: 5841 .LVL412: 5842 .LFB57: 2569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5843 .loc 1 2569 1 is_stmt 1 view -0 5844 .cfi_startproc 5845 @ args = 12, pretend = 0, frame = 16 5846 @ frame_needed = 0, uses_anonymous_args = 0 2569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5847 .loc 1 2569 1 is_stmt 0 view .LVU1934 5848 0000 F0B5 push {r4, r5, r6, r7, lr} ARM GAS /tmp/ccuRhBPx.s page 262 5849 .cfi_def_cfa_offset 20 5850 .cfi_offset 4, -20 5851 .cfi_offset 5, -16 5852 .cfi_offset 6, -12 5853 .cfi_offset 7, -8 5854 .cfi_offset 14, -4 5855 0002 87B0 sub sp, sp, #28 5856 .cfi_def_cfa_offset 48 5857 0004 0400 movs r4, r0 5858 0006 0391 str r1, [sp, #12] 5859 0008 0492 str r2, [sp, #16] 5860 000a 0593 str r3, [sp, #20] 5861 000c 0CAB add r3, sp, #48 5862 .LVL413: 2569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5863 .loc 1 2569 1 view .LVU1935 5864 000e 20CB ldmia r3!, {r5} 5865 .LVL414: 2569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 5866 .loc 1 2569 1 view .LVU1936 5867 0010 1F88 ldrh r7, [r3] 2570:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5868 .loc 1 2570 3 is_stmt 1 view .LVU1937 2573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5869 .loc 1 2573 3 view .LVU1938 2575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5870 .loc 1 2575 3 view .LVU1939 2575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5871 .loc 1 2575 11 is_stmt 0 view .LVU1940 5872 0012 4123 movs r3, #65 5873 .LVL415: 2575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5874 .loc 1 2575 11 view .LVU1941 5875 0014 C35C ldrb r3, [r0, r3] 2575:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5876 .loc 1 2575 6 view .LVU1942 5877 0016 202B cmp r3, #32 5878 0018 00D0 beq .LCB5512 5879 001a B5E0 b .L362 @long jump 5880 .LCB5512: 2577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5881 .loc 1 2577 5 is_stmt 1 view .LVU1943 2577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5882 .loc 1 2577 8 is_stmt 0 view .LVU1944 5883 001c 002D cmp r5, #0 5884 001e 18D0 beq .L354 2577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5885 .loc 1 2577 25 discriminator 1 view .LVU1945 5886 0020 002F cmp r7, #0 5887 0022 16D0 beq .L354 2584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5888 .loc 1 2584 5 is_stmt 1 view .LVU1946 2584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5889 .loc 1 2584 5 view .LVU1947 5890 0024 4023 movs r3, #64 5891 0026 C35C ldrb r3, [r0, r3] 5892 0028 012B cmp r3, #1 ARM GAS /tmp/ccuRhBPx.s page 263 5893 002a 00D1 bne .LCB5523 5894 002c AFE0 b .L363 @long jump 5895 .LCB5523: 2584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5896 .loc 1 2584 5 discriminator 2 view .LVU1948 5897 002e 4023 movs r3, #64 5898 0030 0122 movs r2, #1 5899 .LVL416: 2584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5900 .loc 1 2584 5 is_stmt 0 discriminator 2 view .LVU1949 5901 0032 C254 strb r2, [r0, r3] 2584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5902 .loc 1 2584 5 is_stmt 1 discriminator 2 view .LVU1950 2587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5903 .loc 1 2587 5 view .LVU1951 2587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5904 .loc 1 2587 17 is_stmt 0 view .LVU1952 5905 0034 FFF7FEFF bl HAL_GetTick 5906 .LVL417: 2587:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5907 .loc 1 2587 17 view .LVU1953 5908 0038 0600 movs r6, r0 5909 .LVL418: 2589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5910 .loc 1 2589 5 is_stmt 1 view .LVU1954 2589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5911 .loc 1 2589 9 is_stmt 0 view .LVU1955 5912 003a 8021 movs r1, #128 5913 003c 0090 str r0, [sp] 5914 003e 1923 movs r3, #25 5915 0040 0122 movs r2, #1 5916 0042 0902 lsls r1, r1, #8 5917 0044 2000 movs r0, r4 5918 .LVL419: 2589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5919 .loc 1 2589 9 view .LVU1956 5920 0046 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5921 .LVL420: 2589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5922 .loc 1 2589 8 discriminator 1 view .LVU1957 5923 004a 0028 cmp r0, #0 5924 004c 06D0 beq .L368 2591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5925 .loc 1 2591 14 view .LVU1958 5926 004e 0120 movs r0, #1 5927 0050 9BE0 b .L353 5928 .LVL421: 5929 .L354: 2579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5930 .loc 1 2579 7 is_stmt 1 view .LVU1959 2579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 5931 .loc 1 2579 23 is_stmt 0 view .LVU1960 5932 0052 8023 movs r3, #128 5933 0054 9B00 lsls r3, r3, #2 5934 0056 6364 str r3, [r4, #68] 2580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5935 .loc 1 2580 7 is_stmt 1 view .LVU1961 ARM GAS /tmp/ccuRhBPx.s page 264 2580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5936 .loc 1 2580 15 is_stmt 0 view .LVU1962 5937 0058 0120 movs r0, #1 5938 .LVL422: 2580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 5939 .loc 1 2580 15 view .LVU1963 5940 005a 96E0 b .L353 5941 .LVL423: 5942 .L368: 2594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5943 .loc 1 2594 5 is_stmt 1 view .LVU1964 2594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5944 .loc 1 2594 21 is_stmt 0 view .LVU1965 5945 005c 4123 movs r3, #65 5946 005e 2222 movs r2, #34 5947 0060 E254 strb r2, [r4, r3] 2595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5948 .loc 1 2595 5 is_stmt 1 view .LVU1966 2595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5949 .loc 1 2595 21 is_stmt 0 view .LVU1967 5950 0062 0133 adds r3, r3, #1 5951 0064 1E32 adds r2, r2, #30 5952 0066 E254 strb r2, [r4, r3] 2596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5953 .loc 1 2596 5 is_stmt 1 view .LVU1968 2596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5954 .loc 1 2596 21 is_stmt 0 view .LVU1969 5955 0068 0023 movs r3, #0 5956 006a 6364 str r3, [r4, #68] 2599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 5957 .loc 1 2599 5 is_stmt 1 view .LVU1970 2599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 5958 .loc 1 2599 21 is_stmt 0 view .LVU1971 5959 006c 6562 str r5, [r4, #36] 2600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5960 .loc 1 2600 5 is_stmt 1 view .LVU1972 2600:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 5961 .loc 1 2600 21 is_stmt 0 view .LVU1973 5962 006e 6785 strh r7, [r4, #42] 2601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5963 .loc 1 2601 5 is_stmt 1 view .LVU1974 2601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 5964 .loc 1 2601 21 is_stmt 0 view .LVU1975 5965 0070 6363 str r3, [r4, #52] 2604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5966 .loc 1 2604 5 is_stmt 1 view .LVU1976 2604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5967 .loc 1 2604 9 is_stmt 0 view .LVU1977 5968 0072 0196 str r6, [sp, #4] 5969 0074 0E9B ldr r3, [sp, #56] 5970 0076 0093 str r3, [sp] 5971 0078 059B ldr r3, [sp, #20] 5972 007a 049A ldr r2, [sp, #16] 5973 007c 0399 ldr r1, [sp, #12] 5974 007e 2000 movs r0, r4 5975 0080 FFF7FEFF bl I2C_RequestMemoryRead 5976 .LVL424: ARM GAS /tmp/ccuRhBPx.s page 265 2604:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5977 .loc 1 2604 8 discriminator 1 view .LVU1978 5978 0084 0028 cmp r0, #0 5979 0086 0FD1 bne .L369 2613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5980 .loc 1 2613 5 is_stmt 1 view .LVU1979 2613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5981 .loc 1 2613 13 is_stmt 0 view .LVU1980 5982 0088 638D ldrh r3, [r4, #42] 5983 008a 9BB2 uxth r3, r3 2613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 5984 .loc 1 2613 8 view .LVU1981 5985 008c FF2B cmp r3, #255 5986 008e 10D9 bls .L357 2615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5987 .loc 1 2615 7 is_stmt 1 view .LVU1982 2615:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5988 .loc 1 2615 22 is_stmt 0 view .LVU1983 5989 0090 FF23 movs r3, #255 5990 0092 2385 strh r3, [r4, #40] 2616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5991 .loc 1 2616 7 is_stmt 1 view .LVU1984 5992 0094 7F3B subs r3, r3, #127 5993 0096 424A ldr r2, .L371 5994 0098 0092 str r2, [sp] 5995 009a 5B04 lsls r3, r3, #17 5996 009c FF22 movs r2, #255 5997 009e 0399 ldr r1, [sp, #12] 5998 00a0 2000 movs r0, r4 5999 00a2 FFF7FEFF bl I2C_TransferConfig 6000 .LVL425: 6001 00a6 21E0 b .L361 6002 .L369: 2607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6003 .loc 1 2607 7 view .LVU1985 2607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6004 .loc 1 2607 7 view .LVU1986 6005 00a8 4023 movs r3, #64 6006 00aa 0022 movs r2, #0 6007 00ac E254 strb r2, [r4, r3] 2607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6008 .loc 1 2607 7 view .LVU1987 2608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6009 .loc 1 2608 7 view .LVU1988 2608:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6010 .loc 1 2608 14 is_stmt 0 view .LVU1989 6011 00ae 0120 movs r0, #1 6012 00b0 6BE0 b .L353 6013 .L357: 2621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 6014 .loc 1 2621 7 is_stmt 1 view .LVU1990 2621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 6015 .loc 1 2621 28 is_stmt 0 view .LVU1991 6016 00b2 628D ldrh r2, [r4, #42] 6017 00b4 92B2 uxth r2, r2 2621:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 6018 .loc 1 2621 22 view .LVU1992 ARM GAS /tmp/ccuRhBPx.s page 266 6019 00b6 2285 strh r2, [r4, #40] 2622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 6020 .loc 1 2622 7 is_stmt 1 view .LVU1993 6021 00b8 8023 movs r3, #128 6022 00ba D2B2 uxtb r2, r2 6023 00bc 3849 ldr r1, .L371 6024 00be 0091 str r1, [sp] 6025 00c0 9B04 lsls r3, r3, #18 6026 00c2 0399 ldr r1, [sp, #12] 6027 00c4 2000 movs r0, r4 6028 00c6 FFF7FEFF bl I2C_TransferConfig 6029 .LVL426: 6030 00ca 0FE0 b .L361 6031 .L360: 2659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 6032 .loc 1 2659 11 view .LVU1994 2659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 6033 .loc 1 2659 32 is_stmt 0 view .LVU1995 6034 00cc 628D ldrh r2, [r4, #42] 6035 00ce 92B2 uxth r2, r2 2659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 6036 .loc 1 2659 26 view .LVU1996 6037 00d0 2285 strh r2, [r4, #40] 2660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 6038 .loc 1 2660 11 is_stmt 1 view .LVU1997 6039 00d2 8023 movs r3, #128 6040 00d4 D2B2 uxtb r2, r2 6041 00d6 0021 movs r1, #0 6042 00d8 0091 str r1, [sp] 6043 00da 9B04 lsls r3, r3, #18 6044 00dc 0399 ldr r1, [sp, #12] 6045 00de 2000 movs r0, r4 6046 00e0 FFF7FEFF bl I2C_TransferConfig 6047 .LVL427: 6048 .L359: 2664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6049 .loc 1 2664 30 view .LVU1998 2664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6050 .loc 1 2664 18 is_stmt 0 view .LVU1999 6051 00e4 638D ldrh r3, [r4, #42] 6052 00e6 9BB2 uxth r3, r3 2664:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6053 .loc 1 2664 30 view .LVU2000 6054 00e8 002B cmp r3, #0 6055 00ea 36D0 beq .L370 6056 .L361: 2626:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6057 .loc 1 2626 5 is_stmt 1 view .LVU2001 2629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6058 .loc 1 2629 7 view .LVU2002 2629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6059 .loc 1 2629 11 is_stmt 0 view .LVU2003 6060 00ec 0096 str r6, [sp] 6061 00ee 0E9B ldr r3, [sp, #56] 6062 00f0 0022 movs r2, #0 6063 00f2 0421 movs r1, #4 6064 00f4 2000 movs r0, r4 ARM GAS /tmp/ccuRhBPx.s page 267 6065 00f6 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 6066 .LVL428: 2629:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6067 .loc 1 2629 10 discriminator 1 view .LVU2004 6068 00fa 0028 cmp r0, #0 6069 00fc 49D1 bne .L365 2635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6070 .loc 1 2635 7 is_stmt 1 view .LVU2005 2635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6071 .loc 1 2635 38 is_stmt 0 view .LVU2006 6072 00fe 2368 ldr r3, [r4] 2635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6073 .loc 1 2635 48 view .LVU2007 6074 0100 5A6A ldr r2, [r3, #36] 2635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6075 .loc 1 2635 12 view .LVU2008 6076 0102 636A ldr r3, [r4, #36] 2635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6077 .loc 1 2635 23 view .LVU2009 6078 0104 1A70 strb r2, [r3] 2638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6079 .loc 1 2638 7 is_stmt 1 view .LVU2010 2638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6080 .loc 1 2638 11 is_stmt 0 view .LVU2011 6081 0106 636A ldr r3, [r4, #36] 2638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6082 .loc 1 2638 21 view .LVU2012 6083 0108 0133 adds r3, r3, #1 6084 010a 6362 str r3, [r4, #36] 2640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 6085 .loc 1 2640 7 is_stmt 1 view .LVU2013 2640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 6086 .loc 1 2640 11 is_stmt 0 view .LVU2014 6087 010c 238D ldrh r3, [r4, #40] 2640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 6088 .loc 1 2640 21 view .LVU2015 6089 010e 013B subs r3, r3, #1 6090 0110 9BB2 uxth r3, r3 6091 0112 2385 strh r3, [r4, #40] 2641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6092 .loc 1 2641 7 is_stmt 1 view .LVU2016 2641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6093 .loc 1 2641 11 is_stmt 0 view .LVU2017 6094 0114 628D ldrh r2, [r4, #42] 2641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6095 .loc 1 2641 22 view .LVU2018 6096 0116 013A subs r2, r2, #1 6097 0118 92B2 uxth r2, r2 6098 011a 6285 strh r2, [r4, #42] 2643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6099 .loc 1 2643 7 is_stmt 1 view .LVU2019 2643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6100 .loc 1 2643 16 is_stmt 0 view .LVU2020 6101 011c 628D ldrh r2, [r4, #42] 6102 011e 92B2 uxth r2, r2 2643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6103 .loc 1 2643 10 view .LVU2021 ARM GAS /tmp/ccuRhBPx.s page 268 6104 0120 002A cmp r2, #0 6105 0122 DFD0 beq .L359 2643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6106 .loc 1 2643 35 discriminator 1 view .LVU2022 6107 0124 002B cmp r3, #0 6108 0126 DDD1 bne .L359 2646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6109 .loc 1 2646 9 is_stmt 1 view .LVU2023 2646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6110 .loc 1 2646 13 is_stmt 0 view .LVU2024 6111 0128 0096 str r6, [sp] 6112 012a 0E9B ldr r3, [sp, #56] 6113 012c 0022 movs r2, #0 6114 012e 8021 movs r1, #128 6115 0130 2000 movs r0, r4 6116 0132 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 6117 .LVL429: 2646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6118 .loc 1 2646 12 discriminator 1 view .LVU2025 6119 0136 0028 cmp r0, #0 6120 0138 2DD1 bne .L366 2651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6121 .loc 1 2651 9 is_stmt 1 view .LVU2026 2651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6122 .loc 1 2651 17 is_stmt 0 view .LVU2027 6123 013a 638D ldrh r3, [r4, #42] 6124 013c 9BB2 uxth r3, r3 2651:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6125 .loc 1 2651 12 view .LVU2028 6126 013e FF2B cmp r3, #255 6127 0140 C4D9 bls .L360 2653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 6128 .loc 1 2653 11 is_stmt 1 view .LVU2029 2653:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 6129 .loc 1 2653 26 is_stmt 0 view .LVU2030 6130 0142 FF23 movs r3, #255 6131 0144 2385 strh r3, [r4, #40] 2654:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_NO_STARTSTOP); 6132 .loc 1 2654 11 is_stmt 1 view .LVU2031 6133 0146 7F3B subs r3, r3, #127 6134 0148 0022 movs r2, #0 6135 014a 0092 str r2, [sp] 6136 014c 5B04 lsls r3, r3, #17 6137 014e FF32 adds r2, r2, #255 6138 0150 0399 ldr r1, [sp, #12] 6139 0152 2000 movs r0, r4 6140 0154 FFF7FEFF bl I2C_TransferConfig 6141 .LVL430: 6142 0158 C4E7 b .L359 6143 .L370: 2668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6144 .loc 1 2668 5 view .LVU2032 2668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6145 .loc 1 2668 9 is_stmt 0 view .LVU2033 6146 015a 3200 movs r2, r6 6147 015c 0E99 ldr r1, [sp, #56] 6148 015e 2000 movs r0, r4 ARM GAS /tmp/ccuRhBPx.s page 269 6149 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 6150 .LVL431: 2668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6151 .loc 1 2668 8 discriminator 1 view .LVU2034 6152 0164 0028 cmp r0, #0 6153 0166 18D1 bne .L367 2674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6154 .loc 1 2674 5 is_stmt 1 view .LVU2035 6155 0168 2368 ldr r3, [r4] 6156 016a 2022 movs r2, #32 6157 016c DA61 str r2, [r3, #28] 2677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6158 .loc 1 2677 5 view .LVU2036 6159 016e 2168 ldr r1, [r4] 6160 0170 4B68 ldr r3, [r1, #4] 6161 0172 0C4D ldr r5, .L371+4 6162 0174 2B40 ands r3, r5 6163 0176 4B60 str r3, [r1, #4] 2679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6164 .loc 1 2679 5 view .LVU2037 2679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6165 .loc 1 2679 17 is_stmt 0 view .LVU2038 6166 0178 4123 movs r3, #65 6167 017a E254 strb r2, [r4, r3] 2680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6168 .loc 1 2680 5 is_stmt 1 view .LVU2039 2680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6169 .loc 1 2680 17 is_stmt 0 view .LVU2040 6170 017c 0023 movs r3, #0 6171 017e 2232 adds r2, r2, #34 6172 0180 A354 strb r3, [r4, r2] 2683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6173 .loc 1 2683 5 is_stmt 1 view .LVU2041 2683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6174 .loc 1 2683 5 view .LVU2042 6175 0182 023A subs r2, r2, #2 6176 0184 A354 strb r3, [r4, r2] 2683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6177 .loc 1 2683 5 view .LVU2043 2685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6178 .loc 1 2685 5 view .LVU2044 2685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6179 .loc 1 2685 12 is_stmt 0 view .LVU2045 6180 0186 00E0 b .L353 6181 .LVL432: 6182 .L362: 2689:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6183 .loc 1 2689 12 view .LVU2046 6184 0188 0220 movs r0, #2 6185 .LVL433: 6186 .L353: 2691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** 6187 .loc 1 2691 1 view .LVU2047 6188 018a 07B0 add sp, sp, #28 6189 @ sp needed 6190 .LVL434: 2691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /** ARM GAS /tmp/ccuRhBPx.s page 270 6191 .loc 1 2691 1 view .LVU2048 6192 018c F0BD pop {r4, r5, r6, r7, pc} 6193 .LVL435: 6194 .L363: 2584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6195 .loc 1 2584 5 discriminator 1 view .LVU2049 6196 018e 0220 movs r0, #2 6197 .LVL436: 2584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6198 .loc 1 2584 5 discriminator 1 view .LVU2050 6199 0190 FBE7 b .L353 6200 .LVL437: 6201 .L365: 2631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6202 .loc 1 2631 16 view .LVU2051 6203 0192 0120 movs r0, #1 6204 0194 F9E7 b .L353 6205 .L366: 2648:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6206 .loc 1 2648 18 view .LVU2052 6207 0196 0120 movs r0, #1 6208 0198 F7E7 b .L353 6209 .L367: 2670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6210 .loc 1 2670 14 view .LVU2053 6211 019a 0120 movs r0, #1 6212 019c F5E7 b .L353 6213 .L372: 6214 019e C046 .align 2 6215 .L371: 6216 01a0 00240080 .word -2147474432 6217 01a4 00E800FE .word -33495040 6218 .cfi_endproc 6219 .LFE57: 6221 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits 6222 .align 1 6223 .global HAL_I2C_Mem_Write_IT 6224 .syntax unified 6225 .code 16 6226 .thumb_func 6228 HAL_I2C_Mem_Write_IT: 6229 .LVL438: 6230 .LFB58: 2706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 6231 .loc 1 2706 1 is_stmt 1 view -0 6232 .cfi_startproc 6233 @ args = 8, pretend = 0, frame = 0 6234 @ frame_needed = 0, uses_anonymous_args = 0 2706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 6235 .loc 1 2706 1 is_stmt 0 view .LVU2055 6236 0000 F0B5 push {r4, r5, r6, r7, lr} 6237 .cfi_def_cfa_offset 20 6238 .cfi_offset 4, -20 6239 .cfi_offset 5, -16 6240 .cfi_offset 6, -12 6241 .cfi_offset 7, -8 6242 .cfi_offset 14, -4 ARM GAS /tmp/ccuRhBPx.s page 271 6243 0002 D646 mov lr, r10 6244 0004 4F46 mov r7, r9 6245 0006 4646 mov r6, r8 6246 0008 C0B5 push {r6, r7, lr} 6247 .cfi_def_cfa_offset 32 6248 .cfi_offset 8, -32 6249 .cfi_offset 9, -28 6250 .cfi_offset 10, -24 6251 000a 82B0 sub sp, sp, #8 6252 .cfi_def_cfa_offset 40 6253 000c 0400 movs r4, r0 6254 000e 0AA8 add r0, sp, #40 6255 .LVL439: 2706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 6256 .loc 1 2706 1 view .LVU2056 6257 0010 20C8 ldmia r0!, {r5} 6258 .LVL440: 2706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 6259 .loc 1 2706 1 view .LVU2057 6260 0012 0688 ldrh r6, [r0] 2708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6261 .loc 1 2708 3 is_stmt 1 view .LVU2058 2710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6262 .loc 1 2710 3 view .LVU2059 2710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6263 .loc 1 2710 11 is_stmt 0 view .LVU2060 6264 0014 4120 movs r0, #65 6265 .LVL441: 2710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6266 .loc 1 2710 11 view .LVU2061 6267 0016 205C ldrb r0, [r4, r0] 2710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6268 .loc 1 2710 6 view .LVU2062 6269 0018 2028 cmp r0, #32 6270 001a 48D1 bne .L379 2712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6271 .loc 1 2712 5 is_stmt 1 view .LVU2063 2712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6272 .loc 1 2712 8 is_stmt 0 view .LVU2064 6273 001c 002D cmp r5, #0 6274 001e 3AD0 beq .L375 2712:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6275 .loc 1 2712 25 discriminator 1 view .LVU2065 6276 0020 002E cmp r6, #0 6277 0022 38D0 beq .L375 2718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6278 .loc 1 2718 5 is_stmt 1 view .LVU2066 2718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6279 .loc 1 2718 9 is_stmt 0 view .LVU2067 6280 0024 2068 ldr r0, [r4] 6281 0026 8146 mov r9, r0 6282 0028 8069 ldr r0, [r0, #24] 2718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6283 .loc 1 2718 8 view .LVU2068 6284 002a 0004 lsls r0, r0, #16 6285 002c 46D4 bmi .L380 2724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 272 6286 .loc 1 2724 5 is_stmt 1 view .LVU2069 2724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6287 .loc 1 2724 5 view .LVU2070 6288 002e 4020 movs r0, #64 6289 0030 205C ldrb r0, [r4, r0] 6290 0032 0128 cmp r0, #1 6291 0034 44D0 beq .L381 2724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6292 .loc 1 2724 5 discriminator 2 view .LVU2071 6293 0036 4020 movs r0, #64 6294 0038 8246 mov r10, r0 6295 003a 3F38 subs r0, r0, #63 6296 003c 5746 mov r7, r10 6297 003e E055 strb r0, [r4, r7] 2724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6298 .loc 1 2724 5 discriminator 2 view .LVU2072 2726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6299 .loc 1 2726 5 view .LVU2073 2726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6300 .loc 1 2726 23 is_stmt 0 view .LVU2074 6301 0040 4030 adds r0, r0, #64 6302 0042 8446 mov ip, r0 6303 0044 2038 subs r0, r0, #32 6304 0046 8046 mov r8, r0 6305 0048 6046 mov r0, ip 6306 004a 4746 mov r7, r8 6307 004c 2754 strb r7, [r4, r0] 2727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6308 .loc 1 2727 5 is_stmt 1 view .LVU2075 2727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6309 .loc 1 2727 23 is_stmt 0 view .LVU2076 6310 004e 0130 adds r0, r0, #1 6311 0050 5746 mov r7, r10 6312 0052 2754 strb r7, [r4, r0] 2728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6313 .loc 1 2728 5 is_stmt 1 view .LVU2077 2728:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6314 .loc 1 2728 23 is_stmt 0 view .LVU2078 6315 0054 0020 movs r0, #0 6316 0056 6064 str r0, [r4, #68] 2731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 6317 .loc 1 2731 5 is_stmt 1 view .LVU2079 2731:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 6318 .loc 1 2731 23 is_stmt 0 view .LVU2080 6319 0058 6562 str r5, [r4, #36] 2732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6320 .loc 1 2732 5 is_stmt 1 view .LVU2081 2732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6321 .loc 1 2732 23 is_stmt 0 view .LVU2082 6322 005a 6685 strh r6, [r4, #42] 2733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6323 .loc 1 2733 5 is_stmt 1 view .LVU2083 2733:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6324 .loc 1 2733 23 is_stmt 0 view .LVU2084 6325 005c 1948 ldr r0, .L383 6326 005e E062 str r0, [r4, #44] 2734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; ARM GAS /tmp/ccuRhBPx.s page 273 6327 .loc 1 2734 5 is_stmt 1 view .LVU2085 2734:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6328 .loc 1 2734 23 is_stmt 0 view .LVU2086 6329 0060 1948 ldr r0, .L383+4 6330 0062 6063 str r0, [r4, #52] 2735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6331 .loc 1 2735 5 is_stmt 1 view .LVU2087 2735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6332 .loc 1 2735 23 is_stmt 0 view .LVU2088 6333 0064 E164 str r1, [r4, #76] 2738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6334 .loc 1 2738 5 is_stmt 1 view .LVU2089 2738:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6335 .loc 1 2738 8 is_stmt 0 view .LVU2090 6336 0066 012B cmp r3, #1 6337 0068 1AD0 beq .L382 2750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6338 .loc 1 2750 7 is_stmt 1 view .LVU2091 2750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6339 .loc 1 2750 30 is_stmt 0 view .LVU2092 6340 006a 100A lsrs r0, r2, #8 2750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6341 .loc 1 2750 28 view .LVU2093 6342 006c 4D46 mov r5, r9 6343 006e A862 str r0, [r5, #40] 2753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6344 .loc 1 2753 7 is_stmt 1 view .LVU2094 2753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6345 .loc 1 2753 26 is_stmt 0 view .LVU2095 6346 0070 D2B2 uxtb r2, r2 6347 .LVL442: 2753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6348 .loc 1 2753 24 view .LVU2096 6349 0072 2265 str r2, [r4, #80] 6350 .L378: 2756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6351 .loc 1 2756 5 is_stmt 1 view .LVU2097 6352 0074 8020 movs r0, #128 6353 0076 DAB2 uxtb r2, r3 6354 0078 144B ldr r3, .L383+8 6355 .LVL443: 2756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6356 .loc 1 2756 5 is_stmt 0 view .LVU2098 6357 007a 0093 str r3, [sp] 6358 007c 4304 lsls r3, r0, #17 6359 007e 2000 movs r0, r4 6360 0080 FFF7FEFF bl I2C_TransferConfig 6361 .LVL444: 2759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6362 .loc 1 2759 5 is_stmt 1 view .LVU2099 2759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6363 .loc 1 2759 5 view .LVU2100 6364 0084 4023 movs r3, #64 6365 0086 0022 movs r2, #0 6366 0088 E254 strb r2, [r4, r3] 2759:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6367 .loc 1 2759 5 view .LVU2101 ARM GAS /tmp/ccuRhBPx.s page 274 2769:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6368 .loc 1 2769 5 view .LVU2102 6369 008a 0121 movs r1, #1 6370 008c 2000 movs r0, r4 6371 008e FFF7FEFF bl I2C_Enable_IRQ 6372 .LVL445: 2771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6373 .loc 1 2771 5 view .LVU2103 2771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6374 .loc 1 2771 12 is_stmt 0 view .LVU2104 6375 0092 0020 movs r0, #0 6376 0094 0CE0 b .L374 6377 .LVL446: 6378 .L375: 2714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6379 .loc 1 2714 7 is_stmt 1 view .LVU2105 2714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6380 .loc 1 2714 23 is_stmt 0 view .LVU2106 6381 0096 8023 movs r3, #128 6382 .LVL447: 2714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6383 .loc 1 2714 23 view .LVU2107 6384 0098 9B00 lsls r3, r3, #2 6385 009a 6364 str r3, [r4, #68] 2715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6386 .loc 1 2715 7 is_stmt 1 view .LVU2108 2715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6387 .loc 1 2715 15 is_stmt 0 view .LVU2109 6388 009c 0120 movs r0, #1 6389 009e 07E0 b .L374 6390 .LVL448: 6391 .L382: 2741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6392 .loc 1 2741 7 is_stmt 1 view .LVU2110 2741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6393 .loc 1 2741 30 is_stmt 0 view .LVU2111 6394 00a0 D2B2 uxtb r2, r2 6395 .LVL449: 2741:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6396 .loc 1 2741 28 view .LVU2112 6397 00a2 4846 mov r0, r9 6398 00a4 8262 str r2, [r0, #40] 2744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6399 .loc 1 2744 7 is_stmt 1 view .LVU2113 2744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6400 .loc 1 2744 24 is_stmt 0 view .LVU2114 6401 00a6 0122 movs r2, #1 6402 00a8 5242 rsbs r2, r2, #0 6403 00aa 2265 str r2, [r4, #80] 6404 00ac E2E7 b .L378 6405 .LVL450: 6406 .L379: 2775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6407 .loc 1 2775 12 view .LVU2115 6408 00ae 0220 movs r0, #2 6409 .LVL451: 6410 .L374: ARM GAS /tmp/ccuRhBPx.s page 275 2777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6411 .loc 1 2777 1 view .LVU2116 6412 00b0 02B0 add sp, sp, #8 6413 @ sp needed 6414 .LVL452: 2777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6415 .loc 1 2777 1 view .LVU2117 6416 00b2 E0BC pop {r5, r6, r7} 6417 00b4 BA46 mov r10, r7 6418 00b6 B146 mov r9, r6 6419 00b8 A846 mov r8, r5 6420 00ba F0BD pop {r4, r5, r6, r7, pc} 6421 .LVL453: 6422 .L380: 2720:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6423 .loc 1 2720 14 view .LVU2118 6424 00bc 0220 movs r0, #2 6425 00be F7E7 b .L374 6426 .L381: 2724:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6427 .loc 1 2724 5 discriminator 1 view .LVU2119 6428 00c0 0220 movs r0, #2 6429 00c2 F5E7 b .L374 6430 .L384: 6431 .align 2 6432 .L383: 6433 00c4 0000FFFF .word -65536 6434 00c8 00000000 .word I2C_Mem_ISR_IT 6435 00cc 00200080 .word -2147475456 6436 .cfi_endproc 6437 .LFE58: 6439 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits 6440 .align 1 6441 .global HAL_I2C_Mem_Read_IT 6442 .syntax unified 6443 .code 16 6444 .thumb_func 6446 HAL_I2C_Mem_Read_IT: 6447 .LVL454: 6448 .LFB59: 2793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 6449 .loc 1 2793 1 is_stmt 1 view -0 6450 .cfi_startproc 6451 @ args = 8, pretend = 0, frame = 0 6452 @ frame_needed = 0, uses_anonymous_args = 0 2793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 6453 .loc 1 2793 1 is_stmt 0 view .LVU2121 6454 0000 F0B5 push {r4, r5, r6, r7, lr} 6455 .cfi_def_cfa_offset 20 6456 .cfi_offset 4, -20 6457 .cfi_offset 5, -16 6458 .cfi_offset 6, -12 6459 .cfi_offset 7, -8 6460 .cfi_offset 14, -4 6461 0002 D646 mov lr, r10 6462 0004 4F46 mov r7, r9 6463 0006 4646 mov r6, r8 ARM GAS /tmp/ccuRhBPx.s page 276 6464 0008 C0B5 push {r6, r7, lr} 6465 .cfi_def_cfa_offset 32 6466 .cfi_offset 8, -32 6467 .cfi_offset 9, -28 6468 .cfi_offset 10, -24 6469 000a 82B0 sub sp, sp, #8 6470 .cfi_def_cfa_offset 40 6471 000c 0400 movs r4, r0 6472 000e 0AA8 add r0, sp, #40 6473 .LVL455: 2793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 6474 .loc 1 2793 1 view .LVU2122 6475 0010 20C8 ldmia r0!, {r5} 6476 .LVL456: 2793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Check the parameters */ 6477 .loc 1 2793 1 view .LVU2123 6478 0012 0688 ldrh r6, [r0] 2795:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6479 .loc 1 2795 3 is_stmt 1 view .LVU2124 2797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6480 .loc 1 2797 3 view .LVU2125 2797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6481 .loc 1 2797 11 is_stmt 0 view .LVU2126 6482 0014 4120 movs r0, #65 6483 .LVL457: 2797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6484 .loc 1 2797 11 view .LVU2127 6485 0016 205C ldrb r0, [r4, r0] 2797:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6486 .loc 1 2797 6 view .LVU2128 6487 0018 2028 cmp r0, #32 6488 001a 47D1 bne .L391 2799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6489 .loc 1 2799 5 is_stmt 1 view .LVU2129 2799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6490 .loc 1 2799 8 is_stmt 0 view .LVU2130 6491 001c 002D cmp r5, #0 6492 001e 39D0 beq .L387 2799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6493 .loc 1 2799 25 discriminator 1 view .LVU2131 6494 0020 002E cmp r6, #0 6495 0022 37D0 beq .L387 2805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6496 .loc 1 2805 5 is_stmt 1 view .LVU2132 2805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6497 .loc 1 2805 9 is_stmt 0 view .LVU2133 6498 0024 2068 ldr r0, [r4] 6499 0026 8146 mov r9, r0 6500 0028 8069 ldr r0, [r0, #24] 2805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6501 .loc 1 2805 8 view .LVU2134 6502 002a 0004 lsls r0, r0, #16 6503 002c 45D4 bmi .L392 2811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6504 .loc 1 2811 5 is_stmt 1 view .LVU2135 2811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6505 .loc 1 2811 5 view .LVU2136 ARM GAS /tmp/ccuRhBPx.s page 277 6506 002e 4020 movs r0, #64 6507 0030 205C ldrb r0, [r4, r0] 6508 0032 0128 cmp r0, #1 6509 0034 43D0 beq .L393 2811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6510 .loc 1 2811 5 discriminator 2 view .LVU2137 6511 0036 4020 movs r0, #64 6512 0038 8246 mov r10, r0 6513 003a 3F38 subs r0, r0, #63 6514 003c 5746 mov r7, r10 6515 003e E055 strb r0, [r4, r7] 2811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6516 .loc 1 2811 5 discriminator 2 view .LVU2138 2813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6517 .loc 1 2813 5 view .LVU2139 2813:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6518 .loc 1 2813 23 is_stmt 0 view .LVU2140 6519 0040 4030 adds r0, r0, #64 6520 0042 8446 mov ip, r0 6521 0044 1F38 subs r0, r0, #31 6522 0046 8046 mov r8, r0 6523 0048 6046 mov r0, ip 6524 004a 4746 mov r7, r8 6525 004c 2754 strb r7, [r4, r0] 2814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6526 .loc 1 2814 5 is_stmt 1 view .LVU2141 2814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6527 .loc 1 2814 23 is_stmt 0 view .LVU2142 6528 004e 0130 adds r0, r0, #1 6529 0050 5746 mov r7, r10 6530 0052 2754 strb r7, [r4, r0] 2815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6531 .loc 1 2815 5 is_stmt 1 view .LVU2143 2815:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6532 .loc 1 2815 23 is_stmt 0 view .LVU2144 6533 0054 0020 movs r0, #0 6534 0056 6064 str r0, [r4, #68] 2818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 6535 .loc 1 2818 5 is_stmt 1 view .LVU2145 2818:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 6536 .loc 1 2818 23 is_stmt 0 view .LVU2146 6537 0058 6562 str r5, [r4, #36] 2819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6538 .loc 1 2819 5 is_stmt 1 view .LVU2147 2819:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6539 .loc 1 2819 23 is_stmt 0 view .LVU2148 6540 005a 6685 strh r6, [r4, #42] 2820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6541 .loc 1 2820 5 is_stmt 1 view .LVU2149 2820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6542 .loc 1 2820 23 is_stmt 0 view .LVU2150 6543 005c 1948 ldr r0, .L395 6544 005e E062 str r0, [r4, #44] 2821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6545 .loc 1 2821 5 is_stmt 1 view .LVU2151 2821:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6546 .loc 1 2821 23 is_stmt 0 view .LVU2152 ARM GAS /tmp/ccuRhBPx.s page 278 6547 0060 1948 ldr r0, .L395+4 6548 0062 6063 str r0, [r4, #52] 2822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6549 .loc 1 2822 5 is_stmt 1 view .LVU2153 2822:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6550 .loc 1 2822 23 is_stmt 0 view .LVU2154 6551 0064 E164 str r1, [r4, #76] 2825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6552 .loc 1 2825 5 is_stmt 1 view .LVU2155 2825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6553 .loc 1 2825 8 is_stmt 0 view .LVU2156 6554 0066 012B cmp r3, #1 6555 0068 19D0 beq .L394 2837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6556 .loc 1 2837 7 is_stmt 1 view .LVU2157 2837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6557 .loc 1 2837 30 is_stmt 0 view .LVU2158 6558 006a 100A lsrs r0, r2, #8 2837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6559 .loc 1 2837 28 view .LVU2159 6560 006c 4D46 mov r5, r9 6561 006e A862 str r0, [r5, #40] 2840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6562 .loc 1 2840 7 is_stmt 1 view .LVU2160 2840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6563 .loc 1 2840 26 is_stmt 0 view .LVU2161 6564 0070 D2B2 uxtb r2, r2 6565 .LVL458: 2840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6566 .loc 1 2840 24 view .LVU2162 6567 0072 2265 str r2, [r4, #80] 6568 .L390: 2843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6569 .loc 1 2843 5 is_stmt 1 view .LVU2163 6570 0074 DAB2 uxtb r2, r3 6571 0076 154B ldr r3, .L395+8 6572 .LVL459: 2843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6573 .loc 1 2843 5 is_stmt 0 view .LVU2164 6574 0078 0093 str r3, [sp] 6575 007a 0023 movs r3, #0 6576 007c 2000 movs r0, r4 6577 007e FFF7FEFF bl I2C_TransferConfig 6578 .LVL460: 2846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6579 .loc 1 2846 5 is_stmt 1 view .LVU2165 2846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6580 .loc 1 2846 5 view .LVU2166 6581 0082 4023 movs r3, #64 6582 0084 0022 movs r2, #0 6583 0086 E254 strb r2, [r4, r3] 2846:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6584 .loc 1 2846 5 view .LVU2167 2856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6585 .loc 1 2856 5 view .LVU2168 6586 0088 0321 movs r1, #3 6587 008a 2000 movs r0, r4 ARM GAS /tmp/ccuRhBPx.s page 279 6588 008c FFF7FEFF bl I2C_Enable_IRQ 6589 .LVL461: 2858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6590 .loc 1 2858 5 view .LVU2169 2858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6591 .loc 1 2858 12 is_stmt 0 view .LVU2170 6592 0090 0020 movs r0, #0 6593 0092 0CE0 b .L386 6594 .LVL462: 6595 .L387: 2801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6596 .loc 1 2801 7 is_stmt 1 view .LVU2171 2801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6597 .loc 1 2801 23 is_stmt 0 view .LVU2172 6598 0094 8023 movs r3, #128 6599 .LVL463: 2801:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6600 .loc 1 2801 23 view .LVU2173 6601 0096 9B00 lsls r3, r3, #2 6602 0098 6364 str r3, [r4, #68] 2802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6603 .loc 1 2802 7 is_stmt 1 view .LVU2174 2802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6604 .loc 1 2802 15 is_stmt 0 view .LVU2175 6605 009a 0120 movs r0, #1 6606 009c 07E0 b .L386 6607 .LVL464: 6608 .L394: 2828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6609 .loc 1 2828 7 is_stmt 1 view .LVU2176 2828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6610 .loc 1 2828 30 is_stmt 0 view .LVU2177 6611 009e D2B2 uxtb r2, r2 6612 .LVL465: 2828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6613 .loc 1 2828 28 view .LVU2178 6614 00a0 4846 mov r0, r9 6615 00a2 8262 str r2, [r0, #40] 2831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6616 .loc 1 2831 7 is_stmt 1 view .LVU2179 2831:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6617 .loc 1 2831 24 is_stmt 0 view .LVU2180 6618 00a4 0122 movs r2, #1 6619 00a6 5242 rsbs r2, r2, #0 6620 00a8 2265 str r2, [r4, #80] 6621 00aa E3E7 b .L390 6622 .LVL466: 6623 .L391: 2862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6624 .loc 1 2862 12 view .LVU2181 6625 00ac 0220 movs r0, #2 6626 .LVL467: 6627 .L386: 2864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6628 .loc 1 2864 1 view .LVU2182 6629 00ae 02B0 add sp, sp, #8 6630 @ sp needed ARM GAS /tmp/ccuRhBPx.s page 280 6631 .LVL468: 2864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6632 .loc 1 2864 1 view .LVU2183 6633 00b0 E0BC pop {r5, r6, r7} 6634 00b2 BA46 mov r10, r7 6635 00b4 B146 mov r9, r6 6636 00b6 A846 mov r8, r5 6637 00b8 F0BD pop {r4, r5, r6, r7, pc} 6638 .LVL469: 6639 .L392: 2807:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6640 .loc 1 2807 14 view .LVU2184 6641 00ba 0220 movs r0, #2 6642 00bc F7E7 b .L386 6643 .L393: 2811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6644 .loc 1 2811 5 discriminator 1 view .LVU2185 6645 00be 0220 movs r0, #2 6646 00c0 F5E7 b .L386 6647 .L396: 6648 00c2 C046 .align 2 6649 .L395: 6650 00c4 0000FFFF .word -65536 6651 00c8 00000000 .word I2C_Mem_ISR_IT 6652 00cc 00200080 .word -2147475456 6653 .cfi_endproc 6654 .LFE59: 6656 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits 6657 .align 1 6658 .global HAL_I2C_Mem_Write_DMA 6659 .syntax unified 6660 .code 16 6661 .thumb_func 6663 HAL_I2C_Mem_Write_DMA: 6664 .LVL470: 6665 .LFB60: 2880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6666 .loc 1 2880 1 is_stmt 1 view -0 6667 .cfi_startproc 6668 @ args = 8, pretend = 0, frame = 0 6669 @ frame_needed = 0, uses_anonymous_args = 0 2880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6670 .loc 1 2880 1 is_stmt 0 view .LVU2187 6671 0000 F0B5 push {r4, r5, r6, r7, lr} 6672 .cfi_def_cfa_offset 20 6673 .cfi_offset 4, -20 6674 .cfi_offset 5, -16 6675 .cfi_offset 6, -12 6676 .cfi_offset 7, -8 6677 .cfi_offset 14, -4 6678 0002 D646 mov lr, r10 6679 0004 4F46 mov r7, r9 6680 0006 4646 mov r6, r8 6681 0008 C0B5 push {r6, r7, lr} 6682 .cfi_def_cfa_offset 32 6683 .cfi_offset 8, -32 6684 .cfi_offset 9, -28 ARM GAS /tmp/ccuRhBPx.s page 281 6685 .cfi_offset 10, -24 6686 000a 82B0 sub sp, sp, #8 6687 .cfi_def_cfa_offset 40 6688 000c 0400 movs r4, r0 6689 000e 0E00 movs r6, r1 6690 0010 1D00 movs r5, r3 6691 0012 0AA8 add r0, sp, #40 6692 .LVL471: 2880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6693 .loc 1 2880 1 view .LVU2188 6694 0014 02C8 ldmia r0!, {r1} 6695 .LVL472: 2880:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6696 .loc 1 2880 1 view .LVU2189 6697 0016 0088 ldrh r0, [r0] 6698 .LVL473: 2881:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6699 .loc 1 2881 3 is_stmt 1 view .LVU2190 2884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6700 .loc 1 2884 3 view .LVU2191 2886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6701 .loc 1 2886 3 view .LVU2192 2886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6702 .loc 1 2886 11 is_stmt 0 view .LVU2193 6703 0018 4123 movs r3, #65 6704 .LVL474: 2886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6705 .loc 1 2886 11 view .LVU2194 6706 001a E35C ldrb r3, [r4, r3] 2886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6707 .loc 1 2886 6 view .LVU2195 6708 001c 202B cmp r3, #32 6709 001e 00D0 beq .LCB6351 6710 0020 84E0 b .L408 @long jump 6711 .LCB6351: 2888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6712 .loc 1 2888 5 is_stmt 1 view .LVU2196 2888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6713 .loc 1 2888 8 is_stmt 0 view .LVU2197 6714 0022 0029 cmp r1, #0 6715 0024 54D0 beq .L399 2888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6716 .loc 1 2888 25 discriminator 1 view .LVU2198 6717 0026 0028 cmp r0, #0 6718 0028 52D0 beq .L399 2894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6719 .loc 1 2894 5 is_stmt 1 view .LVU2199 2894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6720 .loc 1 2894 9 is_stmt 0 view .LVU2200 6721 002a 2368 ldr r3, [r4] 6722 002c 9946 mov r9, r3 6723 002e 9B69 ldr r3, [r3, #24] 2894:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6724 .loc 1 2894 8 view .LVU2201 6725 0030 1B04 lsls r3, r3, #16 6726 0032 00D5 bpl .LCB6364 6727 0034 82E0 b .L409 @long jump ARM GAS /tmp/ccuRhBPx.s page 282 6728 .LCB6364: 2900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6729 .loc 1 2900 5 is_stmt 1 view .LVU2202 2900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6730 .loc 1 2900 5 view .LVU2203 6731 0036 4023 movs r3, #64 6732 0038 E35C ldrb r3, [r4, r3] 6733 003a 012B cmp r3, #1 6734 003c 00D1 bne .LCB6370 6735 003e 7FE0 b .L410 @long jump 6736 .LCB6370: 2900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6737 .loc 1 2900 5 discriminator 2 view .LVU2204 6738 0040 4023 movs r3, #64 6739 0042 9A46 mov r10, r3 6740 0044 3F3B subs r3, r3, #63 6741 0046 5746 mov r7, r10 6742 0048 E355 strb r3, [r4, r7] 2900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6743 .loc 1 2900 5 discriminator 2 view .LVU2205 2902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6744 .loc 1 2902 5 view .LVU2206 2902:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6745 .loc 1 2902 23 is_stmt 0 view .LVU2207 6746 004a 4033 adds r3, r3, #64 6747 004c 9C46 mov ip, r3 6748 004e 203B subs r3, r3, #32 6749 0050 9846 mov r8, r3 6750 0052 6346 mov r3, ip 6751 0054 4746 mov r7, r8 6752 0056 E754 strb r7, [r4, r3] 2903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6753 .loc 1 2903 5 is_stmt 1 view .LVU2208 2903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6754 .loc 1 2903 23 is_stmt 0 view .LVU2209 6755 0058 0133 adds r3, r3, #1 6756 005a 5746 mov r7, r10 6757 005c E754 strb r7, [r4, r3] 2904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6758 .loc 1 2904 5 is_stmt 1 view .LVU2210 2904:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6759 .loc 1 2904 23 is_stmt 0 view .LVU2211 6760 005e 0023 movs r3, #0 6761 0060 6364 str r3, [r4, #68] 2907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 6762 .loc 1 2907 5 is_stmt 1 view .LVU2212 2907:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 6763 .loc 1 2907 23 is_stmt 0 view .LVU2213 6764 0062 6162 str r1, [r4, #36] 2908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6765 .loc 1 2908 5 is_stmt 1 view .LVU2214 2908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6766 .loc 1 2908 23 is_stmt 0 view .LVU2215 6767 0064 6085 strh r0, [r4, #42] 2909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6768 .loc 1 2909 5 is_stmt 1 view .LVU2216 2909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; ARM GAS /tmp/ccuRhBPx.s page 283 6769 .loc 1 2909 23 is_stmt 0 view .LVU2217 6770 0066 374B ldr r3, .L414 6771 0068 E362 str r3, [r4, #44] 2910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6772 .loc 1 2910 5 is_stmt 1 view .LVU2218 2910:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6773 .loc 1 2910 23 is_stmt 0 view .LVU2219 6774 006a 374B ldr r3, .L414+4 6775 006c 6363 str r3, [r4, #52] 2911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6776 .loc 1 2911 5 is_stmt 1 view .LVU2220 2911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6777 .loc 1 2911 23 is_stmt 0 view .LVU2221 6778 006e E664 str r6, [r4, #76] 2913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6779 .loc 1 2913 5 is_stmt 1 view .LVU2222 2913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6780 .loc 1 2913 13 is_stmt 0 view .LVU2223 6781 0070 638D ldrh r3, [r4, #42] 6782 0072 9BB2 uxth r3, r3 2913:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6783 .loc 1 2913 8 view .LVU2224 6784 0074 FF2B cmp r3, #255 6785 0076 30D9 bls .L401 2915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6786 .loc 1 2915 7 is_stmt 1 view .LVU2225 2915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6787 .loc 1 2915 22 is_stmt 0 view .LVU2226 6788 0078 FF23 movs r3, #255 6789 007a 2385 strh r3, [r4, #40] 6790 .L402: 2923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6791 .loc 1 2923 5 is_stmt 1 view .LVU2227 2923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6792 .loc 1 2923 8 is_stmt 0 view .LVU2228 6793 007c 012D cmp r5, #1 6794 007e 2FD0 beq .L412 2935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6795 .loc 1 2935 7 is_stmt 1 view .LVU2229 2935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6796 .loc 1 2935 30 is_stmt 0 view .LVU2230 6797 0080 130A lsrs r3, r2, #8 2935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6798 .loc 1 2935 28 view .LVU2231 6799 0082 4846 mov r0, r9 6800 0084 8362 str r3, [r0, #40] 2938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6801 .loc 1 2938 7 is_stmt 1 view .LVU2232 2938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6802 .loc 1 2938 26 is_stmt 0 view .LVU2233 6803 0086 D2B2 uxtb r2, r2 6804 .LVL475: 2938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6805 .loc 1 2938 24 view .LVU2234 6806 0088 2265 str r2, [r4, #80] 6807 .L404: 2941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 284 6808 .loc 1 2941 5 is_stmt 1 view .LVU2235 2941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6809 .loc 1 2941 13 is_stmt 0 view .LVU2236 6810 008a A36B ldr r3, [r4, #56] 2941:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6811 .loc 1 2941 8 view .LVU2237 6812 008c 002B cmp r3, #0 6813 008e 2ED0 beq .L405 2944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6814 .loc 1 2944 7 is_stmt 1 view .LVU2238 2944:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6815 .loc 1 2944 38 is_stmt 0 view .LVU2239 6816 0090 2E4A ldr r2, .L414+8 6817 0092 9A62 str r2, [r3, #40] 2947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6818 .loc 1 2947 7 is_stmt 1 view .LVU2240 2947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6819 .loc 1 2947 11 is_stmt 0 view .LVU2241 6820 0094 A36B ldr r3, [r4, #56] 2947:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6821 .loc 1 2947 39 view .LVU2242 6822 0096 2E4A ldr r2, .L414+12 6823 0098 1A63 str r2, [r3, #48] 2950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6824 .loc 1 2950 7 is_stmt 1 view .LVU2243 2950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6825 .loc 1 2950 11 is_stmt 0 view .LVU2244 6826 009a A26B ldr r2, [r4, #56] 2950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6827 .loc 1 2950 42 view .LVU2245 6828 009c 0023 movs r3, #0 6829 009e D362 str r3, [r2, #44] 2951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6830 .loc 1 2951 7 is_stmt 1 view .LVU2246 2951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6831 .loc 1 2951 11 is_stmt 0 view .LVU2247 6832 00a0 A26B ldr r2, [r4, #56] 2951:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6833 .loc 1 2951 39 view .LVU2248 6834 00a2 5363 str r3, [r2, #52] 2954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 6835 .loc 1 2954 7 is_stmt 1 view .LVU2249 2954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 6836 .loc 1 2954 86 is_stmt 0 view .LVU2250 6837 00a4 2268 ldr r2, [r4] 2954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 6838 .loc 1 2954 81 view .LVU2251 6839 00a6 2832 adds r2, r2, #40 2955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6840 .loc 1 2955 44 view .LVU2252 6841 00a8 238D ldrh r3, [r4, #40] 2954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 6842 .loc 1 2954 23 view .LVU2253 6843 00aa A06B ldr r0, [r4, #56] 6844 00ac FFF7FEFF bl HAL_DMA_Start_IT 6845 .LVL476: 6846 00b0 071E subs r7, r0, #0 ARM GAS /tmp/ccuRhBPx.s page 285 6847 .LVL477: 2972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6848 .loc 1 2972 5 is_stmt 1 view .LVU2254 2972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 6849 .loc 1 2972 8 is_stmt 0 view .LVU2255 6850 00b2 2AD0 beq .L413 2992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6851 .loc 1 2992 7 is_stmt 1 view .LVU2256 2992:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6852 .loc 1 2992 23 is_stmt 0 view .LVU2257 6853 00b4 4123 movs r3, #65 6854 00b6 2022 movs r2, #32 6855 00b8 E254 strb r2, [r4, r3] 2993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6856 .loc 1 2993 7 is_stmt 1 view .LVU2258 2993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6857 .loc 1 2993 23 is_stmt 0 view .LVU2259 6858 00ba 0022 movs r2, #0 6859 00bc 0133 adds r3, r3, #1 6860 00be E254 strb r2, [r4, r3] 2996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6861 .loc 1 2996 7 is_stmt 1 view .LVU2260 2996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6862 .loc 1 2996 11 is_stmt 0 view .LVU2261 6863 00c0 636C ldr r3, [r4, #68] 2996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6864 .loc 1 2996 23 view .LVU2262 6865 00c2 1021 movs r1, #16 6866 00c4 0B43 orrs r3, r1 6867 00c6 6364 str r3, [r4, #68] 2999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6868 .loc 1 2999 7 is_stmt 1 view .LVU2263 2999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6869 .loc 1 2999 7 view .LVU2264 6870 00c8 4023 movs r3, #64 6871 00ca E254 strb r2, [r4, r3] 2999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6872 .loc 1 2999 7 view .LVU2265 3001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6873 .loc 1 3001 7 view .LVU2266 3001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6874 .loc 1 3001 14 is_stmt 0 view .LVU2267 6875 00cc 0127 movs r7, #1 6876 00ce 2EE0 b .L398 6877 .LVL478: 6878 .L399: 2890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6879 .loc 1 2890 7 is_stmt 1 view .LVU2268 2890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 6880 .loc 1 2890 23 is_stmt 0 view .LVU2269 6881 00d0 8023 movs r3, #128 6882 00d2 9B00 lsls r3, r3, #2 6883 00d4 6364 str r3, [r4, #68] 2891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6884 .loc 1 2891 7 is_stmt 1 view .LVU2270 2891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6885 .loc 1 2891 15 is_stmt 0 view .LVU2271 ARM GAS /tmp/ccuRhBPx.s page 286 6886 00d6 0127 movs r7, #1 6887 00d8 29E0 b .L398 6888 .L401: 2919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6889 .loc 1 2919 7 is_stmt 1 view .LVU2272 2919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6890 .loc 1 2919 28 is_stmt 0 view .LVU2273 6891 00da 638D ldrh r3, [r4, #42] 2919:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6892 .loc 1 2919 22 view .LVU2274 6893 00dc 2385 strh r3, [r4, #40] 6894 00de CDE7 b .L402 6895 .L412: 2926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6896 .loc 1 2926 7 is_stmt 1 view .LVU2275 2926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6897 .loc 1 2926 30 is_stmt 0 view .LVU2276 6898 00e0 D2B2 uxtb r2, r2 6899 .LVL479: 2926:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6900 .loc 1 2926 28 view .LVU2277 6901 00e2 4B46 mov r3, r9 6902 00e4 9A62 str r2, [r3, #40] 2929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6903 .loc 1 2929 7 is_stmt 1 view .LVU2278 2929:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6904 .loc 1 2929 24 is_stmt 0 view .LVU2279 6905 00e6 0123 movs r3, #1 6906 00e8 5B42 rsbs r3, r3, #0 6907 00ea 2365 str r3, [r4, #80] 6908 00ec CDE7 b .L404 6909 .L405: 2960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6910 .loc 1 2960 7 is_stmt 1 view .LVU2280 2960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6911 .loc 1 2960 23 is_stmt 0 view .LVU2281 6912 00ee 4123 movs r3, #65 6913 00f0 2022 movs r2, #32 6914 00f2 E254 strb r2, [r4, r3] 2961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6915 .loc 1 2961 7 is_stmt 1 view .LVU2282 2961:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6916 .loc 1 2961 23 is_stmt 0 view .LVU2283 6917 00f4 0022 movs r2, #0 6918 00f6 0133 adds r3, r3, #1 6919 00f8 E254 strb r2, [r4, r3] 2964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6920 .loc 1 2964 7 is_stmt 1 view .LVU2284 2964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6921 .loc 1 2964 11 is_stmt 0 view .LVU2285 6922 00fa 636C ldr r3, [r4, #68] 2964:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6923 .loc 1 2964 23 view .LVU2286 6924 00fc 8021 movs r1, #128 6925 00fe 0B43 orrs r3, r1 6926 0100 6364 str r3, [r4, #68] 2967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 287 6927 .loc 1 2967 7 is_stmt 1 view .LVU2287 2967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6928 .loc 1 2967 7 view .LVU2288 6929 0102 4023 movs r3, #64 6930 0104 E254 strb r2, [r4, r3] 2967:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6931 .loc 1 2967 7 view .LVU2289 2969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6932 .loc 1 2969 7 view .LVU2290 2969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6933 .loc 1 2969 14 is_stmt 0 view .LVU2291 6934 0106 0127 movs r7, #1 6935 0108 11E0 b .L398 6936 .LVL480: 6937 .L413: 2975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6938 .loc 1 2975 7 is_stmt 1 view .LVU2292 6939 010a 8023 movs r3, #128 6940 010c EAB2 uxtb r2, r5 6941 010e 1149 ldr r1, .L414+16 6942 0110 0091 str r1, [sp] 6943 0112 5B04 lsls r3, r3, #17 6944 0114 3100 movs r1, r6 6945 0116 2000 movs r0, r4 6946 .LVL481: 2975:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6947 .loc 1 2975 7 is_stmt 0 view .LVU2293 6948 0118 FFF7FEFF bl I2C_TransferConfig 6949 .LVL482: 2978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6950 .loc 1 2978 7 is_stmt 1 view .LVU2294 2978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6951 .loc 1 2978 7 view .LVU2295 6952 011c 4023 movs r3, #64 6953 011e 0022 movs r2, #0 6954 0120 E254 strb r2, [r4, r3] 2978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6955 .loc 1 2978 7 view .LVU2296 2987:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6956 .loc 1 2987 7 view .LVU2297 6957 0122 0121 movs r1, #1 6958 0124 2000 movs r0, r4 6959 0126 FFF7FEFF bl I2C_Enable_IRQ 6960 .LVL483: 3004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6961 .loc 1 3004 5 view .LVU2298 3004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6962 .loc 1 3004 12 is_stmt 0 view .LVU2299 6963 012a 00E0 b .L398 6964 .LVL484: 6965 .L408: 3008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6966 .loc 1 3008 12 view .LVU2300 6967 012c 0227 movs r7, #2 6968 .LVL485: 6969 .L398: 3010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 288 6970 .loc 1 3010 1 view .LVU2301 6971 012e 3800 movs r0, r7 6972 0130 02B0 add sp, sp, #8 6973 @ sp needed 6974 .LVL486: 6975 .LVL487: 6976 .LVL488: 3010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6977 .loc 1 3010 1 view .LVU2302 6978 0132 E0BC pop {r5, r6, r7} 6979 0134 BA46 mov r10, r7 6980 0136 B146 mov r9, r6 6981 0138 A846 mov r8, r5 6982 013a F0BD pop {r4, r5, r6, r7, pc} 6983 .LVL489: 6984 .L409: 2896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 6985 .loc 1 2896 14 view .LVU2303 6986 013c 0227 movs r7, #2 6987 013e F6E7 b .L398 6988 .L410: 2900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 6989 .loc 1 2900 5 discriminator 1 view .LVU2304 6990 0140 0227 movs r7, #2 6991 0142 F4E7 b .L398 6992 .L415: 6993 .align 2 6994 .L414: 6995 0144 0000FFFF .word -65536 6996 0148 00000000 .word I2C_Mem_ISR_DMA 6997 014c 00000000 .word I2C_DMAMasterTransmitCplt 6998 0150 00000000 .word I2C_DMAError 6999 0154 00200080 .word -2147475456 7000 .cfi_endproc 7001 .LFE60: 7003 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits 7004 .align 1 7005 .global HAL_I2C_Mem_Read_DMA 7006 .syntax unified 7007 .code 16 7008 .thumb_func 7010 HAL_I2C_Mem_Read_DMA: 7011 .LVL490: 7012 .LFB61: 3026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7013 .loc 1 3026 1 is_stmt 1 view -0 7014 .cfi_startproc 7015 @ args = 8, pretend = 0, frame = 0 7016 @ frame_needed = 0, uses_anonymous_args = 0 3026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7017 .loc 1 3026 1 is_stmt 0 view .LVU2306 7018 0000 F0B5 push {r4, r5, r6, r7, lr} 7019 .cfi_def_cfa_offset 20 7020 .cfi_offset 4, -20 7021 .cfi_offset 5, -16 7022 .cfi_offset 6, -12 7023 .cfi_offset 7, -8 ARM GAS /tmp/ccuRhBPx.s page 289 7024 .cfi_offset 14, -4 7025 0002 D646 mov lr, r10 7026 0004 4F46 mov r7, r9 7027 0006 4646 mov r6, r8 7028 0008 C0B5 push {r6, r7, lr} 7029 .cfi_def_cfa_offset 32 7030 .cfi_offset 8, -32 7031 .cfi_offset 9, -28 7032 .cfi_offset 10, -24 7033 000a 82B0 sub sp, sp, #8 7034 .cfi_def_cfa_offset 40 7035 000c 0400 movs r4, r0 7036 000e 0E00 movs r6, r1 7037 0010 1100 movs r1, r2 7038 .LVL491: 3026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7039 .loc 1 3026 1 view .LVU2307 7040 0012 1D00 movs r5, r3 7041 0014 0AA8 add r0, sp, #40 7042 .LVL492: 3026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7043 .loc 1 3026 1 view .LVU2308 7044 0016 04C8 ldmia r0!, {r2} 7045 .LVL493: 3026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7046 .loc 1 3026 1 view .LVU2309 7047 0018 0088 ldrh r0, [r0] 7048 .LVL494: 3027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7049 .loc 1 3027 3 is_stmt 1 view .LVU2310 3030:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7050 .loc 1 3030 3 view .LVU2311 3032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7051 .loc 1 3032 3 view .LVU2312 3032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7052 .loc 1 3032 11 is_stmt 0 view .LVU2313 7053 001a 4123 movs r3, #65 7054 .LVL495: 3032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7055 .loc 1 3032 11 view .LVU2314 7056 001c E35C ldrb r3, [r4, r3] 3032:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7057 .loc 1 3032 6 view .LVU2315 7058 001e 202B cmp r3, #32 7059 0020 00D0 beq .LCB6684 7060 0022 83E0 b .L427 @long jump 7061 .LCB6684: 3034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7062 .loc 1 3034 5 is_stmt 1 view .LVU2316 3034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7063 .loc 1 3034 8 is_stmt 0 view .LVU2317 7064 0024 002A cmp r2, #0 7065 0026 54D0 beq .L418 3034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7066 .loc 1 3034 25 discriminator 1 view .LVU2318 7067 0028 0028 cmp r0, #0 7068 002a 52D0 beq .L418 ARM GAS /tmp/ccuRhBPx.s page 290 3040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7069 .loc 1 3040 5 is_stmt 1 view .LVU2319 3040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7070 .loc 1 3040 9 is_stmt 0 view .LVU2320 7071 002c 2368 ldr r3, [r4] 7072 002e 9946 mov r9, r3 7073 0030 9B69 ldr r3, [r3, #24] 3040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7074 .loc 1 3040 8 view .LVU2321 7075 0032 1B04 lsls r3, r3, #16 7076 0034 00D5 bpl .LCB6697 7077 0036 81E0 b .L428 @long jump 7078 .LCB6697: 3046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7079 .loc 1 3046 5 is_stmt 1 view .LVU2322 3046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7080 .loc 1 3046 5 view .LVU2323 7081 0038 4023 movs r3, #64 7082 003a E35C ldrb r3, [r4, r3] 7083 003c 012B cmp r3, #1 7084 003e 00D1 bne .LCB6703 7085 0040 7EE0 b .L429 @long jump 7086 .LCB6703: 3046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7087 .loc 1 3046 5 discriminator 2 view .LVU2324 7088 0042 4023 movs r3, #64 7089 0044 9A46 mov r10, r3 7090 0046 3F3B subs r3, r3, #63 7091 0048 5746 mov r7, r10 7092 004a E355 strb r3, [r4, r7] 3046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7093 .loc 1 3046 5 discriminator 2 view .LVU2325 3048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 7094 .loc 1 3048 5 view .LVU2326 3048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 7095 .loc 1 3048 23 is_stmt 0 view .LVU2327 7096 004c 4033 adds r3, r3, #64 7097 004e 9C46 mov ip, r3 7098 0050 1F3B subs r3, r3, #31 7099 0052 9846 mov r8, r3 7100 0054 6346 mov r3, ip 7101 0056 4746 mov r7, r8 7102 0058 E754 strb r7, [r4, r3] 3049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7103 .loc 1 3049 5 is_stmt 1 view .LVU2328 3049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7104 .loc 1 3049 23 is_stmt 0 view .LVU2329 7105 005a 0133 adds r3, r3, #1 7106 005c 5746 mov r7, r10 7107 005e E754 strb r7, [r4, r3] 3050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7108 .loc 1 3050 5 is_stmt 1 view .LVU2330 3050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7109 .loc 1 3050 23 is_stmt 0 view .LVU2331 7110 0060 0023 movs r3, #0 7111 0062 6364 str r3, [r4, #68] 3053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccuRhBPx.s page 291 7112 .loc 1 3053 5 is_stmt 1 view .LVU2332 3053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 7113 .loc 1 3053 23 is_stmt 0 view .LVU2333 7114 0064 6262 str r2, [r4, #36] 3054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 7115 .loc 1 3054 5 is_stmt 1 view .LVU2334 3054:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 7116 .loc 1 3054 23 is_stmt 0 view .LVU2335 7117 0066 6085 strh r0, [r4, #42] 3055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 7118 .loc 1 3055 5 is_stmt 1 view .LVU2336 3055:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 7119 .loc 1 3055 23 is_stmt 0 view .LVU2337 7120 0068 364B ldr r3, .L433 7121 006a E362 str r3, [r4, #44] 3056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 7122 .loc 1 3056 5 is_stmt 1 view .LVU2338 3056:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 7123 .loc 1 3056 23 is_stmt 0 view .LVU2339 7124 006c 364B ldr r3, .L433+4 7125 006e 6363 str r3, [r4, #52] 3057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7126 .loc 1 3057 5 is_stmt 1 view .LVU2340 3057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7127 .loc 1 3057 23 is_stmt 0 view .LVU2341 7128 0070 E664 str r6, [r4, #76] 3059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7129 .loc 1 3059 5 is_stmt 1 view .LVU2342 3059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7130 .loc 1 3059 13 is_stmt 0 view .LVU2343 7131 0072 638D ldrh r3, [r4, #42] 7132 0074 9BB2 uxth r3, r3 3059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7133 .loc 1 3059 8 view .LVU2344 7134 0076 FF2B cmp r3, #255 7135 0078 30D9 bls .L420 3061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7136 .loc 1 3061 7 is_stmt 1 view .LVU2345 3061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7137 .loc 1 3061 22 is_stmt 0 view .LVU2346 7138 007a FF23 movs r3, #255 7139 007c 2385 strh r3, [r4, #40] 7140 .L421: 3069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7141 .loc 1 3069 5 is_stmt 1 view .LVU2347 3069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7142 .loc 1 3069 8 is_stmt 0 view .LVU2348 7143 007e 012D cmp r5, #1 7144 0080 2FD0 beq .L431 3081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7145 .loc 1 3081 7 is_stmt 1 view .LVU2349 3081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7146 .loc 1 3081 30 is_stmt 0 view .LVU2350 7147 0082 0B0A lsrs r3, r1, #8 3081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7148 .loc 1 3081 28 view .LVU2351 7149 0084 4846 mov r0, r9 ARM GAS /tmp/ccuRhBPx.s page 292 7150 0086 8362 str r3, [r0, #40] 3084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7151 .loc 1 3084 7 is_stmt 1 view .LVU2352 3084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7152 .loc 1 3084 26 is_stmt 0 view .LVU2353 7153 0088 C9B2 uxtb r1, r1 7154 .LVL496: 3084:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7155 .loc 1 3084 24 view .LVU2354 7156 008a 2165 str r1, [r4, #80] 7157 .L423: 3087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7158 .loc 1 3087 5 is_stmt 1 view .LVU2355 3087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7159 .loc 1 3087 13 is_stmt 0 view .LVU2356 7160 008c E36B ldr r3, [r4, #60] 3087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7161 .loc 1 3087 8 view .LVU2357 7162 008e 002B cmp r3, #0 7163 0090 2ED0 beq .L424 3090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7164 .loc 1 3090 7 is_stmt 1 view .LVU2358 3090:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7165 .loc 1 3090 38 is_stmt 0 view .LVU2359 7166 0092 2E49 ldr r1, .L433+8 7167 0094 9962 str r1, [r3, #40] 3093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7168 .loc 1 3093 7 is_stmt 1 view .LVU2360 3093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7169 .loc 1 3093 11 is_stmt 0 view .LVU2361 7170 0096 E36B ldr r3, [r4, #60] 3093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7171 .loc 1 3093 39 view .LVU2362 7172 0098 2D49 ldr r1, .L433+12 7173 009a 1963 str r1, [r3, #48] 3096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 7174 .loc 1 3096 7 is_stmt 1 view .LVU2363 3096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 7175 .loc 1 3096 11 is_stmt 0 view .LVU2364 7176 009c E16B ldr r1, [r4, #60] 3096:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 7177 .loc 1 3096 42 view .LVU2365 7178 009e 0023 movs r3, #0 7179 00a0 CB62 str r3, [r1, #44] 3097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7180 .loc 1 3097 7 is_stmt 1 view .LVU2366 3097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7181 .loc 1 3097 11 is_stmt 0 view .LVU2367 7182 00a2 E16B ldr r1, [r4, #60] 3097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7183 .loc 1 3097 39 view .LVU2368 7184 00a4 4B63 str r3, [r1, #52] 3100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 7185 .loc 1 3100 7 is_stmt 1 view .LVU2369 3100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 7186 .loc 1 3100 69 is_stmt 0 view .LVU2370 7187 00a6 2168 ldr r1, [r4] ARM GAS /tmp/ccuRhBPx.s page 293 3100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 7188 .loc 1 3100 64 view .LVU2371 7189 00a8 2431 adds r1, r1, #36 3101:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7190 .loc 1 3101 44 view .LVU2372 7191 00aa 238D ldrh r3, [r4, #40] 3100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 7192 .loc 1 3100 23 view .LVU2373 7193 00ac E06B ldr r0, [r4, #60] 7194 00ae FFF7FEFF bl HAL_DMA_Start_IT 7195 .LVL497: 7196 00b2 071E subs r7, r0, #0 7197 .LVL498: 3118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7198 .loc 1 3118 5 is_stmt 1 view .LVU2374 3118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7199 .loc 1 3118 8 is_stmt 0 view .LVU2375 7200 00b4 2AD0 beq .L432 3138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7201 .loc 1 3138 7 is_stmt 1 view .LVU2376 3138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7202 .loc 1 3138 23 is_stmt 0 view .LVU2377 7203 00b6 4123 movs r3, #65 7204 00b8 2022 movs r2, #32 7205 00ba E254 strb r2, [r4, r3] 3139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7206 .loc 1 3139 7 is_stmt 1 view .LVU2378 3139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7207 .loc 1 3139 23 is_stmt 0 view .LVU2379 7208 00bc 0022 movs r2, #0 7209 00be 0133 adds r3, r3, #1 7210 00c0 E254 strb r2, [r4, r3] 3142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7211 .loc 1 3142 7 is_stmt 1 view .LVU2380 3142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7212 .loc 1 3142 11 is_stmt 0 view .LVU2381 7213 00c2 636C ldr r3, [r4, #68] 3142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7214 .loc 1 3142 23 view .LVU2382 7215 00c4 1021 movs r1, #16 7216 00c6 0B43 orrs r3, r1 7217 00c8 6364 str r3, [r4, #68] 3145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7218 .loc 1 3145 7 is_stmt 1 view .LVU2383 3145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7219 .loc 1 3145 7 view .LVU2384 7220 00ca 4023 movs r3, #64 7221 00cc E254 strb r2, [r4, r3] 3145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7222 .loc 1 3145 7 view .LVU2385 3147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7223 .loc 1 3147 7 view .LVU2386 3147:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7224 .loc 1 3147 14 is_stmt 0 view .LVU2387 7225 00ce 0127 movs r7, #1 7226 00d0 2DE0 b .L417 7227 .LVL499: ARM GAS /tmp/ccuRhBPx.s page 294 7228 .L418: 3036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 7229 .loc 1 3036 7 is_stmt 1 view .LVU2388 3036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 7230 .loc 1 3036 23 is_stmt 0 view .LVU2389 7231 00d2 8023 movs r3, #128 7232 00d4 9B00 lsls r3, r3, #2 7233 00d6 6364 str r3, [r4, #68] 3037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7234 .loc 1 3037 7 is_stmt 1 view .LVU2390 3037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7235 .loc 1 3037 15 is_stmt 0 view .LVU2391 7236 00d8 0127 movs r7, #1 7237 00da 28E0 b .L417 7238 .L420: 3065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7239 .loc 1 3065 7 is_stmt 1 view .LVU2392 3065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7240 .loc 1 3065 28 is_stmt 0 view .LVU2393 7241 00dc 638D ldrh r3, [r4, #42] 3065:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7242 .loc 1 3065 22 view .LVU2394 7243 00de 2385 strh r3, [r4, #40] 7244 00e0 CDE7 b .L421 7245 .L431: 3072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7246 .loc 1 3072 7 is_stmt 1 view .LVU2395 3072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7247 .loc 1 3072 30 is_stmt 0 view .LVU2396 7248 00e2 C9B2 uxtb r1, r1 3072:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7249 .loc 1 3072 28 view .LVU2397 7250 00e4 4B46 mov r3, r9 7251 00e6 9962 str r1, [r3, #40] 3075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7252 .loc 1 3075 7 is_stmt 1 view .LVU2398 3075:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7253 .loc 1 3075 24 is_stmt 0 view .LVU2399 7254 00e8 0123 movs r3, #1 7255 00ea 5B42 rsbs r3, r3, #0 7256 00ec 2365 str r3, [r4, #80] 7257 00ee CDE7 b .L423 7258 .L424: 3106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7259 .loc 1 3106 7 is_stmt 1 view .LVU2400 3106:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7260 .loc 1 3106 23 is_stmt 0 view .LVU2401 7261 00f0 4123 movs r3, #65 7262 00f2 2022 movs r2, #32 7263 00f4 E254 strb r2, [r4, r3] 3107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7264 .loc 1 3107 7 is_stmt 1 view .LVU2402 3107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7265 .loc 1 3107 23 is_stmt 0 view .LVU2403 7266 00f6 0022 movs r2, #0 7267 00f8 0133 adds r3, r3, #1 7268 00fa E254 strb r2, [r4, r3] ARM GAS /tmp/ccuRhBPx.s page 295 3110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7269 .loc 1 3110 7 is_stmt 1 view .LVU2404 3110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7270 .loc 1 3110 11 is_stmt 0 view .LVU2405 7271 00fc 636C ldr r3, [r4, #68] 3110:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7272 .loc 1 3110 23 view .LVU2406 7273 00fe 8021 movs r1, #128 7274 0100 0B43 orrs r3, r1 7275 0102 6364 str r3, [r4, #68] 3113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7276 .loc 1 3113 7 is_stmt 1 view .LVU2407 3113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7277 .loc 1 3113 7 view .LVU2408 7278 0104 4023 movs r3, #64 7279 0106 E254 strb r2, [r4, r3] 3113:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7280 .loc 1 3113 7 view .LVU2409 3115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7281 .loc 1 3115 7 view .LVU2410 3115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7282 .loc 1 3115 14 is_stmt 0 view .LVU2411 7283 0108 0127 movs r7, #1 7284 010a 10E0 b .L417 7285 .LVL500: 7286 .L432: 3121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7287 .loc 1 3121 7 is_stmt 1 view .LVU2412 7288 010c EAB2 uxtb r2, r5 7289 010e 114B ldr r3, .L433+16 7290 0110 0093 str r3, [sp] 7291 0112 0023 movs r3, #0 7292 0114 3100 movs r1, r6 7293 0116 2000 movs r0, r4 7294 .LVL501: 3121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7295 .loc 1 3121 7 is_stmt 0 view .LVU2413 7296 0118 FFF7FEFF bl I2C_TransferConfig 7297 .LVL502: 3124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7298 .loc 1 3124 7 is_stmt 1 view .LVU2414 3124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7299 .loc 1 3124 7 view .LVU2415 7300 011c 4023 movs r3, #64 7301 011e 0022 movs r2, #0 7302 0120 E254 strb r2, [r4, r3] 3124:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7303 .loc 1 3124 7 view .LVU2416 3133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7304 .loc 1 3133 7 view .LVU2417 7305 0122 0121 movs r1, #1 7306 0124 2000 movs r0, r4 7307 0126 FFF7FEFF bl I2C_Enable_IRQ 7308 .LVL503: 3150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7309 .loc 1 3150 5 view .LVU2418 3150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 296 7310 .loc 1 3150 12 is_stmt 0 view .LVU2419 7311 012a 00E0 b .L417 7312 .LVL504: 7313 .L427: 3154:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7314 .loc 1 3154 12 view .LVU2420 7315 012c 0227 movs r7, #2 7316 .L417: 3156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7317 .loc 1 3156 1 view .LVU2421 7318 012e 3800 movs r0, r7 7319 0130 02B0 add sp, sp, #8 7320 @ sp needed 7321 .LVL505: 7322 .LVL506: 7323 .LVL507: 3156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7324 .loc 1 3156 1 view .LVU2422 7325 0132 E0BC pop {r5, r6, r7} 7326 0134 BA46 mov r10, r7 7327 0136 B146 mov r9, r6 7328 0138 A846 mov r8, r5 7329 013a F0BD pop {r4, r5, r6, r7, pc} 7330 .LVL508: 7331 .L428: 3042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7332 .loc 1 3042 14 view .LVU2423 7333 013c 0227 movs r7, #2 7334 013e F6E7 b .L417 7335 .L429: 3046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7336 .loc 1 3046 5 discriminator 1 view .LVU2424 7337 0140 0227 movs r7, #2 7338 0142 F4E7 b .L417 7339 .L434: 7340 .align 2 7341 .L433: 7342 0144 0000FFFF .word -65536 7343 0148 00000000 .word I2C_Mem_ISR_DMA 7344 014c 00000000 .word I2C_DMAMasterReceiveCplt 7345 0150 00000000 .word I2C_DMAError 7346 0154 00200080 .word -2147475456 7347 .cfi_endproc 7348 .LFE61: 7350 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits 7351 .align 1 7352 .global HAL_I2C_IsDeviceReady 7353 .syntax unified 7354 .code 16 7355 .thumb_func 7357 HAL_I2C_IsDeviceReady: 7358 .LVL509: 7359 .LFB62: 3171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 7360 .loc 1 3171 1 is_stmt 1 view -0 7361 .cfi_startproc 7362 @ args = 0, pretend = 0, frame = 8 ARM GAS /tmp/ccuRhBPx.s page 297 7363 @ frame_needed = 0, uses_anonymous_args = 0 3171:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tickstart; 7364 .loc 1 3171 1 is_stmt 0 view .LVU2426 7365 0000 F0B5 push {r4, r5, r6, r7, lr} 7366 .cfi_def_cfa_offset 20 7367 .cfi_offset 4, -20 7368 .cfi_offset 5, -16 7369 .cfi_offset 6, -12 7370 .cfi_offset 7, -8 7371 .cfi_offset 14, -4 7372 0002 CE46 mov lr, r9 7373 0004 4746 mov r7, r8 7374 0006 80B5 push {r7, lr} 7375 .cfi_def_cfa_offset 28 7376 .cfi_offset 8, -28 7377 .cfi_offset 9, -24 7378 0008 85B0 sub sp, sp, #20 7379 .cfi_def_cfa_offset 48 7380 000a 0600 movs r6, r0 7381 000c 8946 mov r9, r1 7382 000e 9046 mov r8, r2 7383 0010 1D00 movs r5, r3 3172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7384 .loc 1 3172 3 is_stmt 1 view .LVU2427 3174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7385 .loc 1 3174 3 view .LVU2428 3174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7386 .loc 1 3174 17 is_stmt 0 view .LVU2429 7387 0012 0023 movs r3, #0 7388 .LVL510: 3174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7389 .loc 1 3174 17 view .LVU2430 7390 0014 0393 str r3, [sp, #12] 3176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** FlagStatus tmp2; 7391 .loc 1 3176 3 is_stmt 1 view .LVU2431 3177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7392 .loc 1 3177 3 view .LVU2432 3179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7393 .loc 1 3179 3 view .LVU2433 3179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7394 .loc 1 3179 11 is_stmt 0 view .LVU2434 7395 0016 4133 adds r3, r3, #65 7396 0018 C35C ldrb r3, [r0, r3] 3179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7397 .loc 1 3179 6 view .LVU2435 7398 001a 202B cmp r3, #32 7399 001c 00D0 beq .LCB6999 7400 001e A5E0 b .L446 @long jump 7401 .LCB6999: 3181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7402 .loc 1 3181 5 is_stmt 1 view .LVU2436 3181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7403 .loc 1 3181 9 is_stmt 0 view .LVU2437 7404 0020 0368 ldr r3, [r0] 7405 0022 9B69 ldr r3, [r3, #24] 3181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7406 .loc 1 3181 8 view .LVU2438 ARM GAS /tmp/ccuRhBPx.s page 298 7407 0024 1B04 lsls r3, r3, #16 7408 0026 00D5 bpl .LCB7006 7409 0028 A2E0 b .L447 @long jump 7410 .LCB7006: 3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7411 .loc 1 3187 5 is_stmt 1 view .LVU2439 3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7412 .loc 1 3187 5 view .LVU2440 7413 002a 4023 movs r3, #64 7414 002c C35C ldrb r3, [r0, r3] 7415 002e 012B cmp r3, #1 7416 0030 00D1 bne .LCB7012 7417 0032 9FE0 b .L448 @long jump 7418 .LCB7012: 3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7419 .loc 1 3187 5 discriminator 2 view .LVU2441 7420 0034 4023 movs r3, #64 7421 0036 0122 movs r2, #1 7422 .LVL511: 3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7423 .loc 1 3187 5 is_stmt 0 discriminator 2 view .LVU2442 7424 0038 C254 strb r2, [r0, r3] 3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7425 .loc 1 3187 5 is_stmt 1 discriminator 2 view .LVU2443 3189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7426 .loc 1 3189 5 view .LVU2444 3189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7427 .loc 1 3189 17 is_stmt 0 view .LVU2445 7428 003a 0133 adds r3, r3, #1 7429 003c 2332 adds r2, r2, #35 7430 003e C254 strb r2, [r0, r3] 3190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7431 .loc 1 3190 5 is_stmt 1 view .LVU2446 3190:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7432 .loc 1 3190 21 is_stmt 0 view .LVU2447 7433 0040 0023 movs r3, #0 7434 0042 4364 str r3, [r0, #68] 7435 .LVL512: 7436 .L445: 3192:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7437 .loc 1 3192 5 is_stmt 1 view .LVU2448 3195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7438 .loc 1 3195 7 view .LVU2449 3195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7439 .loc 1 3195 29 is_stmt 0 view .LVU2450 7440 0044 F368 ldr r3, [r6, #12] 7441 0046 012B cmp r3, #1 7442 0048 17D0 beq .L453 3195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7443 .loc 1 3195 29 discriminator 2 view .LVU2451 7444 004a 4B46 mov r3, r9 7445 004c 9A05 lsls r2, r3, #22 7446 004e 920D lsrs r2, r2, #22 7447 0050 4C4B ldr r3, .L457 7448 0052 1343 orrs r3, r2 7449 .L438: 3195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 299 7450 .loc 1 3195 11 discriminator 4 view .LVU2452 7451 0054 3268 ldr r2, [r6] 3195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7452 .loc 1 3195 27 discriminator 4 view .LVU2453 7453 0056 5360 str r3, [r2, #4] 3199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7454 .loc 1 3199 7 is_stmt 1 view .LVU2454 3199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7455 .loc 1 3199 19 is_stmt 0 view .LVU2455 7456 0058 FFF7FEFF bl HAL_GetTick 7457 .LVL513: 7458 005c 0700 movs r7, r0 7459 .LVL514: 3201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7460 .loc 1 3201 7 is_stmt 1 view .LVU2456 3201:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7461 .loc 1 3201 14 is_stmt 0 view .LVU2457 7462 005e 3268 ldr r2, [r6] 7463 0060 9169 ldr r1, [r2, #24] 7464 0062 2023 movs r3, #32 7465 0064 0B40 ands r3, r1 7466 0066 591E subs r1, r3, #1 7467 0068 8B41 sbcs r3, r3, r1 7468 006a DBB2 uxtb r3, r3 7469 .LVL515: 3202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7470 .loc 1 3202 7 is_stmt 1 view .LVU2458 3202:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7471 .loc 1 3202 14 is_stmt 0 view .LVU2459 7472 006c 9269 ldr r2, [r2, #24] 7473 006e 1024 movs r4, #16 7474 0070 1440 ands r4, r2 7475 0072 621E subs r2, r4, #1 7476 0074 9441 sbcs r4, r4, r2 7477 0076 E4B2 uxtb r4, r4 7478 .LVL516: 3204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7479 .loc 1 3204 7 is_stmt 1 view .LVU2460 3204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7480 .loc 1 3204 13 is_stmt 0 view .LVU2461 7481 0078 12E0 b .L439 7482 .LVL517: 7483 .L453: 3195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7484 .loc 1 3195 29 discriminator 1 view .LVU2462 7485 007a 4B46 mov r3, r9 7486 007c 9A05 lsls r2, r3, #22 7487 007e 920D lsrs r2, r2, #22 7488 0080 414B ldr r3, .L457+4 7489 0082 1343 orrs r3, r2 7490 0084 E6E7 b .L438 7491 .LVL518: 7492 .L440: 3223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7493 .loc 1 3223 9 is_stmt 1 view .LVU2463 3223:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7494 .loc 1 3223 16 is_stmt 0 view .LVU2464 ARM GAS /tmp/ccuRhBPx.s page 300 7495 0086 3268 ldr r2, [r6] 7496 0088 9169 ldr r1, [r2, #24] 7497 008a 2023 movs r3, #32 7498 008c 0B40 ands r3, r1 7499 008e 591E subs r1, r3, #1 7500 0090 8B41 sbcs r3, r3, r1 7501 0092 DBB2 uxtb r3, r3 7502 .LVL519: 3224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7503 .loc 1 3224 9 is_stmt 1 view .LVU2465 3224:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7504 .loc 1 3224 16 is_stmt 0 view .LVU2466 7505 0094 9269 ldr r2, [r2, #24] 7506 0096 1024 movs r4, #16 7507 0098 1440 ands r4, r2 7508 009a 621E subs r2, r4, #1 7509 009c 9441 sbcs r4, r4, r2 7510 009e E4B2 uxtb r4, r4 7511 .LVL520: 7512 .L439: 3204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7513 .loc 1 3204 30 is_stmt 1 view .LVU2467 7514 00a0 1C43 orrs r4, r3 7515 .LVL521: 3204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7516 .loc 1 3204 30 is_stmt 0 view .LVU2468 7517 00a2 17D1 bne .L454 3206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7518 .loc 1 3206 9 is_stmt 1 view .LVU2469 3206:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7519 .loc 1 3206 12 is_stmt 0 view .LVU2470 7520 00a4 6B1C adds r3, r5, #1 7521 00a6 EED0 beq .L440 7522 .LVL522: 3208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7523 .loc 1 3208 11 is_stmt 1 view .LVU2471 3208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7524 .loc 1 3208 17 is_stmt 0 view .LVU2472 7525 00a8 FFF7FEFF bl HAL_GetTick 7526 .LVL523: 3208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7527 .loc 1 3208 31 discriminator 1 view .LVU2473 7528 00ac C01B subs r0, r0, r7 3208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7529 .loc 1 3208 14 discriminator 1 view .LVU2474 7530 00ae A842 cmp r0, r5 7531 00b0 01D8 bhi .L441 3208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7532 .loc 1 3208 55 discriminator 1 view .LVU2475 7533 00b2 002D cmp r5, #0 7534 00b4 E7D1 bne .L440 7535 .L441: 3211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7536 .loc 1 3211 13 is_stmt 1 view .LVU2476 3211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7537 .loc 1 3211 25 is_stmt 0 view .LVU2477 7538 00b6 2022 movs r2, #32 ARM GAS /tmp/ccuRhBPx.s page 301 7539 00b8 4123 movs r3, #65 7540 00ba F254 strb r2, [r6, r3] 3214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7541 .loc 1 3214 13 is_stmt 1 view .LVU2478 3214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7542 .loc 1 3214 17 is_stmt 0 view .LVU2479 7543 00bc 736C ldr r3, [r6, #68] 3214:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7544 .loc 1 3214 29 view .LVU2480 7545 00be 1343 orrs r3, r2 7546 00c0 7364 str r3, [r6, #68] 3217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7547 .loc 1 3217 13 is_stmt 1 view .LVU2481 3217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7548 .loc 1 3217 13 view .LVU2482 7549 00c2 4023 movs r3, #64 7550 00c4 0022 movs r2, #0 7551 00c6 F254 strb r2, [r6, r3] 3217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7552 .loc 1 3217 13 view .LVU2483 3219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7553 .loc 1 3219 13 view .LVU2484 3219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7554 .loc 1 3219 20 is_stmt 0 view .LVU2485 7555 00c8 0120 movs r0, #1 7556 .LVL524: 7557 .L436: 3297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7558 .loc 1 3297 1 view .LVU2486 7559 00ca 05B0 add sp, sp, #20 7560 @ sp needed 7561 .LVL525: 7562 .LVL526: 7563 .LVL527: 7564 .LVL528: 3297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7565 .loc 1 3297 1 view .LVU2487 7566 00cc C0BC pop {r6, r7} 7567 00ce B946 mov r9, r7 7568 00d0 B046 mov r8, r6 7569 00d2 F0BD pop {r4, r5, r6, r7, pc} 7570 .LVL529: 7571 .L454: 3228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7572 .loc 1 3228 7 is_stmt 1 view .LVU2488 3228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7573 .loc 1 3228 11 is_stmt 0 view .LVU2489 7574 00d4 3368 ldr r3, [r6] 7575 .LVL530: 3228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7576 .loc 1 3228 11 view .LVU2490 7577 00d6 9B69 ldr r3, [r3, #24] 3228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7578 .loc 1 3228 10 view .LVU2491 7579 00d8 DB06 lsls r3, r3, #27 7580 00da 22D5 bpl .L455 3250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 302 7581 .loc 1 3250 9 is_stmt 1 view .LVU2492 3250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7582 .loc 1 3250 13 is_stmt 0 view .LVU2493 7583 00dc 0097 str r7, [sp] 7584 00de 2B00 movs r3, r5 7585 00e0 0022 movs r2, #0 7586 00e2 2021 movs r1, #32 7587 00e4 3000 movs r0, r6 7588 00e6 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7589 .LVL531: 3250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7590 .loc 1 3250 12 discriminator 1 view .LVU2494 7591 00ea 0028 cmp r0, #0 7592 00ec 46D1 bne .L450 3256:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7593 .loc 1 3256 9 is_stmt 1 view .LVU2495 7594 00ee 3368 ldr r3, [r6] 7595 00f0 1022 movs r2, #16 7596 00f2 DA61 str r2, [r3, #28] 3259:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7597 .loc 1 3259 9 view .LVU2496 7598 00f4 3368 ldr r3, [r6] 7599 00f6 1032 adds r2, r2, #16 7600 00f8 DA61 str r2, [r3, #28] 3263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7601 .loc 1 3263 7 view .LVU2497 3263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7602 .loc 1 3263 22 is_stmt 0 view .LVU2498 7603 00fa 039B ldr r3, [sp, #12] 3263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7604 .loc 1 3263 10 view .LVU2499 7605 00fc 4345 cmp r3, r8 7606 00fe 22D0 beq .L456 7607 .L444: 3279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7608 .loc 1 3279 7 is_stmt 1 view .LVU2500 3279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7609 .loc 1 3279 17 is_stmt 0 view .LVU2501 7610 0100 039B ldr r3, [sp, #12] 7611 0102 0133 adds r3, r3, #1 7612 0104 0393 str r3, [sp, #12] 3280:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7613 .loc 1 3280 25 is_stmt 1 view .LVU2502 7614 0106 039B ldr r3, [sp, #12] 7615 0108 4345 cmp r3, r8 7616 010a 9BD3 bcc .L445 3283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7617 .loc 1 3283 5 view .LVU2503 3283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7618 .loc 1 3283 17 is_stmt 0 view .LVU2504 7619 010c 2022 movs r2, #32 7620 010e 4123 movs r3, #65 7621 0110 F254 strb r2, [r6, r3] 3286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7622 .loc 1 3286 5 is_stmt 1 view .LVU2505 3286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7623 .loc 1 3286 9 is_stmt 0 view .LVU2506 ARM GAS /tmp/ccuRhBPx.s page 303 7624 0112 736C ldr r3, [r6, #68] 3286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7625 .loc 1 3286 21 view .LVU2507 7626 0114 1343 orrs r3, r2 7627 0116 7364 str r3, [r6, #68] 3289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7628 .loc 1 3289 5 is_stmt 1 view .LVU2508 3289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7629 .loc 1 3289 5 view .LVU2509 7630 0118 4023 movs r3, #64 7631 011a 0022 movs r2, #0 7632 011c F254 strb r2, [r6, r3] 3289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7633 .loc 1 3289 5 view .LVU2510 3291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7634 .loc 1 3291 5 view .LVU2511 3291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7635 .loc 1 3291 12 is_stmt 0 view .LVU2512 7636 011e 0120 movs r0, #1 7637 0120 D3E7 b .L436 7638 .L455: 3231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7639 .loc 1 3231 9 is_stmt 1 view .LVU2513 3231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7640 .loc 1 3231 13 is_stmt 0 view .LVU2514 7641 0122 0097 str r7, [sp] 7642 0124 2B00 movs r3, r5 7643 0126 0022 movs r2, #0 7644 0128 2021 movs r1, #32 7645 012a 3000 movs r0, r6 7646 012c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7647 .LVL532: 3231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7648 .loc 1 3231 12 discriminator 1 view .LVU2515 7649 0130 0028 cmp r0, #0 7650 0132 21D1 bne .L449 3237:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7651 .loc 1 3237 9 is_stmt 1 view .LVU2516 7652 0134 3268 ldr r2, [r6] 7653 0136 2023 movs r3, #32 7654 0138 D361 str r3, [r2, #28] 3240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7655 .loc 1 3240 9 view .LVU2517 3240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7656 .loc 1 3240 21 is_stmt 0 view .LVU2518 7657 013a 4122 movs r2, #65 7658 013c B354 strb r3, [r6, r2] 3243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7659 .loc 1 3243 9 is_stmt 1 view .LVU2519 3243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7660 .loc 1 3243 9 view .LVU2520 7661 013e 2033 adds r3, r3, #32 7662 0140 0022 movs r2, #0 7663 0142 F254 strb r2, [r6, r3] 3243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7664 .loc 1 3243 9 view .LVU2521 3245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 304 7665 .loc 1 3245 9 view .LVU2522 3245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7666 .loc 1 3245 16 is_stmt 0 view .LVU2523 7667 0144 C1E7 b .L436 7668 .L456: 3266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7669 .loc 1 3266 9 is_stmt 1 view .LVU2524 3266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7670 .loc 1 3266 13 is_stmt 0 view .LVU2525 7671 0146 3268 ldr r2, [r6] 3266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7672 .loc 1 3266 23 view .LVU2526 7673 0148 5168 ldr r1, [r2, #4] 3266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7674 .loc 1 3266 29 view .LVU2527 7675 014a 8023 movs r3, #128 7676 014c DB01 lsls r3, r3, #7 7677 014e 0B43 orrs r3, r1 7678 0150 5360 str r3, [r2, #4] 3269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7679 .loc 1 3269 9 is_stmt 1 view .LVU2528 3269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7680 .loc 1 3269 13 is_stmt 0 view .LVU2529 7681 0152 0097 str r7, [sp] 7682 0154 2B00 movs r3, r5 7683 0156 0022 movs r2, #0 7684 0158 2021 movs r1, #32 7685 015a 3000 movs r0, r6 7686 015c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7687 .LVL533: 3269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7688 .loc 1 3269 12 discriminator 1 view .LVU2530 7689 0160 0028 cmp r0, #0 7690 0162 0DD1 bne .L451 3275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7691 .loc 1 3275 9 is_stmt 1 view .LVU2531 7692 0164 3368 ldr r3, [r6] 7693 0166 2022 movs r2, #32 7694 0168 DA61 str r2, [r3, #28] 7695 016a C9E7 b .L444 7696 .LVL534: 7697 .L446: 3295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7698 .loc 1 3295 12 is_stmt 0 view .LVU2532 7699 016c 0220 movs r0, #2 7700 .LVL535: 3295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7701 .loc 1 3295 12 view .LVU2533 7702 016e ACE7 b .L436 7703 .LVL536: 7704 .L447: 3183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7705 .loc 1 3183 14 view .LVU2534 7706 0170 0220 movs r0, #2 7707 .LVL537: 3183:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7708 .loc 1 3183 14 view .LVU2535 ARM GAS /tmp/ccuRhBPx.s page 305 7709 0172 AAE7 b .L436 7710 .LVL538: 7711 .L448: 3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7712 .loc 1 3187 5 discriminator 1 view .LVU2536 7713 0174 0220 movs r0, #2 7714 .LVL539: 3187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7715 .loc 1 3187 5 discriminator 1 view .LVU2537 7716 0176 A8E7 b .L436 7717 .LVL540: 7718 .L449: 3233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7719 .loc 1 3233 18 view .LVU2538 7720 0178 0120 movs r0, #1 7721 017a A6E7 b .L436 7722 .L450: 3252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7723 .loc 1 3252 18 view .LVU2539 7724 017c 0120 movs r0, #1 7725 017e A4E7 b .L436 7726 .L451: 3271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7727 .loc 1 3271 18 view .LVU2540 7728 0180 0120 movs r0, #1 7729 0182 A2E7 b .L436 7730 .L458: 7731 .align 2 7732 .L457: 7733 0184 00280002 .word 33564672 7734 0188 00200002 .word 33562624 7735 .cfi_endproc 7736 .LFE62: 7738 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits 7739 .align 1 7740 .global HAL_I2C_Master_Seq_Transmit_IT 7741 .syntax unified 7742 .code 16 7743 .thumb_func 7745 HAL_I2C_Master_Seq_Transmit_IT: 7746 .LVL541: 7747 .LFB63: 3313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 7748 .loc 1 3313 1 is_stmt 1 view -0 7749 .cfi_startproc 7750 @ args = 4, pretend = 0, frame = 0 7751 @ frame_needed = 0, uses_anonymous_args = 0 3313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 7752 .loc 1 3313 1 is_stmt 0 view .LVU2542 7753 0000 70B5 push {r4, r5, r6, lr} 7754 .cfi_def_cfa_offset 16 7755 .cfi_offset 4, -16 7756 .cfi_offset 5, -12 7757 .cfi_offset 6, -8 7758 .cfi_offset 14, -4 7759 0002 82B0 sub sp, sp, #8 7760 .cfi_def_cfa_offset 24 ARM GAS /tmp/ccuRhBPx.s page 306 7761 0004 0400 movs r4, r0 7762 0006 0D00 movs r5, r1 3314:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7763 .loc 1 3314 3 is_stmt 1 view .LVU2543 3315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7764 .loc 1 3315 3 view .LVU2544 7765 .LVL542: 3318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7766 .loc 1 3318 3 view .LVU2545 3320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7767 .loc 1 3320 3 view .LVU2546 3320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7768 .loc 1 3320 11 is_stmt 0 view .LVU2547 7769 0008 4121 movs r1, #65 7770 .LVL543: 3320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7771 .loc 1 3320 11 view .LVU2548 7772 000a 415C ldrb r1, [r0, r1] 3320:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7773 .loc 1 3320 6 view .LVU2549 7774 000c 2029 cmp r1, #32 7775 000e 4AD1 bne .L465 3323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7776 .loc 1 3323 5 is_stmt 1 view .LVU2550 3323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7777 .loc 1 3323 5 view .LVU2551 7778 0010 2031 adds r1, r1, #32 7779 0012 415C ldrb r1, [r0, r1] 7780 0014 0129 cmp r1, #1 7781 0016 48D0 beq .L466 3323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7782 .loc 1 3323 5 discriminator 2 view .LVU2552 7783 0018 4021 movs r1, #64 7784 001a 0120 movs r0, #1 7785 .LVL544: 3323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7786 .loc 1 3323 5 is_stmt 0 discriminator 2 view .LVU2553 7787 001c 6054 strb r0, [r4, r1] 3323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7788 .loc 1 3323 5 is_stmt 1 discriminator 2 view .LVU2554 3325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7789 .loc 1 3325 5 view .LVU2555 3325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7790 .loc 1 3325 21 is_stmt 0 view .LVU2556 7791 001e 0131 adds r1, r1, #1 7792 0020 2030 adds r0, r0, #32 7793 0022 6054 strb r0, [r4, r1] 3326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7794 .loc 1 3326 5 is_stmt 1 view .LVU2557 3326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7795 .loc 1 3326 21 is_stmt 0 view .LVU2558 7796 0024 0131 adds r1, r1, #1 7797 0026 1138 subs r0, r0, #17 7798 0028 6054 strb r0, [r4, r1] 3327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7799 .loc 1 3327 5 is_stmt 1 view .LVU2559 3327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 307 7800 .loc 1 3327 21 is_stmt 0 view .LVU2560 7801 002a 0021 movs r1, #0 7802 002c 6164 str r1, [r4, #68] 3330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 7803 .loc 1 3330 5 is_stmt 1 view .LVU2561 3330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 7804 .loc 1 3330 23 is_stmt 0 view .LVU2562 7805 002e 6262 str r2, [r4, #36] 3331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7806 .loc 1 3331 5 is_stmt 1 view .LVU2563 3331:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7807 .loc 1 3331 23 is_stmt 0 view .LVU2564 7808 0030 6385 strh r3, [r4, #42] 3332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7809 .loc 1 3332 5 is_stmt 1 view .LVU2565 3332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7810 .loc 1 3332 23 is_stmt 0 view .LVU2566 7811 0032 069B ldr r3, [sp, #24] 7812 .LVL545: 3332:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7813 .loc 1 3332 23 view .LVU2567 7814 0034 E362 str r3, [r4, #44] 7815 .LVL546: 3333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7816 .loc 1 3333 5 is_stmt 1 view .LVU2568 3333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7817 .loc 1 3333 23 is_stmt 0 view .LVU2569 7818 0036 1E4B ldr r3, .L469 7819 0038 6363 str r3, [r4, #52] 3336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7820 .loc 1 3336 5 is_stmt 1 view .LVU2570 3336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7821 .loc 1 3336 13 is_stmt 0 view .LVU2571 7822 003a 638D ldrh r3, [r4, #42] 7823 003c 9BB2 uxth r3, r3 3336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7824 .loc 1 3336 8 view .LVU2572 7825 003e FF2B cmp r3, #255 7826 0040 10D9 bls .L461 3338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7827 .loc 1 3338 7 is_stmt 1 view .LVU2573 3338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7828 .loc 1 3338 22 is_stmt 0 view .LVU2574 7829 0042 FF23 movs r3, #255 7830 0044 2385 strh r3, [r4, #40] 3339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7831 .loc 1 3339 7 is_stmt 1 view .LVU2575 7832 .LVL547: 3339:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7833 .loc 1 3339 16 is_stmt 0 view .LVU2576 7834 0046 8026 movs r6, #128 7835 0048 7604 lsls r6, r6, #17 7836 .LVL548: 7837 .L462: 3350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7838 .loc 1 3350 5 is_stmt 1 view .LVU2577 3350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) ARM GAS /tmp/ccuRhBPx.s page 308 7839 .loc 1 3350 14 is_stmt 0 view .LVU2578 7840 004a 236B ldr r3, [r4, #48] 3350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7841 .loc 1 3350 8 view .LVU2579 7842 004c 112B cmp r3, #17 7843 004e 0DD1 bne .L463 3351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7844 .loc 1 3351 10 view .LVU2580 7845 0050 069B ldr r3, [sp, #24] 7846 0052 AA2B cmp r3, #170 7847 0054 0AD0 beq .L463 3351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7848 .loc 1 3351 10 discriminator 2 view .LVU2581 7849 0056 AA23 movs r3, #170 7850 0058 1B02 lsls r3, r3, #8 7851 005a 069A ldr r2, [sp, #24] 7852 .LVL549: 3351:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7853 .loc 1 3351 10 discriminator 2 view .LVU2582 7854 005c 9A42 cmp r2, r3 7855 005e 05D0 beq .L463 3353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7856 .loc 1 3353 19 view .LVU2583 7857 0060 0023 movs r3, #0 7858 0062 0CE0 b .L464 7859 .LVL550: 7860 .L461: 3343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7861 .loc 1 3343 7 is_stmt 1 view .LVU2584 3343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7862 .loc 1 3343 28 is_stmt 0 view .LVU2585 7863 0064 638D ldrh r3, [r4, #42] 3343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7864 .loc 1 3343 22 view .LVU2586 7865 0066 2385 strh r3, [r4, #40] 3344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7866 .loc 1 3344 7 is_stmt 1 view .LVU2587 3344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7867 .loc 1 3344 16 is_stmt 0 view .LVU2588 7868 0068 E66A ldr r6, [r4, #44] 7869 .LVL551: 3344:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7870 .loc 1 3344 16 view .LVU2589 7871 006a EEE7 b .L462 7872 .LVL552: 7873 .L463: 3358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7874 .loc 1 3358 7 is_stmt 1 view .LVU2590 7875 006c 2000 movs r0, r4 7876 006e FFF7FEFF bl I2C_ConvertOtherXferOptions 7877 .LVL553: 3361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7878 .loc 1 3361 7 view .LVU2591 3361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7879 .loc 1 3361 15 is_stmt 0 view .LVU2592 7880 0072 638D ldrh r3, [r4, #42] 7881 0074 9BB2 uxth r3, r3 ARM GAS /tmp/ccuRhBPx.s page 309 3361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7882 .loc 1 3361 10 view .LVU2593 7883 0076 FF2B cmp r3, #255 7884 0078 13D8 bhi .L468 3363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7885 .loc 1 3363 9 is_stmt 1 view .LVU2594 3363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7886 .loc 1 3363 18 is_stmt 0 view .LVU2595 7887 007a E66A ldr r6, [r4, #44] 7888 .LVL554: 3315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7889 .loc 1 3315 12 view .LVU2596 7890 007c 0D4B ldr r3, .L469+4 7891 .L464: 7892 .LVL555: 3368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7893 .loc 1 3368 5 is_stmt 1 view .LVU2597 3368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7894 .loc 1 3368 55 is_stmt 0 view .LVU2598 7895 007e 228D ldrh r2, [r4, #40] 3368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7896 .loc 1 3368 5 view .LVU2599 7897 0080 D2B2 uxtb r2, r2 7898 0082 0093 str r3, [sp] 7899 0084 3300 movs r3, r6 7900 .LVL556: 3368:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7901 .loc 1 3368 5 view .LVU2600 7902 0086 2900 movs r1, r5 7903 0088 2000 movs r0, r4 7904 008a FFF7FEFF bl I2C_TransferConfig 7905 .LVL557: 3371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7906 .loc 1 3371 5 is_stmt 1 view .LVU2601 3371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7907 .loc 1 3371 5 view .LVU2602 7908 008e 4023 movs r3, #64 7909 0090 0022 movs r2, #0 7910 0092 E254 strb r2, [r4, r3] 3371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7911 .loc 1 3371 5 view .LVU2603 3380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7912 .loc 1 3380 5 view .LVU2604 7913 0094 0121 movs r1, #1 7914 0096 2000 movs r0, r4 7915 0098 FFF7FEFF bl I2C_Enable_IRQ 7916 .LVL558: 3382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7917 .loc 1 3382 5 view .LVU2605 3382:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7918 .loc 1 3382 12 is_stmt 0 view .LVU2606 7919 009c 0020 movs r0, #0 7920 .LVL559: 7921 .L460: 3388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7922 .loc 1 3388 1 view .LVU2607 7923 009e 02B0 add sp, sp, #8 ARM GAS /tmp/ccuRhBPx.s page 310 7924 @ sp needed 7925 .LVL560: 7926 .LVL561: 3388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7927 .loc 1 3388 1 view .LVU2608 7928 00a0 70BD pop {r4, r5, r6, pc} 7929 .LVL562: 7930 .L468: 3315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7931 .loc 1 3315 12 view .LVU2609 7932 00a2 044B ldr r3, .L469+4 7933 00a4 EBE7 b .L464 7934 .LVL563: 7935 .L465: 3386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7936 .loc 1 3386 12 view .LVU2610 7937 00a6 0220 movs r0, #2 7938 .LVL564: 3386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 7939 .loc 1 3386 12 view .LVU2611 7940 00a8 F9E7 b .L460 7941 .LVL565: 7942 .L466: 3323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7943 .loc 1 3323 5 discriminator 1 view .LVU2612 7944 00aa 0220 movs r0, #2 7945 .LVL566: 3323:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7946 .loc 1 3323 5 discriminator 1 view .LVU2613 7947 00ac F7E7 b .L460 7948 .L470: 7949 00ae C046 .align 2 7950 .L469: 7951 00b0 00000000 .word I2C_Master_ISR_IT 7952 00b4 00200080 .word -2147475456 7953 .cfi_endproc 7954 .LFE63: 7956 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits 7957 .align 1 7958 .global HAL_I2C_Master_Seq_Transmit_DMA 7959 .syntax unified 7960 .code 16 7961 .thumb_func 7963 HAL_I2C_Master_Seq_Transmit_DMA: 7964 .LVL567: 7965 .LFB64: 3404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 7966 .loc 1 3404 1 is_stmt 1 view -0 7967 .cfi_startproc 7968 @ args = 4, pretend = 0, frame = 8 7969 @ frame_needed = 0, uses_anonymous_args = 0 3404:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 7970 .loc 1 3404 1 is_stmt 0 view .LVU2615 7971 0000 F0B5 push {r4, r5, r6, r7, lr} 7972 .cfi_def_cfa_offset 20 7973 .cfi_offset 4, -20 7974 .cfi_offset 5, -16 ARM GAS /tmp/ccuRhBPx.s page 311 7975 .cfi_offset 6, -12 7976 .cfi_offset 7, -8 7977 .cfi_offset 14, -4 7978 0002 85B0 sub sp, sp, #20 7979 .cfi_def_cfa_offset 40 7980 0004 0400 movs r4, r0 7981 0006 0391 str r1, [sp, #12] 7982 0008 1500 movs r5, r2 3405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7983 .loc 1 3405 3 is_stmt 1 view .LVU2616 3406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7984 .loc 1 3406 3 view .LVU2617 7985 .LVL568: 3407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7986 .loc 1 3407 3 view .LVU2618 3410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7987 .loc 1 3410 3 view .LVU2619 3412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7988 .loc 1 3412 3 view .LVU2620 3412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7989 .loc 1 3412 11 is_stmt 0 view .LVU2621 7990 000a 4122 movs r2, #65 7991 .LVL569: 3412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7992 .loc 1 3412 11 view .LVU2622 7993 000c 825C ldrb r2, [r0, r2] 3412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 7994 .loc 1 3412 6 view .LVU2623 7995 000e 202A cmp r2, #32 7996 0010 00D0 beq .LCB7600 7997 0012 9DE0 b .L482 @long jump 7998 .LCB7600: 3415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 7999 .loc 1 3415 5 is_stmt 1 view .LVU2624 3415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8000 .loc 1 3415 5 view .LVU2625 8001 0014 2032 adds r2, r2, #32 8002 0016 825C ldrb r2, [r0, r2] 8003 0018 012A cmp r2, #1 8004 001a 00D1 bne .LCB7606 8005 001c 9BE0 b .L483 @long jump 8006 .LCB7606: 3415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8007 .loc 1 3415 5 discriminator 2 view .LVU2626 8008 001e 4022 movs r2, #64 8009 0020 0121 movs r1, #1 8010 .LVL570: 3415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8011 .loc 1 3415 5 is_stmt 0 discriminator 2 view .LVU2627 8012 0022 8154 strb r1, [r0, r2] 3415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8013 .loc 1 3415 5 is_stmt 1 discriminator 2 view .LVU2628 3417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8014 .loc 1 3417 5 view .LVU2629 3417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8015 .loc 1 3417 21 is_stmt 0 view .LVU2630 8016 0024 0132 adds r2, r2, #1 ARM GAS /tmp/ccuRhBPx.s page 312 8017 0026 2031 adds r1, r1, #32 8018 0028 8154 strb r1, [r0, r2] 3418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8019 .loc 1 3418 5 is_stmt 1 view .LVU2631 3418:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8020 .loc 1 3418 21 is_stmt 0 view .LVU2632 8021 002a 0132 adds r2, r2, #1 8022 002c 1139 subs r1, r1, #17 8023 002e 8154 strb r1, [r0, r2] 3419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8024 .loc 1 3419 5 is_stmt 1 view .LVU2633 3419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8025 .loc 1 3419 21 is_stmt 0 view .LVU2634 8026 0030 0022 movs r2, #0 8027 0032 4264 str r2, [r0, #68] 3422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 8028 .loc 1 3422 5 is_stmt 1 view .LVU2635 3422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 8029 .loc 1 3422 23 is_stmt 0 view .LVU2636 8030 0034 4562 str r5, [r0, #36] 3423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8031 .loc 1 3423 5 is_stmt 1 view .LVU2637 3423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8032 .loc 1 3423 23 is_stmt 0 view .LVU2638 8033 0036 4385 strh r3, [r0, #42] 3424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8034 .loc 1 3424 5 is_stmt 1 view .LVU2639 3424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8035 .loc 1 3424 23 is_stmt 0 view .LVU2640 8036 0038 0A9B ldr r3, [sp, #40] 8037 .LVL571: 3424:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8038 .loc 1 3424 23 view .LVU2641 8039 003a C362 str r3, [r0, #44] 8040 .LVL572: 3425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8041 .loc 1 3425 5 is_stmt 1 view .LVU2642 3425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8042 .loc 1 3425 23 is_stmt 0 view .LVU2643 8043 003c 474B ldr r3, .L488 8044 003e 4363 str r3, [r0, #52] 3428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8045 .loc 1 3428 5 is_stmt 1 view .LVU2644 3428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8046 .loc 1 3428 13 is_stmt 0 view .LVU2645 8047 0040 438D ldrh r3, [r0, #42] 8048 0042 9BB2 uxth r3, r3 3428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8049 .loc 1 3428 8 view .LVU2646 8050 0044 FF2B cmp r3, #255 8051 0046 10D9 bls .L473 3430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8052 .loc 1 3430 7 is_stmt 1 view .LVU2647 3430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8053 .loc 1 3430 22 is_stmt 0 view .LVU2648 8054 0048 FF23 movs r3, #255 8055 004a 0385 strh r3, [r0, #40] ARM GAS /tmp/ccuRhBPx.s page 313 3431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8056 .loc 1 3431 7 is_stmt 1 view .LVU2649 8057 .LVL573: 3431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8058 .loc 1 3431 16 is_stmt 0 view .LVU2650 8059 004c 8027 movs r7, #128 8060 004e 7F04 lsls r7, r7, #17 8061 .LVL574: 8062 .L474: 3442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8063 .loc 1 3442 5 is_stmt 1 view .LVU2651 3442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8064 .loc 1 3442 14 is_stmt 0 view .LVU2652 8065 0050 236B ldr r3, [r4, #48] 3442:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8066 .loc 1 3442 8 view .LVU2653 8067 0052 112B cmp r3, #17 8068 0054 0DD1 bne .L475 3443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8069 .loc 1 3443 10 view .LVU2654 8070 0056 0A9B ldr r3, [sp, #40] 8071 0058 AA2B cmp r3, #170 8072 005a 0AD0 beq .L475 3443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8073 .loc 1 3443 10 discriminator 2 view .LVU2655 8074 005c AA23 movs r3, #170 8075 005e 1B02 lsls r3, r3, #8 8076 0060 0A9A ldr r2, [sp, #40] 8077 0062 9A42 cmp r2, r3 8078 0064 05D0 beq .L475 3445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8079 .loc 1 3445 19 view .LVU2656 8080 0066 0026 movs r6, #0 8081 0068 0CE0 b .L476 8082 .LVL575: 8083 .L473: 3435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8084 .loc 1 3435 7 is_stmt 1 view .LVU2657 3435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8085 .loc 1 3435 28 is_stmt 0 view .LVU2658 8086 006a 438D ldrh r3, [r0, #42] 3435:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8087 .loc 1 3435 22 view .LVU2659 8088 006c 0385 strh r3, [r0, #40] 3436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8089 .loc 1 3436 7 is_stmt 1 view .LVU2660 3436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8090 .loc 1 3436 16 is_stmt 0 view .LVU2661 8091 006e C76A ldr r7, [r0, #44] 8092 .LVL576: 3436:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8093 .loc 1 3436 16 view .LVU2662 8094 0070 EEE7 b .L474 8095 .L475: 3450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8096 .loc 1 3450 7 is_stmt 1 view .LVU2663 8097 0072 2000 movs r0, r4 ARM GAS /tmp/ccuRhBPx.s page 314 8098 .LVL577: 3450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8099 .loc 1 3450 7 is_stmt 0 view .LVU2664 8100 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions 8101 .LVL578: 3453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8102 .loc 1 3453 7 is_stmt 1 view .LVU2665 3453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8103 .loc 1 3453 15 is_stmt 0 view .LVU2666 8104 0078 638D ldrh r3, [r4, #42] 8105 007a 9BB2 uxth r3, r3 3453:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8106 .loc 1 3453 10 view .LVU2667 8107 007c FF2B cmp r3, #255 8108 007e 28D8 bhi .L485 3455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8109 .loc 1 3455 9 is_stmt 1 view .LVU2668 3455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8110 .loc 1 3455 18 is_stmt 0 view .LVU2669 8111 0080 E76A ldr r7, [r4, #44] 8112 .LVL579: 3406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8113 .loc 1 3406 12 view .LVU2670 8114 0082 374E ldr r6, .L488+4 8115 .L476: 8116 .LVL580: 3459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8117 .loc 1 3459 5 is_stmt 1 view .LVU2671 3459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8118 .loc 1 3459 13 is_stmt 0 view .LVU2672 8119 0084 228D ldrh r2, [r4, #40] 3459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8120 .loc 1 3459 8 view .LVU2673 8121 0086 002A cmp r2, #0 8122 0088 4ED0 beq .L477 3461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8123 .loc 1 3461 7 is_stmt 1 view .LVU2674 3461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8124 .loc 1 3461 15 is_stmt 0 view .LVU2675 8125 008a A36B ldr r3, [r4, #56] 3461:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8126 .loc 1 3461 10 view .LVU2676 8127 008c 002B cmp r3, #0 8128 008e 22D0 beq .L478 3464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8129 .loc 1 3464 9 is_stmt 1 view .LVU2677 3464:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8130 .loc 1 3464 40 is_stmt 0 view .LVU2678 8131 0090 344A ldr r2, .L488+8 8132 0092 9A62 str r2, [r3, #40] 3467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8133 .loc 1 3467 9 is_stmt 1 view .LVU2679 3467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8134 .loc 1 3467 13 is_stmt 0 view .LVU2680 8135 0094 A36B ldr r3, [r4, #56] 3467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8136 .loc 1 3467 41 view .LVU2681 ARM GAS /tmp/ccuRhBPx.s page 315 8137 0096 344A ldr r2, .L488+12 8138 0098 1A63 str r2, [r3, #48] 3470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8139 .loc 1 3470 9 is_stmt 1 view .LVU2682 3470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8140 .loc 1 3470 13 is_stmt 0 view .LVU2683 8141 009a A26B ldr r2, [r4, #56] 3470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8142 .loc 1 3470 44 view .LVU2684 8143 009c 0023 movs r3, #0 8144 009e D362 str r3, [r2, #44] 3471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8145 .loc 1 3471 9 is_stmt 1 view .LVU2685 3471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8146 .loc 1 3471 13 is_stmt 0 view .LVU2686 8147 00a0 A26B ldr r2, [r4, #56] 3471:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8148 .loc 1 3471 41 view .LVU2687 8149 00a2 5363 str r3, [r2, #52] 3474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 8150 .loc 1 3474 9 is_stmt 1 view .LVU2688 3474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 8151 .loc 1 3474 88 is_stmt 0 view .LVU2689 8152 00a4 2268 ldr r2, [r4] 3474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 8153 .loc 1 3474 83 view .LVU2690 8154 00a6 2832 adds r2, r2, #40 3475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8155 .loc 1 3475 46 view .LVU2691 8156 00a8 238D ldrh r3, [r4, #40] 3474:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 8157 .loc 1 3474 25 view .LVU2692 8158 00aa A06B ldr r0, [r4, #56] 8159 00ac 2900 movs r1, r5 8160 00ae FFF7FEFF bl HAL_DMA_Start_IT 8161 .LVL581: 3492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8162 .loc 1 3492 7 is_stmt 1 view .LVU2693 3492:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8163 .loc 1 3492 10 is_stmt 0 view .LVU2694 8164 00b2 0028 cmp r0, #0 8165 00b4 1DD0 beq .L487 3515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8166 .loc 1 3515 9 is_stmt 1 view .LVU2695 3515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8167 .loc 1 3515 25 is_stmt 0 view .LVU2696 8168 00b6 4123 movs r3, #65 8169 00b8 2022 movs r2, #32 8170 00ba E254 strb r2, [r4, r3] 3516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8171 .loc 1 3516 9 is_stmt 1 view .LVU2697 3516:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8172 .loc 1 3516 25 is_stmt 0 view .LVU2698 8173 00bc 0022 movs r2, #0 8174 00be 0133 adds r3, r3, #1 8175 00c0 E254 strb r2, [r4, r3] 3519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 316 8176 .loc 1 3519 9 is_stmt 1 view .LVU2699 3519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8177 .loc 1 3519 13 is_stmt 0 view .LVU2700 8178 00c2 636C ldr r3, [r4, #68] 3519:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8179 .loc 1 3519 25 view .LVU2701 8180 00c4 1021 movs r1, #16 8181 00c6 0B43 orrs r3, r1 8182 00c8 6364 str r3, [r4, #68] 3522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8183 .loc 1 3522 9 is_stmt 1 view .LVU2702 3522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8184 .loc 1 3522 9 view .LVU2703 8185 00ca 4023 movs r3, #64 8186 00cc E254 strb r2, [r4, r3] 3522:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8187 .loc 1 3522 9 view .LVU2704 3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8188 .loc 1 3524 9 view .LVU2705 3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8189 .loc 1 3524 16 is_stmt 0 view .LVU2706 8190 00ce 0120 movs r0, #1 8191 .LVL582: 3524:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8192 .loc 1 3524 16 view .LVU2707 8193 00d0 3FE0 b .L472 8194 .LVL583: 8195 .L485: 3406:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8196 .loc 1 3406 12 view .LVU2708 8197 00d2 234E ldr r6, .L488+4 8198 00d4 D6E7 b .L476 8199 .LVL584: 8200 .L478: 3480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8201 .loc 1 3480 9 is_stmt 1 view .LVU2709 3480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8202 .loc 1 3480 25 is_stmt 0 view .LVU2710 8203 00d6 4123 movs r3, #65 8204 00d8 2022 movs r2, #32 8205 00da E254 strb r2, [r4, r3] 3481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8206 .loc 1 3481 9 is_stmt 1 view .LVU2711 3481:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8207 .loc 1 3481 25 is_stmt 0 view .LVU2712 8208 00dc 0022 movs r2, #0 8209 00de 0133 adds r3, r3, #1 8210 00e0 E254 strb r2, [r4, r3] 3484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8211 .loc 1 3484 9 is_stmt 1 view .LVU2713 3484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8212 .loc 1 3484 13 is_stmt 0 view .LVU2714 8213 00e2 636C ldr r3, [r4, #68] 3484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8214 .loc 1 3484 25 view .LVU2715 8215 00e4 8021 movs r1, #128 8216 00e6 0B43 orrs r3, r1 ARM GAS /tmp/ccuRhBPx.s page 317 8217 00e8 6364 str r3, [r4, #68] 3487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8218 .loc 1 3487 9 is_stmt 1 view .LVU2716 3487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8219 .loc 1 3487 9 view .LVU2717 8220 00ea 4023 movs r3, #64 8221 00ec E254 strb r2, [r4, r3] 3487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8222 .loc 1 3487 9 view .LVU2718 3489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8223 .loc 1 3489 9 view .LVU2719 3489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8224 .loc 1 3489 16 is_stmt 0 view .LVU2720 8225 00ee 0120 movs r0, #1 8226 00f0 2FE0 b .L472 8227 .LVL585: 8228 .L487: 3495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8229 .loc 1 3495 9 is_stmt 1 view .LVU2721 3495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8230 .loc 1 3495 59 is_stmt 0 view .LVU2722 8231 00f2 228D ldrh r2, [r4, #40] 3495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8232 .loc 1 3495 9 view .LVU2723 8233 00f4 D2B2 uxtb r2, r2 8234 00f6 0096 str r6, [sp] 8235 00f8 3B00 movs r3, r7 8236 00fa 0399 ldr r1, [sp, #12] 8237 00fc 2000 movs r0, r4 8238 .LVL586: 3495:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8239 .loc 1 3495 9 view .LVU2724 8240 00fe FFF7FEFF bl I2C_TransferConfig 8241 .LVL587: 3498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8242 .loc 1 3498 9 is_stmt 1 view .LVU2725 3498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8243 .loc 1 3498 13 is_stmt 0 view .LVU2726 8244 0102 638D ldrh r3, [r4, #42] 3498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8245 .loc 1 3498 32 view .LVU2727 8246 0104 228D ldrh r2, [r4, #40] 3498:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8247 .loc 1 3498 25 view .LVU2728 8248 0106 9B1A subs r3, r3, r2 8249 0108 9BB2 uxth r3, r3 8250 010a 6385 strh r3, [r4, #42] 3501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8251 .loc 1 3501 9 is_stmt 1 view .LVU2729 3501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8252 .loc 1 3501 9 view .LVU2730 8253 010c 4023 movs r3, #64 8254 010e 0022 movs r2, #0 8255 0110 E254 strb r2, [r4, r3] 3501:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8256 .loc 1 3501 9 view .LVU2731 3507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 318 8257 .loc 1 3507 9 view .LVU2732 8258 0112 1021 movs r1, #16 8259 0114 2000 movs r0, r4 8260 0116 FFF7FEFF bl I2C_Enable_IRQ 8261 .LVL588: 3510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8262 .loc 1 3510 9 view .LVU2733 3510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8263 .loc 1 3510 13 is_stmt 0 view .LVU2734 8264 011a 2268 ldr r2, [r4] 3510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8265 .loc 1 3510 23 view .LVU2735 8266 011c 1168 ldr r1, [r2] 3510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8267 .loc 1 3510 29 view .LVU2736 8268 011e 8023 movs r3, #128 8269 0120 DB01 lsls r3, r3, #7 8270 0122 0B43 orrs r3, r1 8271 0124 1360 str r3, [r2] 8272 0126 11E0 b .L481 8273 .LVL589: 8274 .L477: 3530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8275 .loc 1 3530 7 is_stmt 1 view .LVU2737 3530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8276 .loc 1 3530 21 is_stmt 0 view .LVU2738 8277 0128 104B ldr r3, .L488+16 8278 012a 6363 str r3, [r4, #52] 3534:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 8279 .loc 1 3534 7 is_stmt 1 view .LVU2739 8280 012c 8023 movs r3, #128 8281 012e D2B2 uxtb r2, r2 8282 0130 0B49 ldr r1, .L488+4 8283 0132 0091 str r1, [sp] 8284 0134 9B04 lsls r3, r3, #18 8285 0136 0399 ldr r1, [sp, #12] 8286 0138 2000 movs r0, r4 8287 013a FFF7FEFF bl I2C_TransferConfig 8288 .LVL590: 3538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8289 .loc 1 3538 7 view .LVU2740 3538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8290 .loc 1 3538 7 view .LVU2741 8291 013e 4023 movs r3, #64 8292 0140 0022 movs r2, #0 8293 0142 E254 strb r2, [r4, r3] 3538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8294 .loc 1 3538 7 view .LVU2742 3547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8295 .loc 1 3547 7 view .LVU2743 8296 0144 0121 movs r1, #1 8297 0146 2000 movs r0, r4 8298 0148 FFF7FEFF bl I2C_Enable_IRQ 8299 .LVL591: 8300 .L481: 3550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8301 .loc 1 3550 5 view .LVU2744 ARM GAS /tmp/ccuRhBPx.s page 319 3550:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8302 .loc 1 3550 12 is_stmt 0 view .LVU2745 8303 014c 0020 movs r0, #0 8304 014e 00E0 b .L472 8305 .LVL592: 8306 .L482: 3554:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8307 .loc 1 3554 12 view .LVU2746 8308 0150 0220 movs r0, #2 8309 .LVL593: 8310 .L472: 3556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8311 .loc 1 3556 1 view .LVU2747 8312 0152 05B0 add sp, sp, #20 8313 @ sp needed 8314 .LVL594: 8315 .LVL595: 3556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8316 .loc 1 3556 1 view .LVU2748 8317 0154 F0BD pop {r4, r5, r6, r7, pc} 8318 .LVL596: 8319 .L483: 3415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8320 .loc 1 3415 5 discriminator 1 view .LVU2749 8321 0156 0220 movs r0, #2 8322 .LVL597: 3415:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8323 .loc 1 3415 5 discriminator 1 view .LVU2750 8324 0158 FBE7 b .L472 8325 .L489: 8326 015a C046 .align 2 8327 .L488: 8328 015c 00000000 .word I2C_Master_ISR_DMA 8329 0160 00200080 .word -2147475456 8330 0164 00000000 .word I2C_DMAMasterTransmitCplt 8331 0168 00000000 .word I2C_DMAError 8332 016c 00000000 .word I2C_Master_ISR_IT 8333 .cfi_endproc 8334 .LFE64: 8336 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits 8337 .align 1 8338 .global HAL_I2C_Master_Seq_Receive_IT 8339 .syntax unified 8340 .code 16 8341 .thumb_func 8343 HAL_I2C_Master_Seq_Receive_IT: 8344 .LVL598: 8345 .LFB65: 3572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 8346 .loc 1 3572 1 is_stmt 1 view -0 8347 .cfi_startproc 8348 @ args = 4, pretend = 0, frame = 0 8349 @ frame_needed = 0, uses_anonymous_args = 0 3572:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 8350 .loc 1 3572 1 is_stmt 0 view .LVU2752 8351 0000 70B5 push {r4, r5, r6, lr} 8352 .cfi_def_cfa_offset 16 ARM GAS /tmp/ccuRhBPx.s page 320 8353 .cfi_offset 4, -16 8354 .cfi_offset 5, -12 8355 .cfi_offset 6, -8 8356 .cfi_offset 14, -4 8357 0002 82B0 sub sp, sp, #8 8358 .cfi_def_cfa_offset 24 8359 0004 0400 movs r4, r0 8360 0006 0D00 movs r5, r1 3573:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 8361 .loc 1 3573 3 is_stmt 1 view .LVU2753 3574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8362 .loc 1 3574 3 view .LVU2754 8363 .LVL599: 3577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8364 .loc 1 3577 3 view .LVU2755 3579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8365 .loc 1 3579 3 view .LVU2756 3579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8366 .loc 1 3579 11 is_stmt 0 view .LVU2757 8367 0008 4121 movs r1, #65 8368 .LVL600: 3579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8369 .loc 1 3579 11 view .LVU2758 8370 000a 415C ldrb r1, [r0, r1] 3579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8371 .loc 1 3579 6 view .LVU2759 8372 000c 2029 cmp r1, #32 8373 000e 4AD1 bne .L496 3582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8374 .loc 1 3582 5 is_stmt 1 view .LVU2760 3582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8375 .loc 1 3582 5 view .LVU2761 8376 0010 2031 adds r1, r1, #32 8377 0012 415C ldrb r1, [r0, r1] 8378 0014 0129 cmp r1, #1 8379 0016 48D0 beq .L497 3582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8380 .loc 1 3582 5 discriminator 2 view .LVU2762 8381 0018 4021 movs r1, #64 8382 001a 0120 movs r0, #1 8383 .LVL601: 3582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8384 .loc 1 3582 5 is_stmt 0 discriminator 2 view .LVU2763 8385 001c 6054 strb r0, [r4, r1] 3582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8386 .loc 1 3582 5 is_stmt 1 discriminator 2 view .LVU2764 3584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8387 .loc 1 3584 5 view .LVU2765 3584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8388 .loc 1 3584 21 is_stmt 0 view .LVU2766 8389 001e 0131 adds r1, r1, #1 8390 0020 2130 adds r0, r0, #33 8391 0022 6054 strb r0, [r4, r1] 3585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8392 .loc 1 3585 5 is_stmt 1 view .LVU2767 3585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8393 .loc 1 3585 21 is_stmt 0 view .LVU2768 ARM GAS /tmp/ccuRhBPx.s page 321 8394 0024 0131 adds r1, r1, #1 8395 0026 1238 subs r0, r0, #18 8396 0028 6054 strb r0, [r4, r1] 3586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8397 .loc 1 3586 5 is_stmt 1 view .LVU2769 3586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8398 .loc 1 3586 21 is_stmt 0 view .LVU2770 8399 002a 0021 movs r1, #0 8400 002c 6164 str r1, [r4, #68] 3589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 8401 .loc 1 3589 5 is_stmt 1 view .LVU2771 3589:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 8402 .loc 1 3589 23 is_stmt 0 view .LVU2772 8403 002e 6262 str r2, [r4, #36] 3590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8404 .loc 1 3590 5 is_stmt 1 view .LVU2773 3590:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8405 .loc 1 3590 23 is_stmt 0 view .LVU2774 8406 0030 6385 strh r3, [r4, #42] 3591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 8407 .loc 1 3591 5 is_stmt 1 view .LVU2775 3591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 8408 .loc 1 3591 23 is_stmt 0 view .LVU2776 8409 0032 069B ldr r3, [sp, #24] 8410 .LVL602: 3591:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 8411 .loc 1 3591 23 view .LVU2777 8412 0034 E362 str r3, [r4, #44] 8413 .LVL603: 3592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8414 .loc 1 3592 5 is_stmt 1 view .LVU2778 3592:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8415 .loc 1 3592 23 is_stmt 0 view .LVU2779 8416 0036 1E4B ldr r3, .L500 8417 0038 6363 str r3, [r4, #52] 3595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8418 .loc 1 3595 5 is_stmt 1 view .LVU2780 3595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8419 .loc 1 3595 13 is_stmt 0 view .LVU2781 8420 003a 638D ldrh r3, [r4, #42] 8421 003c 9BB2 uxth r3, r3 3595:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8422 .loc 1 3595 8 view .LVU2782 8423 003e FF2B cmp r3, #255 8424 0040 10D9 bls .L492 3597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8425 .loc 1 3597 7 is_stmt 1 view .LVU2783 3597:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8426 .loc 1 3597 22 is_stmt 0 view .LVU2784 8427 0042 FF23 movs r3, #255 8428 0044 2385 strh r3, [r4, #40] 3598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8429 .loc 1 3598 7 is_stmt 1 view .LVU2785 8430 .LVL604: 3598:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8431 .loc 1 3598 16 is_stmt 0 view .LVU2786 8432 0046 8026 movs r6, #128 ARM GAS /tmp/ccuRhBPx.s page 322 8433 0048 7604 lsls r6, r6, #17 8434 .LVL605: 8435 .L493: 3609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8436 .loc 1 3609 5 is_stmt 1 view .LVU2787 3609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8437 .loc 1 3609 14 is_stmt 0 view .LVU2788 8438 004a 236B ldr r3, [r4, #48] 3609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8439 .loc 1 3609 8 view .LVU2789 8440 004c 122B cmp r3, #18 8441 004e 0DD1 bne .L494 3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8442 .loc 1 3610 10 view .LVU2790 8443 0050 069B ldr r3, [sp, #24] 8444 0052 AA2B cmp r3, #170 8445 0054 0AD0 beq .L494 3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8446 .loc 1 3610 10 discriminator 2 view .LVU2791 8447 0056 AA23 movs r3, #170 8448 0058 1B02 lsls r3, r3, #8 8449 005a 069A ldr r2, [sp, #24] 8450 .LVL606: 3610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8451 .loc 1 3610 10 discriminator 2 view .LVU2792 8452 005c 9A42 cmp r2, r3 8453 005e 05D0 beq .L494 3612:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8454 .loc 1 3612 19 view .LVU2793 8455 0060 0023 movs r3, #0 8456 0062 0CE0 b .L495 8457 .LVL607: 8458 .L492: 3602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8459 .loc 1 3602 7 is_stmt 1 view .LVU2794 3602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8460 .loc 1 3602 28 is_stmt 0 view .LVU2795 8461 0064 638D ldrh r3, [r4, #42] 3602:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8462 .loc 1 3602 22 view .LVU2796 8463 0066 2385 strh r3, [r4, #40] 3603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8464 .loc 1 3603 7 is_stmt 1 view .LVU2797 3603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8465 .loc 1 3603 16 is_stmt 0 view .LVU2798 8466 0068 E66A ldr r6, [r4, #44] 8467 .LVL608: 3603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8468 .loc 1 3603 16 view .LVU2799 8469 006a EEE7 b .L493 8470 .LVL609: 8471 .L494: 3617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8472 .loc 1 3617 7 is_stmt 1 view .LVU2800 8473 006c 2000 movs r0, r4 8474 006e FFF7FEFF bl I2C_ConvertOtherXferOptions 8475 .LVL610: ARM GAS /tmp/ccuRhBPx.s page 323 3620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8476 .loc 1 3620 7 view .LVU2801 3620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8477 .loc 1 3620 15 is_stmt 0 view .LVU2802 8478 0072 638D ldrh r3, [r4, #42] 8479 0074 9BB2 uxth r3, r3 3620:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8480 .loc 1 3620 10 view .LVU2803 8481 0076 FF2B cmp r3, #255 8482 0078 13D8 bhi .L499 3622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8483 .loc 1 3622 9 is_stmt 1 view .LVU2804 3622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8484 .loc 1 3622 18 is_stmt 0 view .LVU2805 8485 007a E66A ldr r6, [r4, #44] 8486 .LVL611: 3574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8487 .loc 1 3574 12 view .LVU2806 8488 007c 0D4B ldr r3, .L500+4 8489 .L495: 8490 .LVL612: 3627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8491 .loc 1 3627 5 is_stmt 1 view .LVU2807 3627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8492 .loc 1 3627 55 is_stmt 0 view .LVU2808 8493 007e 228D ldrh r2, [r4, #40] 3627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8494 .loc 1 3627 5 view .LVU2809 8495 0080 D2B2 uxtb r2, r2 8496 0082 0093 str r3, [sp] 8497 0084 3300 movs r3, r6 8498 .LVL613: 3627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8499 .loc 1 3627 5 view .LVU2810 8500 0086 2900 movs r1, r5 8501 0088 2000 movs r0, r4 8502 008a FFF7FEFF bl I2C_TransferConfig 8503 .LVL614: 3630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8504 .loc 1 3630 5 is_stmt 1 view .LVU2811 3630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8505 .loc 1 3630 5 view .LVU2812 8506 008e 4023 movs r3, #64 8507 0090 0022 movs r2, #0 8508 0092 E254 strb r2, [r4, r3] 3630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8509 .loc 1 3630 5 view .LVU2813 3635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8510 .loc 1 3635 5 view .LVU2814 8511 0094 0221 movs r1, #2 8512 0096 2000 movs r0, r4 8513 0098 FFF7FEFF bl I2C_Enable_IRQ 8514 .LVL615: 3637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8515 .loc 1 3637 5 view .LVU2815 3637:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8516 .loc 1 3637 12 is_stmt 0 view .LVU2816 ARM GAS /tmp/ccuRhBPx.s page 324 8517 009c 0020 movs r0, #0 8518 .LVL616: 8519 .L491: 3643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8520 .loc 1 3643 1 view .LVU2817 8521 009e 02B0 add sp, sp, #8 8522 @ sp needed 8523 .LVL617: 8524 .LVL618: 3643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8525 .loc 1 3643 1 view .LVU2818 8526 00a0 70BD pop {r4, r5, r6, pc} 8527 .LVL619: 8528 .L499: 3574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8529 .loc 1 3574 12 view .LVU2819 8530 00a2 044B ldr r3, .L500+4 8531 00a4 EBE7 b .L495 8532 .LVL620: 8533 .L496: 3641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8534 .loc 1 3641 12 view .LVU2820 8535 00a6 0220 movs r0, #2 8536 .LVL621: 3641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8537 .loc 1 3641 12 view .LVU2821 8538 00a8 F9E7 b .L491 8539 .LVL622: 8540 .L497: 3582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8541 .loc 1 3582 5 discriminator 1 view .LVU2822 8542 00aa 0220 movs r0, #2 8543 .LVL623: 3582:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8544 .loc 1 3582 5 discriminator 1 view .LVU2823 8545 00ac F7E7 b .L491 8546 .L501: 8547 00ae C046 .align 2 8548 .L500: 8549 00b0 00000000 .word I2C_Master_ISR_IT 8550 00b4 00240080 .word -2147474432 8551 .cfi_endproc 8552 .LFE65: 8554 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits 8555 .align 1 8556 .global HAL_I2C_Master_Seq_Receive_DMA 8557 .syntax unified 8558 .code 16 8559 .thumb_func 8561 HAL_I2C_Master_Seq_Receive_DMA: 8562 .LVL624: 8563 .LFB66: 3659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 8564 .loc 1 3659 1 is_stmt 1 view -0 8565 .cfi_startproc 8566 @ args = 4, pretend = 0, frame = 8 8567 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccuRhBPx.s page 325 3659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 8568 .loc 1 3659 1 is_stmt 0 view .LVU2825 8569 0000 F0B5 push {r4, r5, r6, r7, lr} 8570 .cfi_def_cfa_offset 20 8571 .cfi_offset 4, -20 8572 .cfi_offset 5, -16 8573 .cfi_offset 6, -12 8574 .cfi_offset 7, -8 8575 .cfi_offset 14, -4 8576 0002 85B0 sub sp, sp, #20 8577 .cfi_def_cfa_offset 40 8578 0004 0400 movs r4, r0 8579 0006 0391 str r1, [sp, #12] 8580 0008 1500 movs r5, r2 3660:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 8581 .loc 1 3660 3 is_stmt 1 view .LVU2826 3661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8582 .loc 1 3661 3 view .LVU2827 8583 .LVL625: 3662:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8584 .loc 1 3662 3 view .LVU2828 3665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8585 .loc 1 3665 3 view .LVU2829 3667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8586 .loc 1 3667 3 view .LVU2830 3667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8587 .loc 1 3667 11 is_stmt 0 view .LVU2831 8588 000a 4122 movs r2, #65 8589 .LVL626: 3667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8590 .loc 1 3667 11 view .LVU2832 8591 000c 825C ldrb r2, [r0, r2] 3667:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8592 .loc 1 3667 6 view .LVU2833 8593 000e 202A cmp r2, #32 8594 0010 00D0 beq .LCB8169 8595 0012 9DE0 b .L513 @long jump 8596 .LCB8169: 3670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8597 .loc 1 3670 5 is_stmt 1 view .LVU2834 3670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8598 .loc 1 3670 5 view .LVU2835 8599 0014 2032 adds r2, r2, #32 8600 0016 825C ldrb r2, [r0, r2] 8601 0018 012A cmp r2, #1 8602 001a 00D1 bne .LCB8175 8603 001c 9BE0 b .L514 @long jump 8604 .LCB8175: 3670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8605 .loc 1 3670 5 discriminator 2 view .LVU2836 8606 001e 4022 movs r2, #64 8607 0020 0121 movs r1, #1 8608 .LVL627: 3670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8609 .loc 1 3670 5 is_stmt 0 discriminator 2 view .LVU2837 8610 0022 8154 strb r1, [r0, r2] 3670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 326 8611 .loc 1 3670 5 is_stmt 1 discriminator 2 view .LVU2838 3672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8612 .loc 1 3672 5 view .LVU2839 3672:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8613 .loc 1 3672 21 is_stmt 0 view .LVU2840 8614 0024 0132 adds r2, r2, #1 8615 0026 2131 adds r1, r1, #33 8616 0028 8154 strb r1, [r0, r2] 3673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8617 .loc 1 3673 5 is_stmt 1 view .LVU2841 3673:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8618 .loc 1 3673 21 is_stmt 0 view .LVU2842 8619 002a 0132 adds r2, r2, #1 8620 002c 1239 subs r1, r1, #18 8621 002e 8154 strb r1, [r0, r2] 3674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8622 .loc 1 3674 5 is_stmt 1 view .LVU2843 3674:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8623 .loc 1 3674 21 is_stmt 0 view .LVU2844 8624 0030 0022 movs r2, #0 8625 0032 4264 str r2, [r0, #68] 3677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 8626 .loc 1 3677 5 is_stmt 1 view .LVU2845 3677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 8627 .loc 1 3677 23 is_stmt 0 view .LVU2846 8628 0034 4562 str r5, [r0, #36] 3678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8629 .loc 1 3678 5 is_stmt 1 view .LVU2847 3678:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8630 .loc 1 3678 23 is_stmt 0 view .LVU2848 8631 0036 4385 strh r3, [r0, #42] 3679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8632 .loc 1 3679 5 is_stmt 1 view .LVU2849 3679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8633 .loc 1 3679 23 is_stmt 0 view .LVU2850 8634 0038 0A9B ldr r3, [sp, #40] 8635 .LVL628: 3679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8636 .loc 1 3679 23 view .LVU2851 8637 003a C362 str r3, [r0, #44] 8638 .LVL629: 3680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8639 .loc 1 3680 5 is_stmt 1 view .LVU2852 3680:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8640 .loc 1 3680 23 is_stmt 0 view .LVU2853 8641 003c 474B ldr r3, .L519 8642 003e 4363 str r3, [r0, #52] 3683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8643 .loc 1 3683 5 is_stmt 1 view .LVU2854 3683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8644 .loc 1 3683 13 is_stmt 0 view .LVU2855 8645 0040 438D ldrh r3, [r0, #42] 8646 0042 9BB2 uxth r3, r3 3683:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8647 .loc 1 3683 8 view .LVU2856 8648 0044 FF2B cmp r3, #255 8649 0046 10D9 bls .L504 ARM GAS /tmp/ccuRhBPx.s page 327 3685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8650 .loc 1 3685 7 is_stmt 1 view .LVU2857 3685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8651 .loc 1 3685 22 is_stmt 0 view .LVU2858 8652 0048 FF23 movs r3, #255 8653 004a 0385 strh r3, [r0, #40] 3686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8654 .loc 1 3686 7 is_stmt 1 view .LVU2859 8655 .LVL630: 3686:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8656 .loc 1 3686 16 is_stmt 0 view .LVU2860 8657 004c 8027 movs r7, #128 8658 004e 7F04 lsls r7, r7, #17 8659 .LVL631: 8660 .L505: 3697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8661 .loc 1 3697 5 is_stmt 1 view .LVU2861 3697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8662 .loc 1 3697 14 is_stmt 0 view .LVU2862 8663 0050 236B ldr r3, [r4, #48] 3697:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8664 .loc 1 3697 8 view .LVU2863 8665 0052 122B cmp r3, #18 8666 0054 0DD1 bne .L506 3698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8667 .loc 1 3698 10 view .LVU2864 8668 0056 0A9B ldr r3, [sp, #40] 8669 0058 AA2B cmp r3, #170 8670 005a 0AD0 beq .L506 3698:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8671 .loc 1 3698 10 discriminator 2 view .LVU2865 8672 005c AA23 movs r3, #170 8673 005e 1B02 lsls r3, r3, #8 8674 0060 0A9A ldr r2, [sp, #40] 8675 0062 9A42 cmp r2, r3 8676 0064 05D0 beq .L506 3700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8677 .loc 1 3700 19 view .LVU2866 8678 0066 0026 movs r6, #0 8679 0068 0CE0 b .L507 8680 .LVL632: 8681 .L504: 3690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8682 .loc 1 3690 7 is_stmt 1 view .LVU2867 3690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8683 .loc 1 3690 28 is_stmt 0 view .LVU2868 8684 006a 438D ldrh r3, [r0, #42] 3690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8685 .loc 1 3690 22 view .LVU2869 8686 006c 0385 strh r3, [r0, #40] 3691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8687 .loc 1 3691 7 is_stmt 1 view .LVU2870 3691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8688 .loc 1 3691 16 is_stmt 0 view .LVU2871 8689 006e C76A ldr r7, [r0, #44] 8690 .LVL633: 3691:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 328 8691 .loc 1 3691 16 view .LVU2872 8692 0070 EEE7 b .L505 8693 .L506: 3705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8694 .loc 1 3705 7 is_stmt 1 view .LVU2873 8695 0072 2000 movs r0, r4 8696 .LVL634: 3705:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8697 .loc 1 3705 7 is_stmt 0 view .LVU2874 8698 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions 8699 .LVL635: 3708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8700 .loc 1 3708 7 is_stmt 1 view .LVU2875 3708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8701 .loc 1 3708 15 is_stmt 0 view .LVU2876 8702 0078 638D ldrh r3, [r4, #42] 8703 007a 9BB2 uxth r3, r3 3708:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8704 .loc 1 3708 10 view .LVU2877 8705 007c FF2B cmp r3, #255 8706 007e 28D8 bhi .L516 3710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8707 .loc 1 3710 9 is_stmt 1 view .LVU2878 3710:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8708 .loc 1 3710 18 is_stmt 0 view .LVU2879 8709 0080 E76A ldr r7, [r4, #44] 8710 .LVL636: 3661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8711 .loc 1 3661 12 view .LVU2880 8712 0082 374E ldr r6, .L519+4 8713 .L507: 8714 .LVL637: 3714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8715 .loc 1 3714 5 is_stmt 1 view .LVU2881 3714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8716 .loc 1 3714 13 is_stmt 0 view .LVU2882 8717 0084 228D ldrh r2, [r4, #40] 3714:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8718 .loc 1 3714 8 view .LVU2883 8719 0086 002A cmp r2, #0 8720 0088 4ED0 beq .L508 3716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8721 .loc 1 3716 7 is_stmt 1 view .LVU2884 3716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8722 .loc 1 3716 15 is_stmt 0 view .LVU2885 8723 008a E36B ldr r3, [r4, #60] 3716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8724 .loc 1 3716 10 view .LVU2886 8725 008c 002B cmp r3, #0 8726 008e 22D0 beq .L509 3719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8727 .loc 1 3719 9 is_stmt 1 view .LVU2887 3719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8728 .loc 1 3719 40 is_stmt 0 view .LVU2888 8729 0090 344A ldr r2, .L519+8 8730 0092 9A62 str r2, [r3, #40] 3722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 329 8731 .loc 1 3722 9 is_stmt 1 view .LVU2889 3722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8732 .loc 1 3722 13 is_stmt 0 view .LVU2890 8733 0094 E36B ldr r3, [r4, #60] 3722:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8734 .loc 1 3722 41 view .LVU2891 8735 0096 344A ldr r2, .L519+12 8736 0098 1A63 str r2, [r3, #48] 3725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8737 .loc 1 3725 9 is_stmt 1 view .LVU2892 3725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8738 .loc 1 3725 13 is_stmt 0 view .LVU2893 8739 009a E26B ldr r2, [r4, #60] 3725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8740 .loc 1 3725 44 view .LVU2894 8741 009c 0023 movs r3, #0 8742 009e D362 str r3, [r2, #44] 3726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8743 .loc 1 3726 9 is_stmt 1 view .LVU2895 3726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8744 .loc 1 3726 13 is_stmt 0 view .LVU2896 8745 00a0 E26B ldr r2, [r4, #60] 3726:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8746 .loc 1 3726 41 view .LVU2897 8747 00a2 5363 str r3, [r2, #52] 3729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 8748 .loc 1 3729 9 is_stmt 1 view .LVU2898 3729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 8749 .loc 1 3729 71 is_stmt 0 view .LVU2899 8750 00a4 2168 ldr r1, [r4] 3729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 8751 .loc 1 3729 66 view .LVU2900 8752 00a6 2431 adds r1, r1, #36 3730:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8753 .loc 1 3730 46 view .LVU2901 8754 00a8 238D ldrh r3, [r4, #40] 3729:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 8755 .loc 1 3729 25 view .LVU2902 8756 00aa E06B ldr r0, [r4, #60] 8757 00ac 2A00 movs r2, r5 8758 00ae FFF7FEFF bl HAL_DMA_Start_IT 8759 .LVL638: 3747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8760 .loc 1 3747 7 is_stmt 1 view .LVU2903 3747:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8761 .loc 1 3747 10 is_stmt 0 view .LVU2904 8762 00b2 0028 cmp r0, #0 8763 00b4 1DD0 beq .L518 3770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8764 .loc 1 3770 9 is_stmt 1 view .LVU2905 3770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8765 .loc 1 3770 25 is_stmt 0 view .LVU2906 8766 00b6 4123 movs r3, #65 8767 00b8 2022 movs r2, #32 8768 00ba E254 strb r2, [r4, r3] 3771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8769 .loc 1 3771 9 is_stmt 1 view .LVU2907 ARM GAS /tmp/ccuRhBPx.s page 330 3771:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8770 .loc 1 3771 25 is_stmt 0 view .LVU2908 8771 00bc 0022 movs r2, #0 8772 00be 0133 adds r3, r3, #1 8773 00c0 E254 strb r2, [r4, r3] 3774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8774 .loc 1 3774 9 is_stmt 1 view .LVU2909 3774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8775 .loc 1 3774 13 is_stmt 0 view .LVU2910 8776 00c2 636C ldr r3, [r4, #68] 3774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8777 .loc 1 3774 25 view .LVU2911 8778 00c4 1021 movs r1, #16 8779 00c6 0B43 orrs r3, r1 8780 00c8 6364 str r3, [r4, #68] 3777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8781 .loc 1 3777 9 is_stmt 1 view .LVU2912 3777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8782 .loc 1 3777 9 view .LVU2913 8783 00ca 4023 movs r3, #64 8784 00cc E254 strb r2, [r4, r3] 3777:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8785 .loc 1 3777 9 view .LVU2914 3779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8786 .loc 1 3779 9 view .LVU2915 3779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8787 .loc 1 3779 16 is_stmt 0 view .LVU2916 8788 00ce 0120 movs r0, #1 8789 .LVL639: 3779:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8790 .loc 1 3779 16 view .LVU2917 8791 00d0 3FE0 b .L503 8792 .LVL640: 8793 .L516: 3661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8794 .loc 1 3661 12 view .LVU2918 8795 00d2 234E ldr r6, .L519+4 8796 00d4 D6E7 b .L507 8797 .LVL641: 8798 .L509: 3735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8799 .loc 1 3735 9 is_stmt 1 view .LVU2919 3735:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8800 .loc 1 3735 25 is_stmt 0 view .LVU2920 8801 00d6 4123 movs r3, #65 8802 00d8 2022 movs r2, #32 8803 00da E254 strb r2, [r4, r3] 3736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8804 .loc 1 3736 9 is_stmt 1 view .LVU2921 3736:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8805 .loc 1 3736 25 is_stmt 0 view .LVU2922 8806 00dc 0022 movs r2, #0 8807 00de 0133 adds r3, r3, #1 8808 00e0 E254 strb r2, [r4, r3] 3739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8809 .loc 1 3739 9 is_stmt 1 view .LVU2923 3739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 331 8810 .loc 1 3739 13 is_stmt 0 view .LVU2924 8811 00e2 636C ldr r3, [r4, #68] 3739:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8812 .loc 1 3739 25 view .LVU2925 8813 00e4 8021 movs r1, #128 8814 00e6 0B43 orrs r3, r1 8815 00e8 6364 str r3, [r4, #68] 3742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8816 .loc 1 3742 9 is_stmt 1 view .LVU2926 3742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8817 .loc 1 3742 9 view .LVU2927 8818 00ea 4023 movs r3, #64 8819 00ec E254 strb r2, [r4, r3] 3742:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8820 .loc 1 3742 9 view .LVU2928 3744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8821 .loc 1 3744 9 view .LVU2929 3744:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8822 .loc 1 3744 16 is_stmt 0 view .LVU2930 8823 00ee 0120 movs r0, #1 8824 00f0 2FE0 b .L503 8825 .LVL642: 8826 .L518: 3750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8827 .loc 1 3750 9 is_stmt 1 view .LVU2931 3750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8828 .loc 1 3750 59 is_stmt 0 view .LVU2932 8829 00f2 228D ldrh r2, [r4, #40] 3750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8830 .loc 1 3750 9 view .LVU2933 8831 00f4 D2B2 uxtb r2, r2 8832 00f6 0096 str r6, [sp] 8833 00f8 3B00 movs r3, r7 8834 00fa 0399 ldr r1, [sp, #12] 8835 00fc 2000 movs r0, r4 8836 .LVL643: 3750:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8837 .loc 1 3750 9 view .LVU2934 8838 00fe FFF7FEFF bl I2C_TransferConfig 8839 .LVL644: 3753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8840 .loc 1 3753 9 is_stmt 1 view .LVU2935 3753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8841 .loc 1 3753 13 is_stmt 0 view .LVU2936 8842 0102 638D ldrh r3, [r4, #42] 3753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8843 .loc 1 3753 32 view .LVU2937 8844 0104 228D ldrh r2, [r4, #40] 3753:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8845 .loc 1 3753 25 view .LVU2938 8846 0106 9B1A subs r3, r3, r2 8847 0108 9BB2 uxth r3, r3 8848 010a 6385 strh r3, [r4, #42] 3756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8849 .loc 1 3756 9 is_stmt 1 view .LVU2939 3756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8850 .loc 1 3756 9 view .LVU2940 ARM GAS /tmp/ccuRhBPx.s page 332 8851 010c 4023 movs r3, #64 8852 010e 0022 movs r2, #0 8853 0110 E254 strb r2, [r4, r3] 3756:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8854 .loc 1 3756 9 view .LVU2941 3762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8855 .loc 1 3762 9 view .LVU2942 8856 0112 1021 movs r1, #16 8857 0114 2000 movs r0, r4 8858 0116 FFF7FEFF bl I2C_Enable_IRQ 8859 .LVL645: 3765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8860 .loc 1 3765 9 view .LVU2943 3765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8861 .loc 1 3765 13 is_stmt 0 view .LVU2944 8862 011a 2268 ldr r2, [r4] 3765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8863 .loc 1 3765 23 view .LVU2945 8864 011c 1168 ldr r1, [r2] 3765:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8865 .loc 1 3765 29 view .LVU2946 8866 011e 8023 movs r3, #128 8867 0120 1B02 lsls r3, r3, #8 8868 0122 0B43 orrs r3, r1 8869 0124 1360 str r3, [r2] 8870 0126 11E0 b .L512 8871 .LVL646: 8872 .L508: 3785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8873 .loc 1 3785 7 is_stmt 1 view .LVU2947 3785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8874 .loc 1 3785 21 is_stmt 0 view .LVU2948 8875 0128 104B ldr r3, .L519+16 8876 012a 6363 str r3, [r4, #52] 3789:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_GENERATE_START_READ); 8877 .loc 1 3789 7 is_stmt 1 view .LVU2949 8878 012c 8023 movs r3, #128 8879 012e D2B2 uxtb r2, r2 8880 0130 0B49 ldr r1, .L519+4 8881 0132 0091 str r1, [sp] 8882 0134 9B04 lsls r3, r3, #18 8883 0136 0399 ldr r1, [sp, #12] 8884 0138 2000 movs r0, r4 8885 013a FFF7FEFF bl I2C_TransferConfig 8886 .LVL647: 3793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8887 .loc 1 3793 7 view .LVU2950 3793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8888 .loc 1 3793 7 view .LVU2951 8889 013e 4023 movs r3, #64 8890 0140 0022 movs r2, #0 8891 0142 E254 strb r2, [r4, r3] 3793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8892 .loc 1 3793 7 view .LVU2952 3802:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8893 .loc 1 3802 7 view .LVU2953 8894 0144 0121 movs r1, #1 ARM GAS /tmp/ccuRhBPx.s page 333 8895 0146 2000 movs r0, r4 8896 0148 FFF7FEFF bl I2C_Enable_IRQ 8897 .LVL648: 8898 .L512: 3805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8899 .loc 1 3805 5 view .LVU2954 3805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8900 .loc 1 3805 12 is_stmt 0 view .LVU2955 8901 014c 0020 movs r0, #0 8902 014e 00E0 b .L503 8903 .LVL649: 8904 .L513: 3809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8905 .loc 1 3809 12 view .LVU2956 8906 0150 0220 movs r0, #2 8907 .LVL650: 8908 .L503: 3811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8909 .loc 1 3811 1 view .LVU2957 8910 0152 05B0 add sp, sp, #20 8911 @ sp needed 8912 .LVL651: 8913 .LVL652: 3811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8914 .loc 1 3811 1 view .LVU2958 8915 0154 F0BD pop {r4, r5, r6, r7, pc} 8916 .LVL653: 8917 .L514: 3670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8918 .loc 1 3670 5 discriminator 1 view .LVU2959 8919 0156 0220 movs r0, #2 8920 .LVL654: 3670:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8921 .loc 1 3670 5 discriminator 1 view .LVU2960 8922 0158 FBE7 b .L503 8923 .L520: 8924 015a C046 .align 2 8925 .L519: 8926 015c 00000000 .word I2C_Master_ISR_DMA 8927 0160 00240080 .word -2147474432 8928 0164 00000000 .word I2C_DMAMasterReceiveCplt 8929 0168 00000000 .word I2C_DMAError 8930 016c 00000000 .word I2C_Master_ISR_IT 8931 .cfi_endproc 8932 .LFE66: 8934 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits 8935 .align 1 8936 .global HAL_I2C_Slave_Seq_Transmit_IT 8937 .syntax unified 8938 .code 16 8939 .thumb_func 8941 HAL_I2C_Slave_Seq_Transmit_IT: 8942 .LVL655: 8943 .LFB67: 3825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8944 .loc 1 3825 1 is_stmt 1 view -0 8945 .cfi_startproc ARM GAS /tmp/ccuRhBPx.s page 334 8946 @ args = 0, pretend = 0, frame = 0 8947 @ frame_needed = 0, uses_anonymous_args = 0 3825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8948 .loc 1 3825 1 is_stmt 0 view .LVU2962 8949 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8950 .cfi_def_cfa_offset 24 8951 .cfi_offset 3, -24 8952 .cfi_offset 4, -20 8953 .cfi_offset 5, -16 8954 .cfi_offset 6, -12 8955 .cfi_offset 7, -8 8956 .cfi_offset 14, -4 8957 0002 0400 movs r4, r0 8958 0004 0D00 movs r5, r1 8959 0006 1600 movs r6, r2 8960 0008 1F00 movs r7, r3 3827:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8961 .loc 1 3827 3 is_stmt 1 view .LVU2963 3830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8962 .loc 1 3830 3 view .LVU2964 3832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8963 .loc 1 3832 3 view .LVU2965 3832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8964 .loc 1 3832 22 is_stmt 0 view .LVU2966 8965 000a 4123 movs r3, #65 8966 .LVL656: 3832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8967 .loc 1 3832 22 view .LVU2967 8968 000c C35C ldrb r3, [r0, r3] 3832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8969 .loc 1 3832 6 view .LVU2968 8970 000e 2822 movs r2, #40 8971 .LVL657: 3832:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8972 .loc 1 3832 6 view .LVU2969 8973 0010 1340 ands r3, r2 8974 0012 282B cmp r3, #40 8975 0014 58D1 bne .L527 3834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8976 .loc 1 3834 5 is_stmt 1 view .LVU2970 3834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8977 .loc 1 3834 8 is_stmt 0 view .LVU2971 8978 0016 0029 cmp r1, #0 8979 0018 01D0 beq .L523 3834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 8980 .loc 1 3834 25 discriminator 1 view .LVU2972 8981 001a 002E cmp r6, #0 8982 001c 04D1 bne .L524 8983 .L523: 3836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 8984 .loc 1 3836 7 is_stmt 1 view .LVU2973 3836:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 8985 .loc 1 3836 23 is_stmt 0 view .LVU2974 8986 001e 8023 movs r3, #128 8987 0020 9B00 lsls r3, r3, #2 8988 0022 6364 str r3, [r4, #68] 3837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 335 8989 .loc 1 3837 7 is_stmt 1 view .LVU2975 3837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8990 .loc 1 3837 15 is_stmt 0 view .LVU2976 8991 0024 0120 movs r0, #1 8992 .LVL658: 3837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 8993 .loc 1 3837 15 view .LVU2977 8994 0026 50E0 b .L522 8995 .LVL659: 8996 .L524: 3841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 8997 .loc 1 3841 5 is_stmt 1 view .LVU2978 8998 0028 2949 ldr r1, .L532 8999 .LVL660: 3841:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9000 .loc 1 3841 5 is_stmt 0 view .LVU2979 9001 002a FFF7FEFF bl I2C_Disable_IRQ 9002 .LVL661: 3844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9003 .loc 1 3844 5 is_stmt 1 view .LVU2980 3844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9004 .loc 1 3844 5 view .LVU2981 9005 002e 4023 movs r3, #64 9006 0030 E35C ldrb r3, [r4, r3] 9007 0032 012B cmp r3, #1 9008 0034 4AD0 beq .L528 3844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9009 .loc 1 3844 5 discriminator 2 view .LVU2982 9010 0036 4023 movs r3, #64 9011 0038 0122 movs r2, #1 9012 003a E254 strb r2, [r4, r3] 3844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9013 .loc 1 3844 5 discriminator 2 view .LVU2983 3848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9014 .loc 1 3848 5 view .LVU2984 3848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9015 .loc 1 3848 13 is_stmt 0 view .LVU2985 9016 003c 0133 adds r3, r3, #1 9017 003e E35C ldrb r3, [r4, r3] 3848:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9018 .loc 1 3848 8 view .LVU2986 9019 0040 2A2B cmp r3, #42 9020 0042 27D0 beq .L531 9021 .L525: 3874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9022 .loc 1 3874 5 is_stmt 1 view .LVU2987 3874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9023 .loc 1 3874 21 is_stmt 0 view .LVU2988 9024 0044 4123 movs r3, #65 9025 0046 2922 movs r2, #41 9026 0048 E254 strb r2, [r4, r3] 3875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9027 .loc 1 3875 5 is_stmt 1 view .LVU2989 3875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9028 .loc 1 3875 21 is_stmt 0 view .LVU2990 9029 004a 0133 adds r3, r3, #1 9030 004c 093A subs r2, r2, #9 ARM GAS /tmp/ccuRhBPx.s page 336 9031 004e E254 strb r2, [r4, r3] 3876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9032 .loc 1 3876 5 is_stmt 1 view .LVU2991 3876:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9033 .loc 1 3876 21 is_stmt 0 view .LVU2992 9034 0050 0023 movs r3, #0 9035 0052 6364 str r3, [r4, #68] 3879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9036 .loc 1 3879 5 is_stmt 1 view .LVU2993 3879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9037 .loc 1 3879 9 is_stmt 0 view .LVU2994 9038 0054 2268 ldr r2, [r4] 3879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9039 .loc 1 3879 19 view .LVU2995 9040 0056 5368 ldr r3, [r2, #4] 3879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9041 .loc 1 3879 25 view .LVU2996 9042 0058 1E49 ldr r1, .L532+4 9043 005a 0B40 ands r3, r1 9044 005c 5360 str r3, [r2, #4] 3882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 9045 .loc 1 3882 5 is_stmt 1 view .LVU2997 3882:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 9046 .loc 1 3882 23 is_stmt 0 view .LVU2998 9047 005e 6562 str r5, [r4, #36] 3883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9048 .loc 1 3883 5 is_stmt 1 view .LVU2999 3883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9049 .loc 1 3883 23 is_stmt 0 view .LVU3000 9050 0060 6685 strh r6, [r4, #42] 3884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9051 .loc 1 3884 5 is_stmt 1 view .LVU3001 3884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9052 .loc 1 3884 29 is_stmt 0 view .LVU3002 9053 0062 638D ldrh r3, [r4, #42] 3884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9054 .loc 1 3884 23 view .LVU3003 9055 0064 2385 strh r3, [r4, #40] 3885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9056 .loc 1 3885 5 is_stmt 1 view .LVU3004 3885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9057 .loc 1 3885 23 is_stmt 0 view .LVU3005 9058 0066 E762 str r7, [r4, #44] 3886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9059 .loc 1 3886 5 is_stmt 1 view .LVU3006 3886:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9060 .loc 1 3886 23 is_stmt 0 view .LVU3007 9061 0068 1B4B ldr r3, .L532+8 9062 006a 6363 str r3, [r4, #52] 3888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 9063 .loc 1 3888 5 is_stmt 1 view .LVU3008 3888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 9064 .loc 1 3888 11 is_stmt 0 view .LVU3009 9065 006c 2268 ldr r2, [r4] 9066 006e 9169 ldr r1, [r2, #24] 9067 0070 0823 movs r3, #8 9068 0072 0B40 ands r3, r1 ARM GAS /tmp/ccuRhBPx.s page 337 9069 .LVL662: 3889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9070 .loc 1 3889 5 is_stmt 1 view .LVU3010 3889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9071 .loc 1 3889 10 is_stmt 0 view .LVU3011 9072 0074 9169 ldr r1, [r2, #24] 3889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9073 .loc 1 3889 8 view .LVU3012 9074 0076 C903 lsls r1, r1, #15 9075 0078 03D5 bpl .L526 3889:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9076 .loc 1 3889 54 discriminator 1 view .LVU3013 9077 007a 002B cmp r3, #0 9078 007c 01D0 beq .L526 3893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9079 .loc 1 3893 7 is_stmt 1 view .LVU3014 9080 007e 0823 movs r3, #8 9081 .LVL663: 3893:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9082 .loc 1 3893 7 is_stmt 0 view .LVU3015 9083 0080 D361 str r3, [r2, #28] 9084 .L526: 3897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9085 .loc 1 3897 5 is_stmt 1 view .LVU3016 3897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9086 .loc 1 3897 5 view .LVU3017 9087 0082 4023 movs r3, #64 9088 0084 0022 movs r2, #0 9089 0086 E254 strb r2, [r4, r3] 3897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9090 .loc 1 3897 5 view .LVU3018 3903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9091 .loc 1 3903 5 view .LVU3019 9092 0088 1149 ldr r1, .L532 9093 008a 2000 movs r0, r4 9094 008c FFF7FEFF bl I2C_Enable_IRQ 9095 .LVL664: 3905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9096 .loc 1 3905 5 view .LVU3020 3905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9097 .loc 1 3905 12 is_stmt 0 view .LVU3021 9098 0090 0020 movs r0, #0 9099 0092 1AE0 b .L522 9100 .LVL665: 9101 .L531: 3851:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9102 .loc 1 3851 7 is_stmt 1 view .LVU3022 9103 0094 0221 movs r1, #2 9104 0096 2000 movs r0, r4 9105 0098 FFF7FEFF bl I2C_Disable_IRQ 9106 .LVL666: 3854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9107 .loc 1 3854 7 view .LVU3023 3854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9108 .loc 1 3854 16 is_stmt 0 view .LVU3024 9109 009c 2268 ldr r2, [r4] 3854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 338 9110 .loc 1 3854 26 view .LVU3025 9111 009e 1368 ldr r3, [r2] 3854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9112 .loc 1 3854 10 view .LVU3026 9113 00a0 1B04 lsls r3, r3, #16 9114 00a2 CFD5 bpl .L525 3856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9115 .loc 1 3856 9 is_stmt 1 view .LVU3027 3856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9116 .loc 1 3856 23 is_stmt 0 view .LVU3028 9117 00a4 1368 ldr r3, [r2] 3856:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9118 .loc 1 3856 29 view .LVU3029 9119 00a6 0B49 ldr r1, .L532+4 9120 00a8 0B40 ands r3, r1 9121 00aa 1360 str r3, [r2] 3858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9122 .loc 1 3858 9 is_stmt 1 view .LVU3030 3858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9123 .loc 1 3858 17 is_stmt 0 view .LVU3031 9124 00ac E36B ldr r3, [r4, #60] 3858:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9125 .loc 1 3858 12 view .LVU3032 9126 00ae 002B cmp r3, #0 9127 00b0 C8D0 beq .L525 3862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9128 .loc 1 3862 11 is_stmt 1 view .LVU3033 3862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9129 .loc 1 3862 43 is_stmt 0 view .LVU3034 9130 00b2 0A4A ldr r2, .L532+12 9131 00b4 5A63 str r2, [r3, #52] 3865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9132 .loc 1 3865 11 is_stmt 1 view .LVU3035 3865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9133 .loc 1 3865 15 is_stmt 0 view .LVU3036 9134 00b6 E06B ldr r0, [r4, #60] 9135 00b8 FFF7FEFF bl HAL_DMA_Abort_IT 9136 .LVL667: 3865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9137 .loc 1 3865 14 discriminator 1 view .LVU3037 9138 00bc 0028 cmp r0, #0 9139 00be C1D0 beq .L525 3868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9140 .loc 1 3868 13 is_stmt 1 view .LVU3038 3868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9141 .loc 1 3868 17 is_stmt 0 view .LVU3039 9142 00c0 E06B ldr r0, [r4, #60] 3868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9143 .loc 1 3868 25 view .LVU3040 9144 00c2 436B ldr r3, [r0, #52] 3868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9145 .loc 1 3868 13 view .LVU3041 9146 00c4 9847 blx r3 9147 .LVL668: 9148 00c6 BDE7 b .L525 9149 .LVL669: 9150 .L527: ARM GAS /tmp/ccuRhBPx.s page 339 3909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9151 .loc 1 3909 12 view .LVU3042 9152 00c8 0120 movs r0, #1 9153 .LVL670: 9154 .L522: 3911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9155 .loc 1 3911 1 view .LVU3043 9156 @ sp needed 9157 .LVL671: 9158 .LVL672: 9159 .LVL673: 9160 .LVL674: 3911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9161 .loc 1 3911 1 view .LVU3044 9162 00ca F8BD pop {r3, r4, r5, r6, r7, pc} 9163 .LVL675: 9164 .L528: 3844:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9165 .loc 1 3844 5 discriminator 1 view .LVU3045 9166 00cc 0220 movs r0, #2 9167 00ce FCE7 b .L522 9168 .L533: 9169 .align 2 9170 .L532: 9171 00d0 01800000 .word 32769 9172 00d4 FF7FFFFF .word -32769 9173 00d8 00000000 .word I2C_Slave_ISR_IT 9174 00dc 00000000 .word I2C_DMAAbort 9175 .cfi_endproc 9176 .LFE67: 9178 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits 9179 .align 1 9180 .global HAL_I2C_Slave_Seq_Transmit_DMA 9181 .syntax unified 9182 .code 16 9183 .thumb_func 9185 HAL_I2C_Slave_Seq_Transmit_DMA: 9186 .LVL676: 9187 .LFB68: 3925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9188 .loc 1 3925 1 is_stmt 1 view -0 9189 .cfi_startproc 9190 @ args = 0, pretend = 0, frame = 0 9191 @ frame_needed = 0, uses_anonymous_args = 0 3925:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9192 .loc 1 3925 1 is_stmt 0 view .LVU3047 9193 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9194 .cfi_def_cfa_offset 24 9195 .cfi_offset 3, -24 9196 .cfi_offset 4, -20 9197 .cfi_offset 5, -16 9198 .cfi_offset 6, -12 9199 .cfi_offset 7, -8 9200 .cfi_offset 14, -4 9201 0002 0400 movs r4, r0 9202 0004 0F00 movs r7, r1 9203 0006 1500 movs r5, r2 ARM GAS /tmp/ccuRhBPx.s page 340 9204 0008 1E00 movs r6, r3 3927:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 9205 .loc 1 3927 3 is_stmt 1 view .LVU3048 3928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9206 .loc 1 3928 3 view .LVU3049 3931:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9207 .loc 1 3931 3 view .LVU3050 3933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9208 .loc 1 3933 3 view .LVU3051 3933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9209 .loc 1 3933 22 is_stmt 0 view .LVU3052 9210 000a 4123 movs r3, #65 9211 .LVL677: 3933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9212 .loc 1 3933 22 view .LVU3053 9213 000c C05C ldrb r0, [r0, r3] 9214 .LVL678: 3933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9215 .loc 1 3933 6 view .LVU3054 9216 000e 193B subs r3, r3, #25 9217 0010 1840 ands r0, r3 9218 0012 2828 cmp r0, #40 9219 0014 00D0 beq .LCB8752 9220 0016 B5E0 b .L545 @long jump 9221 .LCB8752: 3935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9222 .loc 1 3935 5 is_stmt 1 view .LVU3055 3935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9223 .loc 1 3935 8 is_stmt 0 view .LVU3056 9224 0018 0029 cmp r1, #0 9225 001a 4DD0 beq .L536 3935:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9226 .loc 1 3935 25 discriminator 1 view .LVU3057 9227 001c 002A cmp r2, #0 9228 001e 4BD0 beq .L536 3942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9229 .loc 1 3942 5 is_stmt 1 view .LVU3058 3942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9230 .loc 1 3942 5 view .LVU3059 9231 0020 4023 movs r3, #64 9232 0022 E35C ldrb r3, [r4, r3] 9233 0024 012B cmp r3, #1 9234 0026 00D1 bne .LCB8763 9235 0028 AFE0 b .L546 @long jump 9236 .LCB8763: 3942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9237 .loc 1 3942 5 discriminator 2 view .LVU3060 9238 002a 4023 movs r3, #64 9239 002c 0122 movs r2, #1 9240 .LVL679: 3942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9241 .loc 1 3942 5 is_stmt 0 discriminator 2 view .LVU3061 9242 002e E254 strb r2, [r4, r3] 3942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9243 .loc 1 3942 5 is_stmt 1 discriminator 2 view .LVU3062 3945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9244 .loc 1 3945 5 view .LVU3063 ARM GAS /tmp/ccuRhBPx.s page 341 9245 0030 5749 ldr r1, .L552 9246 .LVL680: 3945:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9247 .loc 1 3945 5 is_stmt 0 view .LVU3064 9248 0032 2000 movs r0, r4 9249 0034 FFF7FEFF bl I2C_Disable_IRQ 9250 .LVL681: 3949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9251 .loc 1 3949 5 is_stmt 1 view .LVU3065 3949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9252 .loc 1 3949 13 is_stmt 0 view .LVU3066 9253 0038 4123 movs r3, #65 9254 003a E35C ldrb r3, [r4, r3] 3949:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9255 .loc 1 3949 8 view .LVU3067 9256 003c 2A2B cmp r3, #42 9257 003e 40D0 beq .L550 3974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9258 .loc 1 3974 10 is_stmt 1 view .LVU3068 3974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9259 .loc 1 3974 18 is_stmt 0 view .LVU3069 9260 0040 4123 movs r3, #65 9261 0042 E35C ldrb r3, [r4, r3] 3974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9262 .loc 1 3974 13 view .LVU3070 9263 0044 292B cmp r3, #41 9264 0046 57D0 beq .L551 9265 .L539: 3999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9266 .loc 1 3999 5 is_stmt 1 view .LVU3071 4001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9267 .loc 1 4001 5 view .LVU3072 4001:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9268 .loc 1 4001 21 is_stmt 0 view .LVU3073 9269 0048 4123 movs r3, #65 9270 004a 2922 movs r2, #41 9271 004c E254 strb r2, [r4, r3] 4002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9272 .loc 1 4002 5 is_stmt 1 view .LVU3074 4002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9273 .loc 1 4002 21 is_stmt 0 view .LVU3075 9274 004e 0133 adds r3, r3, #1 9275 0050 093A subs r2, r2, #9 9276 0052 E254 strb r2, [r4, r3] 4003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9277 .loc 1 4003 5 is_stmt 1 view .LVU3076 4003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9278 .loc 1 4003 21 is_stmt 0 view .LVU3077 9279 0054 0023 movs r3, #0 9280 0056 6364 str r3, [r4, #68] 4006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9281 .loc 1 4006 5 is_stmt 1 view .LVU3078 4006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9282 .loc 1 4006 9 is_stmt 0 view .LVU3079 9283 0058 2268 ldr r2, [r4] 4006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9284 .loc 1 4006 19 view .LVU3080 ARM GAS /tmp/ccuRhBPx.s page 342 9285 005a 5368 ldr r3, [r2, #4] 4006:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9286 .loc 1 4006 25 view .LVU3081 9287 005c 4D49 ldr r1, .L552+4 9288 005e 0B40 ands r3, r1 9289 0060 5360 str r3, [r2, #4] 4009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 9290 .loc 1 4009 5 is_stmt 1 view .LVU3082 4009:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 9291 .loc 1 4009 23 is_stmt 0 view .LVU3083 9292 0062 6762 str r7, [r4, #36] 4010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9293 .loc 1 4010 5 is_stmt 1 view .LVU3084 4010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9294 .loc 1 4010 23 is_stmt 0 view .LVU3085 9295 0064 6585 strh r5, [r4, #42] 4011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9296 .loc 1 4011 5 is_stmt 1 view .LVU3086 4011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9297 .loc 1 4011 29 is_stmt 0 view .LVU3087 9298 0066 638D ldrh r3, [r4, #42] 4011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9299 .loc 1 4011 23 view .LVU3088 9300 0068 2385 strh r3, [r4, #40] 4012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9301 .loc 1 4012 5 is_stmt 1 view .LVU3089 4012:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9302 .loc 1 4012 23 is_stmt 0 view .LVU3090 9303 006a E662 str r6, [r4, #44] 4013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9304 .loc 1 4013 5 is_stmt 1 view .LVU3091 4013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9305 .loc 1 4013 23 is_stmt 0 view .LVU3092 9306 006c 4A4B ldr r3, .L552+8 9307 006e 6363 str r3, [r4, #52] 4015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9308 .loc 1 4015 5 is_stmt 1 view .LVU3093 4015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9309 .loc 1 4015 13 is_stmt 0 view .LVU3094 9310 0070 A36B ldr r3, [r4, #56] 4015:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9311 .loc 1 4015 8 view .LVU3095 9312 0072 002B cmp r3, #0 9313 0074 56D0 beq .L540 4018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9314 .loc 1 4018 7 is_stmt 1 view .LVU3096 4018:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9315 .loc 1 4018 38 is_stmt 0 view .LVU3097 9316 0076 494A ldr r2, .L552+12 9317 0078 9A62 str r2, [r3, #40] 4021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9318 .loc 1 4021 7 is_stmt 1 view .LVU3098 4021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9319 .loc 1 4021 11 is_stmt 0 view .LVU3099 9320 007a A36B ldr r3, [r4, #56] 4021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9321 .loc 1 4021 39 view .LVU3100 ARM GAS /tmp/ccuRhBPx.s page 343 9322 007c 484A ldr r2, .L552+16 9323 007e 1A63 str r2, [r3, #48] 4024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 9324 .loc 1 4024 7 is_stmt 1 view .LVU3101 4024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 9325 .loc 1 4024 11 is_stmt 0 view .LVU3102 9326 0080 A26B ldr r2, [r4, #56] 4024:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 9327 .loc 1 4024 42 view .LVU3103 9328 0082 0023 movs r3, #0 9329 0084 D362 str r3, [r2, #44] 4025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9330 .loc 1 4025 7 is_stmt 1 view .LVU3104 4025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9331 .loc 1 4025 11 is_stmt 0 view .LVU3105 9332 0086 A26B ldr r2, [r4, #56] 4025:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9333 .loc 1 4025 39 view .LVU3106 9334 0088 5363 str r3, [r2, #52] 4028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 9335 .loc 1 4028 7 is_stmt 1 view .LVU3107 4028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 9336 .loc 1 4028 86 is_stmt 0 view .LVU3108 9337 008a 2268 ldr r2, [r4] 4028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 9338 .loc 1 4028 81 view .LVU3109 9339 008c 2832 adds r2, r2, #40 4029:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9340 .loc 1 4029 44 view .LVU3110 9341 008e 238D ldrh r3, [r4, #40] 4028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize); 9342 .loc 1 4028 23 view .LVU3111 9343 0090 A06B ldr r0, [r4, #56] 9344 0092 3900 movs r1, r7 9345 0094 FFF7FEFF bl HAL_DMA_Start_IT 9346 .LVL682: 9347 0098 051E subs r5, r0, #0 9348 .LVL683: 4046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9349 .loc 1 4046 5 is_stmt 1 view .LVU3112 4046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9350 .loc 1 4046 8 is_stmt 0 view .LVU3113 9351 009a 51D0 beq .L541 4057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9352 .loc 1 4057 7 is_stmt 1 view .LVU3114 4057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9353 .loc 1 4057 23 is_stmt 0 view .LVU3115 9354 009c 4123 movs r3, #65 9355 009e 2822 movs r2, #40 9356 00a0 E254 strb r2, [r4, r3] 4058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9357 .loc 1 4058 7 is_stmt 1 view .LVU3116 4058:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9358 .loc 1 4058 23 is_stmt 0 view .LVU3117 9359 00a2 0022 movs r2, #0 9360 00a4 0133 adds r3, r3, #1 9361 00a6 E254 strb r2, [r4, r3] ARM GAS /tmp/ccuRhBPx.s page 344 4061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9362 .loc 1 4061 7 is_stmt 1 view .LVU3118 4061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9363 .loc 1 4061 11 is_stmt 0 view .LVU3119 9364 00a8 636C ldr r3, [r4, #68] 4061:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9365 .loc 1 4061 23 view .LVU3120 9366 00aa 1021 movs r1, #16 9367 00ac 0B43 orrs r3, r1 9368 00ae 6364 str r3, [r4, #68] 4064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9369 .loc 1 4064 7 is_stmt 1 view .LVU3121 4064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9370 .loc 1 4064 7 view .LVU3122 9371 00b0 4023 movs r3, #64 9372 00b2 E254 strb r2, [r4, r3] 4064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9373 .loc 1 4064 7 view .LVU3123 4066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9374 .loc 1 4066 7 view .LVU3124 4066:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9375 .loc 1 4066 14 is_stmt 0 view .LVU3125 9376 00b4 0125 movs r5, #1 9377 00b6 66E0 b .L535 9378 .LVL684: 9379 .L536: 3937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 9380 .loc 1 3937 7 is_stmt 1 view .LVU3126 3937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 9381 .loc 1 3937 23 is_stmt 0 view .LVU3127 9382 00b8 8023 movs r3, #128 9383 00ba 9B00 lsls r3, r3, #2 9384 00bc 6364 str r3, [r4, #68] 3938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9385 .loc 1 3938 7 is_stmt 1 view .LVU3128 3938:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9386 .loc 1 3938 15 is_stmt 0 view .LVU3129 9387 00be 0125 movs r5, #1 9388 00c0 61E0 b .L535 9389 .LVL685: 9390 .L550: 3952:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9391 .loc 1 3952 7 is_stmt 1 view .LVU3130 9392 00c2 0221 movs r1, #2 9393 00c4 2000 movs r0, r4 9394 00c6 FFF7FEFF bl I2C_Disable_IRQ 9395 .LVL686: 3954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9396 .loc 1 3954 7 view .LVU3131 3954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9397 .loc 1 3954 16 is_stmt 0 view .LVU3132 9398 00ca 2268 ldr r2, [r4] 3954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9399 .loc 1 3954 26 view .LVU3133 9400 00cc 1368 ldr r3, [r2] 3954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9401 .loc 1 3954 10 view .LVU3134 ARM GAS /tmp/ccuRhBPx.s page 345 9402 00ce 1B04 lsls r3, r3, #16 9403 00d0 BAD5 bpl .L539 3957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9404 .loc 1 3957 9 is_stmt 1 view .LVU3135 3957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9405 .loc 1 3957 17 is_stmt 0 view .LVU3136 9406 00d2 E36B ldr r3, [r4, #60] 3957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9407 .loc 1 3957 12 view .LVU3137 9408 00d4 002B cmp r3, #0 9409 00d6 B7D0 beq .L539 3959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9410 .loc 1 3959 11 is_stmt 1 view .LVU3138 3959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9411 .loc 1 3959 25 is_stmt 0 view .LVU3139 9412 00d8 1368 ldr r3, [r2] 3959:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9413 .loc 1 3959 31 view .LVU3140 9414 00da 2E49 ldr r1, .L552+4 9415 00dc 0B40 ands r3, r1 9416 00de 1360 str r3, [r2] 3963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9417 .loc 1 3963 11 is_stmt 1 view .LVU3141 3963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9418 .loc 1 3963 15 is_stmt 0 view .LVU3142 9419 00e0 E36B ldr r3, [r4, #60] 3963:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9420 .loc 1 3963 43 view .LVU3143 9421 00e2 304A ldr r2, .L552+20 9422 00e4 5A63 str r2, [r3, #52] 3966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9423 .loc 1 3966 11 is_stmt 1 view .LVU3144 3966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9424 .loc 1 3966 15 is_stmt 0 view .LVU3145 9425 00e6 E06B ldr r0, [r4, #60] 9426 00e8 FFF7FEFF bl HAL_DMA_Abort_IT 9427 .LVL687: 3966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9428 .loc 1 3966 14 discriminator 1 view .LVU3146 9429 00ec 0028 cmp r0, #0 9430 00ee ABD0 beq .L539 3969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9431 .loc 1 3969 13 is_stmt 1 view .LVU3147 3969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9432 .loc 1 3969 17 is_stmt 0 view .LVU3148 9433 00f0 E06B ldr r0, [r4, #60] 3969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9434 .loc 1 3969 25 view .LVU3149 9435 00f2 436B ldr r3, [r0, #52] 3969:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9436 .loc 1 3969 13 view .LVU3150 9437 00f4 9847 blx r3 9438 .LVL688: 9439 00f6 A7E7 b .L539 9440 .L551: 3976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9441 .loc 1 3976 7 is_stmt 1 view .LVU3151 ARM GAS /tmp/ccuRhBPx.s page 346 3976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9442 .loc 1 3976 16 is_stmt 0 view .LVU3152 9443 00f8 2368 ldr r3, [r4] 3976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9444 .loc 1 3976 26 view .LVU3153 9445 00fa 1A68 ldr r2, [r3] 3976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9446 .loc 1 3976 10 view .LVU3154 9447 00fc 5204 lsls r2, r2, #17 9448 00fe A3D5 bpl .L539 3978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9449 .loc 1 3978 9 is_stmt 1 view .LVU3155 3978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9450 .loc 1 3978 23 is_stmt 0 view .LVU3156 9451 0100 1A68 ldr r2, [r3] 3978:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9452 .loc 1 3978 29 view .LVU3157 9453 0102 2949 ldr r1, .L552+24 9454 0104 0A40 ands r2, r1 9455 0106 1A60 str r2, [r3] 3981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9456 .loc 1 3981 9 is_stmt 1 view .LVU3158 3981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9457 .loc 1 3981 17 is_stmt 0 view .LVU3159 9458 0108 A36B ldr r3, [r4, #56] 3981:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9459 .loc 1 3981 12 view .LVU3160 9460 010a 002B cmp r3, #0 9461 010c 9CD0 beq .L539 3985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9462 .loc 1 3985 11 is_stmt 1 view .LVU3161 3985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9463 .loc 1 3985 43 is_stmt 0 view .LVU3162 9464 010e 254A ldr r2, .L552+20 9465 0110 5A63 str r2, [r3, #52] 3988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9466 .loc 1 3988 11 is_stmt 1 view .LVU3163 3988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9467 .loc 1 3988 15 is_stmt 0 view .LVU3164 9468 0112 A06B ldr r0, [r4, #56] 9469 0114 FFF7FEFF bl HAL_DMA_Abort_IT 9470 .LVL689: 3988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9471 .loc 1 3988 14 discriminator 1 view .LVU3165 9472 0118 0028 cmp r0, #0 9473 011a 95D0 beq .L539 3991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9474 .loc 1 3991 13 is_stmt 1 view .LVU3166 3991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9475 .loc 1 3991 17 is_stmt 0 view .LVU3167 9476 011c A06B ldr r0, [r4, #56] 3991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9477 .loc 1 3991 25 view .LVU3168 9478 011e 436B ldr r3, [r0, #52] 3991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9479 .loc 1 3991 13 view .LVU3169 9480 0120 9847 blx r3 ARM GAS /tmp/ccuRhBPx.s page 347 9481 .LVL690: 9482 0122 91E7 b .L539 9483 .L540: 4034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9484 .loc 1 4034 7 is_stmt 1 view .LVU3170 4034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9485 .loc 1 4034 23 is_stmt 0 view .LVU3171 9486 0124 4123 movs r3, #65 9487 0126 2822 movs r2, #40 9488 0128 E254 strb r2, [r4, r3] 4035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9489 .loc 1 4035 7 is_stmt 1 view .LVU3172 4035:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9490 .loc 1 4035 23 is_stmt 0 view .LVU3173 9491 012a 0022 movs r2, #0 9492 012c 0133 adds r3, r3, #1 9493 012e E254 strb r2, [r4, r3] 4038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9494 .loc 1 4038 7 is_stmt 1 view .LVU3174 4038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9495 .loc 1 4038 11 is_stmt 0 view .LVU3175 9496 0130 636C ldr r3, [r4, #68] 4038:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9497 .loc 1 4038 23 view .LVU3176 9498 0132 8021 movs r1, #128 9499 0134 0B43 orrs r3, r1 9500 0136 6364 str r3, [r4, #68] 4041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9501 .loc 1 4041 7 is_stmt 1 view .LVU3177 4041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9502 .loc 1 4041 7 view .LVU3178 9503 0138 4023 movs r3, #64 9504 013a E254 strb r2, [r4, r3] 4041:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9505 .loc 1 4041 7 view .LVU3179 4043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9506 .loc 1 4043 7 view .LVU3180 4043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9507 .loc 1 4043 14 is_stmt 0 view .LVU3181 9508 013c 0125 movs r5, #1 9509 .LVL691: 4043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9510 .loc 1 4043 14 view .LVU3182 9511 013e 22E0 b .L535 9512 .LVL692: 9513 .L541: 4049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9514 .loc 1 4049 7 is_stmt 1 view .LVU3183 4049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9515 .loc 1 4049 11 is_stmt 0 view .LVU3184 9516 0140 638D ldrh r3, [r4, #42] 4049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9517 .loc 1 4049 30 view .LVU3185 9518 0142 228D ldrh r2, [r4, #40] 4049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9519 .loc 1 4049 23 view .LVU3186 9520 0144 9B1A subs r3, r3, r2 ARM GAS /tmp/ccuRhBPx.s page 348 9521 0146 9BB2 uxth r3, r3 9522 0148 6385 strh r3, [r4, #42] 4052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9523 .loc 1 4052 7 is_stmt 1 view .LVU3187 4052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9524 .loc 1 4052 22 is_stmt 0 view .LVU3188 9525 014a 0023 movs r3, #0 9526 014c 2385 strh r3, [r4, #40] 4069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 9527 .loc 1 4069 5 is_stmt 1 view .LVU3189 4069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 9528 .loc 1 4069 11 is_stmt 0 view .LVU3190 9529 014e 2268 ldr r2, [r4] 9530 0150 9169 ldr r1, [r2, #24] 9531 0152 0833 adds r3, r3, #8 9532 0154 0B40 ands r3, r1 9533 .LVL693: 4070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9534 .loc 1 4070 5 is_stmt 1 view .LVU3191 4070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9535 .loc 1 4070 10 is_stmt 0 view .LVU3192 9536 0156 9169 ldr r1, [r2, #24] 4070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9537 .loc 1 4070 8 view .LVU3193 9538 0158 C903 lsls r1, r1, #15 9539 015a 0ED4 bmi .L543 9540 .LVL694: 9541 .L544: 4078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9542 .loc 1 4078 5 is_stmt 1 view .LVU3194 4078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9543 .loc 1 4078 5 view .LVU3195 9544 015c 4023 movs r3, #64 9545 015e 0022 movs r2, #0 4078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9546 .loc 1 4078 5 is_stmt 0 view .LVU3196 9547 0160 E254 strb r2, [r4, r3] 4078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9548 .loc 1 4078 5 is_stmt 1 view .LVU3197 4081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9549 .loc 1 4081 5 view .LVU3198 4081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9550 .loc 1 4081 9 is_stmt 0 view .LVU3199 9551 0162 2268 ldr r2, [r4] 4081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9552 .loc 1 4081 19 view .LVU3200 9553 0164 1168 ldr r1, [r2] 4081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9554 .loc 1 4081 25 view .LVU3201 9555 0166 8023 movs r3, #128 9556 0168 DB01 lsls r3, r3, #7 9557 016a 0B43 orrs r3, r1 9558 016c 1360 str r3, [r2] 4087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9559 .loc 1 4087 5 is_stmt 1 view .LVU3202 9560 016e 8021 movs r1, #128 9561 0170 0902 lsls r1, r1, #8 ARM GAS /tmp/ccuRhBPx.s page 349 9562 0172 2000 movs r0, r4 9563 .LVL695: 4087:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9564 .loc 1 4087 5 is_stmt 0 view .LVU3203 9565 0174 FFF7FEFF bl I2C_Enable_IRQ 9566 .LVL696: 4089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9567 .loc 1 4089 5 is_stmt 1 view .LVU3204 4089:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9568 .loc 1 4089 12 is_stmt 0 view .LVU3205 9569 0178 05E0 b .L535 9570 .LVL697: 9571 .L543: 4070:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9572 .loc 1 4070 54 discriminator 1 view .LVU3206 9573 017a 002B cmp r3, #0 9574 017c EED0 beq .L544 4074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9575 .loc 1 4074 7 is_stmt 1 view .LVU3207 9576 017e 0823 movs r3, #8 9577 .LVL698: 4074:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9578 .loc 1 4074 7 is_stmt 0 view .LVU3208 9579 0180 D361 str r3, [r2, #28] 9580 0182 EBE7 b .L544 9581 .LVL699: 9582 .L545: 4093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9583 .loc 1 4093 12 view .LVU3209 9584 0184 0125 movs r5, #1 9585 .LVL700: 9586 .L535: 4095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9587 .loc 1 4095 1 view .LVU3210 9588 0186 2800 movs r0, r5 9589 @ sp needed 9590 .LVL701: 9591 .LVL702: 9592 .LVL703: 4095:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9593 .loc 1 4095 1 view .LVU3211 9594 0188 F8BD pop {r3, r4, r5, r6, r7, pc} 9595 .LVL704: 9596 .L546: 3942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9597 .loc 1 3942 5 discriminator 1 view .LVU3212 9598 018a 0225 movs r5, #2 9599 018c FBE7 b .L535 9600 .L553: 9601 018e C046 .align 2 9602 .L552: 9603 0190 01800000 .word 32769 9604 0194 FF7FFFFF .word -32769 9605 0198 00000000 .word I2C_Slave_ISR_DMA 9606 019c 00000000 .word I2C_DMASlaveTransmitCplt 9607 01a0 00000000 .word I2C_DMAError 9608 01a4 00000000 .word I2C_DMAAbort ARM GAS /tmp/ccuRhBPx.s page 350 9609 01a8 FFBFFFFF .word -16385 9610 .cfi_endproc 9611 .LFE68: 9613 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits 9614 .align 1 9615 .global HAL_I2C_Slave_Seq_Receive_IT 9616 .syntax unified 9617 .code 16 9618 .thumb_func 9620 HAL_I2C_Slave_Seq_Receive_IT: 9621 .LVL705: 9622 .LFB69: 4109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9623 .loc 1 4109 1 is_stmt 1 view -0 9624 .cfi_startproc 9625 @ args = 0, pretend = 0, frame = 0 9626 @ frame_needed = 0, uses_anonymous_args = 0 4109:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9627 .loc 1 4109 1 is_stmt 0 view .LVU3214 9628 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9629 .cfi_def_cfa_offset 24 9630 .cfi_offset 3, -24 9631 .cfi_offset 4, -20 9632 .cfi_offset 5, -16 9633 .cfi_offset 6, -12 9634 .cfi_offset 7, -8 9635 .cfi_offset 14, -4 9636 0002 0400 movs r4, r0 9637 0004 0D00 movs r5, r1 9638 0006 1600 movs r6, r2 9639 0008 1F00 movs r7, r3 4111:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9640 .loc 1 4111 3 is_stmt 1 view .LVU3215 4114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9641 .loc 1 4114 3 view .LVU3216 4116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9642 .loc 1 4116 3 view .LVU3217 4116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9643 .loc 1 4116 22 is_stmt 0 view .LVU3218 9644 000a 4123 movs r3, #65 9645 .LVL706: 4116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9646 .loc 1 4116 22 view .LVU3219 9647 000c C35C ldrb r3, [r0, r3] 4116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9648 .loc 1 4116 6 view .LVU3220 9649 000e 2822 movs r2, #40 9650 .LVL707: 4116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9651 .loc 1 4116 6 view .LVU3221 9652 0010 1340 ands r3, r2 9653 0012 282B cmp r3, #40 9654 0014 58D1 bne .L560 4118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9655 .loc 1 4118 5 is_stmt 1 view .LVU3222 4118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9656 .loc 1 4118 8 is_stmt 0 view .LVU3223 ARM GAS /tmp/ccuRhBPx.s page 351 9657 0016 0029 cmp r1, #0 9658 0018 01D0 beq .L556 4118:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9659 .loc 1 4118 25 discriminator 1 view .LVU3224 9660 001a 002E cmp r6, #0 9661 001c 04D1 bne .L557 9662 .L556: 4120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 9663 .loc 1 4120 7 is_stmt 1 view .LVU3225 4120:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 9664 .loc 1 4120 23 is_stmt 0 view .LVU3226 9665 001e 8023 movs r3, #128 9666 0020 9B00 lsls r3, r3, #2 9667 0022 6364 str r3, [r4, #68] 4121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9668 .loc 1 4121 7 is_stmt 1 view .LVU3227 4121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9669 .loc 1 4121 15 is_stmt 0 view .LVU3228 9670 0024 0120 movs r0, #1 9671 .LVL708: 4121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9672 .loc 1 4121 15 view .LVU3229 9673 0026 50E0 b .L555 9674 .LVL709: 9675 .L557: 4125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9676 .loc 1 4125 5 is_stmt 1 view .LVU3230 9677 0028 2949 ldr r1, .L565 9678 .LVL710: 4125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9679 .loc 1 4125 5 is_stmt 0 view .LVU3231 9680 002a FFF7FEFF bl I2C_Disable_IRQ 9681 .LVL711: 4128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9682 .loc 1 4128 5 is_stmt 1 view .LVU3232 4128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9683 .loc 1 4128 5 view .LVU3233 9684 002e 4023 movs r3, #64 9685 0030 E35C ldrb r3, [r4, r3] 9686 0032 012B cmp r3, #1 9687 0034 4AD0 beq .L561 4128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9688 .loc 1 4128 5 discriminator 2 view .LVU3234 9689 0036 4023 movs r3, #64 9690 0038 0122 movs r2, #1 9691 003a E254 strb r2, [r4, r3] 4128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9692 .loc 1 4128 5 discriminator 2 view .LVU3235 4132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9693 .loc 1 4132 5 view .LVU3236 4132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9694 .loc 1 4132 13 is_stmt 0 view .LVU3237 9695 003c 0133 adds r3, r3, #1 9696 003e E35C ldrb r3, [r4, r3] 4132:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9697 .loc 1 4132 8 view .LVU3238 9698 0040 292B cmp r3, #41 ARM GAS /tmp/ccuRhBPx.s page 352 9699 0042 27D0 beq .L564 9700 .L558: 4158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9701 .loc 1 4158 5 is_stmt 1 view .LVU3239 4158:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9702 .loc 1 4158 21 is_stmt 0 view .LVU3240 9703 0044 4123 movs r3, #65 9704 0046 2A22 movs r2, #42 9705 0048 E254 strb r2, [r4, r3] 4159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9706 .loc 1 4159 5 is_stmt 1 view .LVU3241 4159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9707 .loc 1 4159 21 is_stmt 0 view .LVU3242 9708 004a 0133 adds r3, r3, #1 9709 004c 0A3A subs r2, r2, #10 9710 004e E254 strb r2, [r4, r3] 4160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9711 .loc 1 4160 5 is_stmt 1 view .LVU3243 4160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9712 .loc 1 4160 21 is_stmt 0 view .LVU3244 9713 0050 0023 movs r3, #0 9714 0052 6364 str r3, [r4, #68] 4163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9715 .loc 1 4163 5 is_stmt 1 view .LVU3245 4163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9716 .loc 1 4163 9 is_stmt 0 view .LVU3246 9717 0054 2268 ldr r2, [r4] 4163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9718 .loc 1 4163 19 view .LVU3247 9719 0056 5368 ldr r3, [r2, #4] 4163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9720 .loc 1 4163 25 view .LVU3248 9721 0058 1E49 ldr r1, .L565+4 9722 005a 0B40 ands r3, r1 9723 005c 5360 str r3, [r2, #4] 4166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 9724 .loc 1 4166 5 is_stmt 1 view .LVU3249 4166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 9725 .loc 1 4166 23 is_stmt 0 view .LVU3250 9726 005e 6562 str r5, [r4, #36] 4167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9727 .loc 1 4167 5 is_stmt 1 view .LVU3251 4167:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9728 .loc 1 4167 23 is_stmt 0 view .LVU3252 9729 0060 6685 strh r6, [r4, #42] 4168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9730 .loc 1 4168 5 is_stmt 1 view .LVU3253 4168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9731 .loc 1 4168 29 is_stmt 0 view .LVU3254 9732 0062 638D ldrh r3, [r4, #42] 4168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9733 .loc 1 4168 23 view .LVU3255 9734 0064 2385 strh r3, [r4, #40] 4169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9735 .loc 1 4169 5 is_stmt 1 view .LVU3256 4169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9736 .loc 1 4169 23 is_stmt 0 view .LVU3257 ARM GAS /tmp/ccuRhBPx.s page 353 9737 0066 E762 str r7, [r4, #44] 4170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9738 .loc 1 4170 5 is_stmt 1 view .LVU3258 4170:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9739 .loc 1 4170 23 is_stmt 0 view .LVU3259 9740 0068 1B4B ldr r3, .L565+8 9741 006a 6363 str r3, [r4, #52] 4172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9742 .loc 1 4172 5 is_stmt 1 view .LVU3260 4172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9743 .loc 1 4172 11 is_stmt 0 view .LVU3261 9744 006c 2268 ldr r2, [r4] 9745 006e 9169 ldr r1, [r2, #24] 9746 0070 0823 movs r3, #8 9747 0072 0B40 ands r3, r1 9748 .LVL712: 4173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9749 .loc 1 4173 5 is_stmt 1 view .LVU3262 4173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9750 .loc 1 4173 10 is_stmt 0 view .LVU3263 9751 0074 9169 ldr r1, [r2, #24] 4173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9752 .loc 1 4173 8 view .LVU3264 9753 0076 C903 lsls r1, r1, #15 9754 0078 03D4 bmi .L559 4173:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9755 .loc 1 4173 55 discriminator 1 view .LVU3265 9756 007a 002B cmp r3, #0 9757 007c 01D0 beq .L559 4177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9758 .loc 1 4177 7 is_stmt 1 view .LVU3266 9759 007e 0823 movs r3, #8 9760 .LVL713: 4177:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9761 .loc 1 4177 7 is_stmt 0 view .LVU3267 9762 0080 D361 str r3, [r2, #28] 9763 .L559: 4181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9764 .loc 1 4181 5 is_stmt 1 view .LVU3268 4181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9765 .loc 1 4181 5 view .LVU3269 9766 0082 4023 movs r3, #64 9767 0084 0022 movs r2, #0 9768 0086 E254 strb r2, [r4, r3] 4181:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9769 .loc 1 4181 5 view .LVU3270 4187:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9770 .loc 1 4187 5 view .LVU3271 9771 0088 1149 ldr r1, .L565 9772 008a 2000 movs r0, r4 9773 008c FFF7FEFF bl I2C_Enable_IRQ 9774 .LVL714: 4189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9775 .loc 1 4189 5 view .LVU3272 4189:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9776 .loc 1 4189 12 is_stmt 0 view .LVU3273 9777 0090 0020 movs r0, #0 ARM GAS /tmp/ccuRhBPx.s page 354 9778 0092 1AE0 b .L555 9779 .LVL715: 9780 .L564: 4135:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9781 .loc 1 4135 7 is_stmt 1 view .LVU3274 9782 0094 0121 movs r1, #1 9783 0096 2000 movs r0, r4 9784 0098 FFF7FEFF bl I2C_Disable_IRQ 9785 .LVL716: 4137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9786 .loc 1 4137 7 view .LVU3275 4137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9787 .loc 1 4137 16 is_stmt 0 view .LVU3276 9788 009c 2268 ldr r2, [r4] 4137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9789 .loc 1 4137 26 view .LVU3277 9790 009e 1368 ldr r3, [r2] 4137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9791 .loc 1 4137 10 view .LVU3278 9792 00a0 5B04 lsls r3, r3, #17 9793 00a2 CFD5 bpl .L558 4139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9794 .loc 1 4139 9 is_stmt 1 view .LVU3279 4139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9795 .loc 1 4139 23 is_stmt 0 view .LVU3280 9796 00a4 1368 ldr r3, [r2] 4139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9797 .loc 1 4139 29 view .LVU3281 9798 00a6 0D49 ldr r1, .L565+12 9799 00a8 0B40 ands r3, r1 9800 00aa 1360 str r3, [r2] 4142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9801 .loc 1 4142 9 is_stmt 1 view .LVU3282 4142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9802 .loc 1 4142 17 is_stmt 0 view .LVU3283 9803 00ac A36B ldr r3, [r4, #56] 4142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9804 .loc 1 4142 12 view .LVU3284 9805 00ae 002B cmp r3, #0 9806 00b0 C8D0 beq .L558 4146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9807 .loc 1 4146 11 is_stmt 1 view .LVU3285 4146:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9808 .loc 1 4146 43 is_stmt 0 view .LVU3286 9809 00b2 0B4A ldr r2, .L565+16 9810 00b4 5A63 str r2, [r3, #52] 4149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9811 .loc 1 4149 11 is_stmt 1 view .LVU3287 4149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9812 .loc 1 4149 15 is_stmt 0 view .LVU3288 9813 00b6 A06B ldr r0, [r4, #56] 9814 00b8 FFF7FEFF bl HAL_DMA_Abort_IT 9815 .LVL717: 4149:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9816 .loc 1 4149 14 discriminator 1 view .LVU3289 9817 00bc 0028 cmp r0, #0 9818 00be C1D0 beq .L558 ARM GAS /tmp/ccuRhBPx.s page 355 4152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9819 .loc 1 4152 13 is_stmt 1 view .LVU3290 4152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9820 .loc 1 4152 17 is_stmt 0 view .LVU3291 9821 00c0 A06B ldr r0, [r4, #56] 4152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9822 .loc 1 4152 25 view .LVU3292 9823 00c2 436B ldr r3, [r0, #52] 4152:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9824 .loc 1 4152 13 view .LVU3293 9825 00c4 9847 blx r3 9826 .LVL718: 9827 00c6 BDE7 b .L558 9828 .LVL719: 9829 .L560: 4193:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9830 .loc 1 4193 12 view .LVU3294 9831 00c8 0120 movs r0, #1 9832 .LVL720: 9833 .L555: 4195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9834 .loc 1 4195 1 view .LVU3295 9835 @ sp needed 9836 .LVL721: 9837 .LVL722: 9838 .LVL723: 9839 .LVL724: 4195:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9840 .loc 1 4195 1 view .LVU3296 9841 00ca F8BD pop {r3, r4, r5, r6, r7, pc} 9842 .LVL725: 9843 .L561: 4128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9844 .loc 1 4128 5 discriminator 1 view .LVU3297 9845 00cc 0220 movs r0, #2 9846 00ce FCE7 b .L555 9847 .L566: 9848 .align 2 9849 .L565: 9850 00d0 02800000 .word 32770 9851 00d4 FF7FFFFF .word -32769 9852 00d8 00000000 .word I2C_Slave_ISR_IT 9853 00dc FFBFFFFF .word -16385 9854 00e0 00000000 .word I2C_DMAAbort 9855 .cfi_endproc 9856 .LFE69: 9858 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits 9859 .align 1 9860 .global HAL_I2C_Slave_Seq_Receive_DMA 9861 .syntax unified 9862 .code 16 9863 .thumb_func 9865 HAL_I2C_Slave_Seq_Receive_DMA: 9866 .LVL726: 9867 .LFB70: 4209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9868 .loc 1 4209 1 is_stmt 1 view -0 ARM GAS /tmp/ccuRhBPx.s page 356 9869 .cfi_startproc 9870 @ args = 0, pretend = 0, frame = 0 9871 @ frame_needed = 0, uses_anonymous_args = 0 4209:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9872 .loc 1 4209 1 is_stmt 0 view .LVU3299 9873 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9874 .cfi_def_cfa_offset 24 9875 .cfi_offset 3, -24 9876 .cfi_offset 4, -20 9877 .cfi_offset 5, -16 9878 .cfi_offset 6, -12 9879 .cfi_offset 7, -8 9880 .cfi_offset 14, -4 9881 0002 0400 movs r4, r0 9882 0004 0F00 movs r7, r1 9883 0006 1500 movs r5, r2 9884 0008 1E00 movs r6, r3 4211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 9885 .loc 1 4211 3 is_stmt 1 view .LVU3300 4212:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9886 .loc 1 4212 3 view .LVU3301 4215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9887 .loc 1 4215 3 view .LVU3302 4217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9888 .loc 1 4217 3 view .LVU3303 4217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9889 .loc 1 4217 22 is_stmt 0 view .LVU3304 9890 000a 4123 movs r3, #65 9891 .LVL727: 4217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9892 .loc 1 4217 22 view .LVU3305 9893 000c C05C ldrb r0, [r0, r3] 9894 .LVL728: 4217:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9895 .loc 1 4217 6 view .LVU3306 9896 000e 193B subs r3, r3, #25 9897 0010 1840 ands r0, r3 9898 0012 2828 cmp r0, #40 9899 0014 00D0 beq .LCB9366 9900 0016 B4E0 b .L578 @long jump 9901 .LCB9366: 4219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9902 .loc 1 4219 5 is_stmt 1 view .LVU3307 4219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9903 .loc 1 4219 8 is_stmt 0 view .LVU3308 9904 0018 0029 cmp r1, #0 9905 001a 01D0 beq .L569 4219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9906 .loc 1 4219 25 discriminator 1 view .LVU3309 9907 001c 002A cmp r2, #0 9908 001e 04D1 bne .L570 9909 .L569: 4221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 9910 .loc 1 4221 7 is_stmt 1 view .LVU3310 4221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return HAL_ERROR; 9911 .loc 1 4221 23 is_stmt 0 view .LVU3311 9912 0020 8023 movs r3, #128 ARM GAS /tmp/ccuRhBPx.s page 357 9913 0022 9B00 lsls r3, r3, #2 9914 0024 6364 str r3, [r4, #68] 4222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9915 .loc 1 4222 7 is_stmt 1 view .LVU3312 4222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 9916 .loc 1 4222 15 is_stmt 0 view .LVU3313 9917 0026 0125 movs r5, #1 9918 0028 ACE0 b .L568 9919 .L570: 4226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9920 .loc 1 4226 5 is_stmt 1 view .LVU3314 9921 002a 5849 ldr r1, .L585 9922 .LVL729: 4226:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9923 .loc 1 4226 5 is_stmt 0 view .LVU3315 9924 002c 2000 movs r0, r4 9925 002e FFF7FEFF bl I2C_Disable_IRQ 9926 .LVL730: 4229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9927 .loc 1 4229 5 is_stmt 1 view .LVU3316 4229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9928 .loc 1 4229 5 view .LVU3317 9929 0032 4023 movs r3, #64 9930 0034 E35C ldrb r3, [r4, r3] 9931 0036 012B cmp r3, #1 9932 0038 00D1 bne .LCB9395 9933 003a A5E0 b .L579 @long jump 9934 .LCB9395: 4229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9935 .loc 1 4229 5 discriminator 2 view .LVU3318 9936 003c 4023 movs r3, #64 9937 003e 0122 movs r2, #1 9938 0040 E254 strb r2, [r4, r3] 4229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9939 .loc 1 4229 5 discriminator 2 view .LVU3319 4233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9940 .loc 1 4233 5 view .LVU3320 4233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9941 .loc 1 4233 13 is_stmt 0 view .LVU3321 9942 0042 0133 adds r3, r3, #1 9943 0044 E35C ldrb r3, [r4, r3] 4233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9944 .loc 1 4233 8 view .LVU3322 9945 0046 292B cmp r3, #41 9946 0048 3BD0 beq .L583 4258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9947 .loc 1 4258 10 is_stmt 1 view .LVU3323 4258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9948 .loc 1 4258 18 is_stmt 0 view .LVU3324 9949 004a 4123 movs r3, #65 9950 004c E35C ldrb r3, [r4, r3] 4258:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9951 .loc 1 4258 13 view .LVU3325 9952 004e 2A2B cmp r3, #42 9953 0050 52D0 beq .L584 9954 .L572: 4283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 358 9955 .loc 1 4283 5 is_stmt 1 view .LVU3326 4285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9956 .loc 1 4285 5 view .LVU3327 4285:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9957 .loc 1 4285 21 is_stmt 0 view .LVU3328 9958 0052 4123 movs r3, #65 9959 0054 2A22 movs r2, #42 9960 0056 E254 strb r2, [r4, r3] 4286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9961 .loc 1 4286 5 is_stmt 1 view .LVU3329 4286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9962 .loc 1 4286 21 is_stmt 0 view .LVU3330 9963 0058 0133 adds r3, r3, #1 9964 005a 0A3A subs r2, r2, #10 9965 005c E254 strb r2, [r4, r3] 4287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9966 .loc 1 4287 5 is_stmt 1 view .LVU3331 4287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9967 .loc 1 4287 21 is_stmt 0 view .LVU3332 9968 005e 0023 movs r3, #0 9969 0060 6364 str r3, [r4, #68] 4290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9970 .loc 1 4290 5 is_stmt 1 view .LVU3333 4290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9971 .loc 1 4290 9 is_stmt 0 view .LVU3334 9972 0062 2268 ldr r2, [r4] 4290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9973 .loc 1 4290 19 view .LVU3335 9974 0064 5368 ldr r3, [r2, #4] 4290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9975 .loc 1 4290 25 view .LVU3336 9976 0066 4A49 ldr r1, .L585+4 9977 0068 0B40 ands r3, r1 9978 006a 5360 str r3, [r2, #4] 4293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 9979 .loc 1 4293 5 is_stmt 1 view .LVU3337 4293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = Size; 9980 .loc 1 4293 23 is_stmt 0 view .LVU3338 9981 006c 6762 str r7, [r4, #36] 4294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9982 .loc 1 4294 5 is_stmt 1 view .LVU3339 4294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9983 .loc 1 4294 23 is_stmt 0 view .LVU3340 9984 006e 6585 strh r5, [r4, #42] 4295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9985 .loc 1 4295 5 is_stmt 1 view .LVU3341 4295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9986 .loc 1 4295 29 is_stmt 0 view .LVU3342 9987 0070 638D ldrh r3, [r4, #42] 4295:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9988 .loc 1 4295 23 view .LVU3343 9989 0072 2385 strh r3, [r4, #40] 4296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9990 .loc 1 4296 5 is_stmt 1 view .LVU3344 4296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9991 .loc 1 4296 23 is_stmt 0 view .LVU3345 9992 0074 E662 str r6, [r4, #44] ARM GAS /tmp/ccuRhBPx.s page 359 4297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9993 .loc 1 4297 5 is_stmt 1 view .LVU3346 4297:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 9994 .loc 1 4297 23 is_stmt 0 view .LVU3347 9995 0076 474B ldr r3, .L585+8 9996 0078 6363 str r3, [r4, #52] 4299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9997 .loc 1 4299 5 is_stmt 1 view .LVU3348 4299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 9998 .loc 1 4299 13 is_stmt 0 view .LVU3349 9999 007a E36B ldr r3, [r4, #60] 4299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10000 .loc 1 4299 8 view .LVU3350 10001 007c 002B cmp r3, #0 10002 007e 51D0 beq .L573 4302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10003 .loc 1 4302 7 is_stmt 1 view .LVU3351 4302:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10004 .loc 1 4302 38 is_stmt 0 view .LVU3352 10005 0080 454A ldr r2, .L585+12 10006 0082 9A62 str r2, [r3, #40] 4305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10007 .loc 1 4305 7 is_stmt 1 view .LVU3353 4305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10008 .loc 1 4305 11 is_stmt 0 view .LVU3354 10009 0084 E36B ldr r3, [r4, #60] 4305:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10010 .loc 1 4305 39 view .LVU3355 10011 0086 454A ldr r2, .L585+16 10012 0088 1A63 str r2, [r3, #48] 4308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 10013 .loc 1 4308 7 is_stmt 1 view .LVU3356 4308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 10014 .loc 1 4308 11 is_stmt 0 view .LVU3357 10015 008a E26B ldr r2, [r4, #60] 4308:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 10016 .loc 1 4308 42 view .LVU3358 10017 008c 0023 movs r3, #0 10018 008e D362 str r3, [r2, #44] 4309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10019 .loc 1 4309 7 is_stmt 1 view .LVU3359 4309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10020 .loc 1 4309 11 is_stmt 0 view .LVU3360 10021 0090 E26B ldr r2, [r4, #60] 4309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10022 .loc 1 4309 39 view .LVU3361 10023 0092 5363 str r3, [r2, #52] 4312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 10024 .loc 1 4312 7 is_stmt 1 view .LVU3362 4312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 10025 .loc 1 4312 69 is_stmt 0 view .LVU3363 10026 0094 2168 ldr r1, [r4] 4312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 10027 .loc 1 4312 64 view .LVU3364 10028 0096 2431 adds r1, r1, #36 4313:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10029 .loc 1 4313 61 view .LVU3365 ARM GAS /tmp/ccuRhBPx.s page 360 10030 0098 238D ldrh r3, [r4, #40] 4312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 10031 .loc 1 4312 23 view .LVU3366 10032 009a E06B ldr r0, [r4, #60] 10033 009c 3A00 movs r2, r7 10034 009e FFF7FEFF bl HAL_DMA_Start_IT 10035 .LVL731: 10036 00a2 051E subs r5, r0, #0 10037 .LVL732: 4330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10038 .loc 1 4330 5 is_stmt 1 view .LVU3367 4330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10039 .loc 1 4330 8 is_stmt 0 view .LVU3368 10040 00a4 4CD0 beq .L574 4341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10041 .loc 1 4341 7 is_stmt 1 view .LVU3369 4341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10042 .loc 1 4341 23 is_stmt 0 view .LVU3370 10043 00a6 4123 movs r3, #65 10044 00a8 2822 movs r2, #40 10045 00aa E254 strb r2, [r4, r3] 4342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10046 .loc 1 4342 7 is_stmt 1 view .LVU3371 4342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10047 .loc 1 4342 23 is_stmt 0 view .LVU3372 10048 00ac 0022 movs r2, #0 10049 00ae 0133 adds r3, r3, #1 10050 00b0 E254 strb r2, [r4, r3] 4345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10051 .loc 1 4345 7 is_stmt 1 view .LVU3373 4345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10052 .loc 1 4345 11 is_stmt 0 view .LVU3374 10053 00b2 636C ldr r3, [r4, #68] 4345:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10054 .loc 1 4345 23 view .LVU3375 10055 00b4 1021 movs r1, #16 10056 00b6 0B43 orrs r3, r1 10057 00b8 6364 str r3, [r4, #68] 4348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10058 .loc 1 4348 7 is_stmt 1 view .LVU3376 4348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10059 .loc 1 4348 7 view .LVU3377 10060 00ba 4023 movs r3, #64 10061 00bc E254 strb r2, [r4, r3] 4348:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10062 .loc 1 4348 7 view .LVU3378 4350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10063 .loc 1 4350 7 view .LVU3379 4350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10064 .loc 1 4350 14 is_stmt 0 view .LVU3380 10065 00be 0125 movs r5, #1 10066 00c0 60E0 b .L568 10067 .LVL733: 10068 .L583: 4236:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10069 .loc 1 4236 7 is_stmt 1 view .LVU3381 10070 00c2 0121 movs r1, #1 ARM GAS /tmp/ccuRhBPx.s page 361 10071 00c4 2000 movs r0, r4 10072 00c6 FFF7FEFF bl I2C_Disable_IRQ 10073 .LVL734: 4238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10074 .loc 1 4238 7 view .LVU3382 4238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10075 .loc 1 4238 16 is_stmt 0 view .LVU3383 10076 00ca 2268 ldr r2, [r4] 4238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10077 .loc 1 4238 26 view .LVU3384 10078 00cc 1368 ldr r3, [r2] 4238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10079 .loc 1 4238 10 view .LVU3385 10080 00ce 5B04 lsls r3, r3, #17 10081 00d0 BFD5 bpl .L572 4241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10082 .loc 1 4241 9 is_stmt 1 view .LVU3386 4241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10083 .loc 1 4241 17 is_stmt 0 view .LVU3387 10084 00d2 A36B ldr r3, [r4, #56] 4241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10085 .loc 1 4241 12 view .LVU3388 10086 00d4 002B cmp r3, #0 10087 00d6 BCD0 beq .L572 4243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10088 .loc 1 4243 11 is_stmt 1 view .LVU3389 4243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10089 .loc 1 4243 25 is_stmt 0 view .LVU3390 10090 00d8 1368 ldr r3, [r2] 4243:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10091 .loc 1 4243 31 view .LVU3391 10092 00da 3149 ldr r1, .L585+20 10093 00dc 0B40 ands r3, r1 10094 00de 1360 str r3, [r2] 4247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10095 .loc 1 4247 11 is_stmt 1 view .LVU3392 4247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10096 .loc 1 4247 15 is_stmt 0 view .LVU3393 10097 00e0 A36B ldr r3, [r4, #56] 4247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10098 .loc 1 4247 43 view .LVU3394 10099 00e2 304A ldr r2, .L585+24 10100 00e4 5A63 str r2, [r3, #52] 4250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10101 .loc 1 4250 11 is_stmt 1 view .LVU3395 4250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10102 .loc 1 4250 15 is_stmt 0 view .LVU3396 10103 00e6 A06B ldr r0, [r4, #56] 10104 00e8 FFF7FEFF bl HAL_DMA_Abort_IT 10105 .LVL735: 4250:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10106 .loc 1 4250 14 discriminator 1 view .LVU3397 10107 00ec 0028 cmp r0, #0 10108 00ee B0D0 beq .L572 4253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10109 .loc 1 4253 13 is_stmt 1 view .LVU3398 4253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 362 10110 .loc 1 4253 17 is_stmt 0 view .LVU3399 10111 00f0 A06B ldr r0, [r4, #56] 4253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10112 .loc 1 4253 25 view .LVU3400 10113 00f2 436B ldr r3, [r0, #52] 4253:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10114 .loc 1 4253 13 view .LVU3401 10115 00f4 9847 blx r3 10116 .LVL736: 10117 00f6 ACE7 b .L572 10118 .L584: 4260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10119 .loc 1 4260 7 is_stmt 1 view .LVU3402 4260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10120 .loc 1 4260 16 is_stmt 0 view .LVU3403 10121 00f8 2268 ldr r2, [r4] 4260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10122 .loc 1 4260 26 view .LVU3404 10123 00fa 1368 ldr r3, [r2] 4260:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10124 .loc 1 4260 10 view .LVU3405 10125 00fc 1B04 lsls r3, r3, #16 10126 00fe A8D5 bpl .L572 4262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10127 .loc 1 4262 9 is_stmt 1 view .LVU3406 4262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10128 .loc 1 4262 23 is_stmt 0 view .LVU3407 10129 0100 1368 ldr r3, [r2] 4262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10130 .loc 1 4262 29 view .LVU3408 10131 0102 2349 ldr r1, .L585+4 10132 0104 0B40 ands r3, r1 10133 0106 1360 str r3, [r2] 4265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10134 .loc 1 4265 9 is_stmt 1 view .LVU3409 4265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10135 .loc 1 4265 17 is_stmt 0 view .LVU3410 10136 0108 E36B ldr r3, [r4, #60] 4265:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10137 .loc 1 4265 12 view .LVU3411 10138 010a 002B cmp r3, #0 10139 010c A1D0 beq .L572 4269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10140 .loc 1 4269 11 is_stmt 1 view .LVU3412 4269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10141 .loc 1 4269 43 is_stmt 0 view .LVU3413 10142 010e 254A ldr r2, .L585+24 10143 0110 5A63 str r2, [r3, #52] 4272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10144 .loc 1 4272 11 is_stmt 1 view .LVU3414 4272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10145 .loc 1 4272 15 is_stmt 0 view .LVU3415 10146 0112 E06B ldr r0, [r4, #60] 10147 0114 FFF7FEFF bl HAL_DMA_Abort_IT 10148 .LVL737: 4272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10149 .loc 1 4272 14 discriminator 1 view .LVU3416 ARM GAS /tmp/ccuRhBPx.s page 363 10150 0118 0028 cmp r0, #0 10151 011a 9AD0 beq .L572 4275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10152 .loc 1 4275 13 is_stmt 1 view .LVU3417 4275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10153 .loc 1 4275 17 is_stmt 0 view .LVU3418 10154 011c E06B ldr r0, [r4, #60] 4275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10155 .loc 1 4275 25 view .LVU3419 10156 011e 436B ldr r3, [r0, #52] 4275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10157 .loc 1 4275 13 view .LVU3420 10158 0120 9847 blx r3 10159 .LVL738: 10160 0122 96E7 b .L572 10161 .L573: 4318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10162 .loc 1 4318 7 is_stmt 1 view .LVU3421 4318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10163 .loc 1 4318 23 is_stmt 0 view .LVU3422 10164 0124 4123 movs r3, #65 10165 0126 2822 movs r2, #40 10166 0128 E254 strb r2, [r4, r3] 4319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10167 .loc 1 4319 7 is_stmt 1 view .LVU3423 4319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10168 .loc 1 4319 23 is_stmt 0 view .LVU3424 10169 012a 0022 movs r2, #0 10170 012c 0133 adds r3, r3, #1 10171 012e E254 strb r2, [r4, r3] 4322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10172 .loc 1 4322 7 is_stmt 1 view .LVU3425 4322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10173 .loc 1 4322 11 is_stmt 0 view .LVU3426 10174 0130 636C ldr r3, [r4, #68] 4322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10175 .loc 1 4322 23 view .LVU3427 10176 0132 8021 movs r1, #128 10177 0134 0B43 orrs r3, r1 10178 0136 6364 str r3, [r4, #68] 4325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10179 .loc 1 4325 7 is_stmt 1 view .LVU3428 4325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10180 .loc 1 4325 7 view .LVU3429 10181 0138 4023 movs r3, #64 10182 013a E254 strb r2, [r4, r3] 4325:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10183 .loc 1 4325 7 view .LVU3430 4327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10184 .loc 1 4327 7 view .LVU3431 4327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10185 .loc 1 4327 14 is_stmt 0 view .LVU3432 10186 013c 0125 movs r5, #1 10187 013e 21E0 b .L568 10188 .LVL739: 10189 .L574: 4333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 364 10190 .loc 1 4333 7 is_stmt 1 view .LVU3433 4333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10191 .loc 1 4333 11 is_stmt 0 view .LVU3434 10192 0140 638D ldrh r3, [r4, #42] 4333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10193 .loc 1 4333 30 view .LVU3435 10194 0142 228D ldrh r2, [r4, #40] 4333:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10195 .loc 1 4333 23 view .LVU3436 10196 0144 9B1A subs r3, r3, r2 10197 0146 9BB2 uxth r3, r3 10198 0148 6385 strh r3, [r4, #42] 4336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10199 .loc 1 4336 7 is_stmt 1 view .LVU3437 4336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10200 .loc 1 4336 22 is_stmt 0 view .LVU3438 10201 014a 0023 movs r3, #0 10202 014c 2385 strh r3, [r4, #40] 4353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 10203 .loc 1 4353 5 is_stmt 1 view .LVU3439 4353:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 10204 .loc 1 4353 11 is_stmt 0 view .LVU3440 10205 014e 2268 ldr r2, [r4] 10206 0150 9169 ldr r1, [r2, #24] 10207 0152 0833 adds r3, r3, #8 10208 0154 0B40 ands r3, r1 10209 .LVL740: 4354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10210 .loc 1 4354 5 is_stmt 1 view .LVU3441 4354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10211 .loc 1 4354 10 is_stmt 0 view .LVU3442 10212 0156 9169 ldr r1, [r2, #24] 4354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10213 .loc 1 4354 8 view .LVU3443 10214 0158 C903 lsls r1, r1, #15 10215 015a 0DD5 bpl .L576 10216 .LVL741: 10217 .L577: 4362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10218 .loc 1 4362 5 is_stmt 1 view .LVU3444 4362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10219 .loc 1 4362 5 view .LVU3445 10220 015c 4023 movs r3, #64 10221 015e 0022 movs r2, #0 4362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10222 .loc 1 4362 5 is_stmt 0 view .LVU3446 10223 0160 E254 strb r2, [r4, r3] 4362:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10224 .loc 1 4362 5 is_stmt 1 view .LVU3447 4365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10225 .loc 1 4365 5 view .LVU3448 4365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10226 .loc 1 4365 9 is_stmt 0 view .LVU3449 10227 0162 2268 ldr r2, [r4] 4365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10228 .loc 1 4365 19 view .LVU3450 10229 0164 1168 ldr r1, [r2] ARM GAS /tmp/ccuRhBPx.s page 365 4365:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10230 .loc 1 4365 25 view .LVU3451 10231 0166 8023 movs r3, #128 10232 0168 1B02 lsls r3, r3, #8 10233 016a 0B43 orrs r3, r1 10234 016c 1360 str r3, [r2] 4371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10235 .loc 1 4371 5 is_stmt 1 view .LVU3452 10236 016e 0749 ldr r1, .L585 10237 0170 2000 movs r0, r4 10238 .LVL742: 4371:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10239 .loc 1 4371 5 is_stmt 0 view .LVU3453 10240 0172 FFF7FEFF bl I2C_Enable_IRQ 10241 .LVL743: 4373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10242 .loc 1 4373 5 is_stmt 1 view .LVU3454 4373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10243 .loc 1 4373 12 is_stmt 0 view .LVU3455 10244 0176 05E0 b .L568 10245 .LVL744: 10246 .L576: 4354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10247 .loc 1 4354 55 discriminator 1 view .LVU3456 10248 0178 002B cmp r3, #0 10249 017a EFD0 beq .L577 4358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10250 .loc 1 4358 7 is_stmt 1 view .LVU3457 10251 017c 0823 movs r3, #8 10252 .LVL745: 4358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10253 .loc 1 4358 7 is_stmt 0 view .LVU3458 10254 017e D361 str r3, [r2, #28] 10255 0180 ECE7 b .L577 10256 .LVL746: 10257 .L578: 4377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10258 .loc 1 4377 12 view .LVU3459 10259 0182 0125 movs r5, #1 10260 .LVL747: 10261 .L568: 4379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10262 .loc 1 4379 1 view .LVU3460 10263 0184 2800 movs r0, r5 10264 @ sp needed 10265 .LVL748: 10266 .LVL749: 10267 .LVL750: 4379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10268 .loc 1 4379 1 view .LVU3461 10269 0186 F8BD pop {r3, r4, r5, r6, r7, pc} 10270 .LVL751: 10271 .L579: 4229:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10272 .loc 1 4229 5 discriminator 1 view .LVU3462 10273 0188 0225 movs r5, #2 10274 018a FBE7 b .L568 ARM GAS /tmp/ccuRhBPx.s page 366 10275 .L586: 10276 .align 2 10277 .L585: 10278 018c 02800000 .word 32770 10279 0190 FF7FFFFF .word -32769 10280 0194 00000000 .word I2C_Slave_ISR_DMA 10281 0198 00000000 .word I2C_DMASlaveReceiveCplt 10282 019c 00000000 .word I2C_DMAError 10283 01a0 FFBFFFFF .word -16385 10284 01a4 00000000 .word I2C_DMAAbort 10285 .cfi_endproc 10286 .LFE70: 10288 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits 10289 .align 1 10290 .global HAL_I2C_EnableListen_IT 10291 .syntax unified 10292 .code 16 10293 .thumb_func 10295 HAL_I2C_EnableListen_IT: 10296 .LVL752: 10297 .LFB71: 4388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 10298 .loc 1 4388 1 is_stmt 1 view -0 10299 .cfi_startproc 10300 @ args = 0, pretend = 0, frame = 0 10301 @ frame_needed = 0, uses_anonymous_args = 0 4388:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 10302 .loc 1 4388 1 is_stmt 0 view .LVU3464 10303 0000 10B5 push {r4, lr} 10304 .cfi_def_cfa_offset 8 10305 .cfi_offset 4, -8 10306 .cfi_offset 14, -4 4389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10307 .loc 1 4389 3 is_stmt 1 view .LVU3465 4389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10308 .loc 1 4389 11 is_stmt 0 view .LVU3466 10309 0002 4123 movs r3, #65 10310 0004 C35C ldrb r3, [r0, r3] 4389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10311 .loc 1 4389 6 view .LVU3467 10312 0006 202B cmp r3, #32 10313 0008 01D0 beq .L590 4401:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10314 .loc 1 4401 12 view .LVU3468 10315 000a 0220 movs r0, #2 10316 .LVL753: 10317 .L588: 4403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10318 .loc 1 4403 1 view .LVU3469 10319 @ sp needed 10320 000c 10BD pop {r4, pc} 10321 .LVL754: 10322 .L590: 4391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10323 .loc 1 4391 5 is_stmt 1 view .LVU3470 4391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10324 .loc 1 4391 17 is_stmt 0 view .LVU3471 ARM GAS /tmp/ccuRhBPx.s page 367 10325 000e 2133 adds r3, r3, #33 10326 0010 2822 movs r2, #40 10327 0012 C254 strb r2, [r0, r3] 4392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10328 .loc 1 4392 5 is_stmt 1 view .LVU3472 4392:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10329 .loc 1 4392 19 is_stmt 0 view .LVU3473 10330 0014 034B ldr r3, .L591 10331 0016 4363 str r3, [r0, #52] 4395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10332 .loc 1 4395 5 is_stmt 1 view .LVU3474 10333 0018 8021 movs r1, #128 10334 001a 0902 lsls r1, r1, #8 10335 001c FFF7FEFF bl I2C_Enable_IRQ 10336 .LVL755: 4397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10337 .loc 1 4397 5 view .LVU3475 4397:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10338 .loc 1 4397 12 is_stmt 0 view .LVU3476 10339 0020 0020 movs r0, #0 10340 0022 F3E7 b .L588 10341 .L592: 10342 .align 2 10343 .L591: 10344 0024 00000000 .word I2C_Slave_ISR_IT 10345 .cfi_endproc 10346 .LFE71: 10348 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits 10349 .align 1 10350 .global HAL_I2C_DisableListen_IT 10351 .syntax unified 10352 .code 16 10353 .thumb_func 10355 HAL_I2C_DisableListen_IT: 10356 .LVL756: 10357 .LFB72: 4412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 10358 .loc 1 4412 1 is_stmt 1 view -0 10359 .cfi_startproc 10360 @ args = 0, pretend = 0, frame = 0 10361 @ frame_needed = 0, uses_anonymous_args = 0 4412:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 10362 .loc 1 4412 1 is_stmt 0 view .LVU3478 10363 0000 70B5 push {r4, r5, r6, lr} 10364 .cfi_def_cfa_offset 16 10365 .cfi_offset 4, -16 10366 .cfi_offset 5, -12 10367 .cfi_offset 6, -8 10368 .cfi_offset 14, -4 4414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10369 .loc 1 4414 3 is_stmt 1 view .LVU3479 4417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10370 .loc 1 4417 3 view .LVU3480 4417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10371 .loc 1 4417 11 is_stmt 0 view .LVU3481 10372 0002 4123 movs r3, #65 10373 0004 C35C ldrb r3, [r0, r3] ARM GAS /tmp/ccuRhBPx.s page 368 4417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10374 .loc 1 4417 6 view .LVU3482 10375 0006 282B cmp r3, #40 10376 0008 01D0 beq .L596 4432:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10377 .loc 1 4432 12 view .LVU3483 10378 000a 0220 movs r0, #2 10379 .LVL757: 10380 .L594: 4434:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10381 .loc 1 4434 1 view .LVU3484 10382 @ sp needed 10383 000c 70BD pop {r4, r5, r6, pc} 10384 .LVL758: 10385 .L596: 4419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 10386 .loc 1 4419 5 is_stmt 1 view .LVU3485 4419:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 10387 .loc 1 4419 26 is_stmt 0 view .LVU3486 10388 000e 4124 movs r4, #65 10389 0010 025D ldrb r2, [r0, r4] 10390 .LVL759: 4420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10391 .loc 1 4420 5 is_stmt 1 view .LVU3487 4420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10392 .loc 1 4420 48 is_stmt 0 view .LVU3488 10393 0012 4221 movs r1, #66 10394 0014 435C ldrb r3, [r0, r1] 4420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10395 .loc 1 4420 31 view .LVU3489 10396 0016 0325 movs r5, #3 10397 0018 2A40 ands r2, r5 10398 .LVL760: 4420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10399 .loc 1 4420 31 view .LVU3490 10400 001a 1343 orrs r3, r2 4420:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10401 .loc 1 4420 25 view .LVU3491 10402 001c 0363 str r3, [r0, #48] 4421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10403 .loc 1 4421 5 is_stmt 1 view .LVU3492 4421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10404 .loc 1 4421 17 is_stmt 0 view .LVU3493 10405 001e 2023 movs r3, #32 10406 0020 0355 strb r3, [r0, r4] 4422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 10407 .loc 1 4422 5 is_stmt 1 view .LVU3494 4422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 10408 .loc 1 4422 16 is_stmt 0 view .LVU3495 10409 0022 0023 movs r3, #0 10410 0024 4354 strb r3, [r0, r1] 4423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10411 .loc 1 4423 5 is_stmt 1 view .LVU3496 4423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10412 .loc 1 4423 19 is_stmt 0 view .LVU3497 10413 0026 4363 str r3, [r0, #52] 4426:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 369 10414 .loc 1 4426 5 is_stmt 1 view .LVU3498 10415 0028 3E31 adds r1, r1, #62 10416 002a 0902 lsls r1, r1, #8 10417 002c FFF7FEFF bl I2C_Disable_IRQ 10418 .LVL761: 4428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10419 .loc 1 4428 5 view .LVU3499 4428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10420 .loc 1 4428 12 is_stmt 0 view .LVU3500 10421 0030 0020 movs r0, #0 10422 0032 EBE7 b .L594 10423 .cfi_endproc 10424 .LFE72: 10426 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits 10427 .align 1 10428 .global HAL_I2C_Master_Abort_IT 10429 .syntax unified 10430 .code 16 10431 .thumb_func 10433 HAL_I2C_Master_Abort_IT: 10434 .LVL762: 10435 .LFB73: 4445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 10436 .loc 1 4445 1 is_stmt 1 view -0 10437 .cfi_startproc 10438 @ args = 0, pretend = 0, frame = 0 10439 @ frame_needed = 0, uses_anonymous_args = 0 4445:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 10440 .loc 1 4445 1 is_stmt 0 view .LVU3502 10441 0000 30B5 push {r4, r5, lr} 10442 .cfi_def_cfa_offset 12 10443 .cfi_offset 4, -12 10444 .cfi_offset 5, -8 10445 .cfi_offset 14, -4 10446 0002 83B0 sub sp, sp, #12 10447 .cfi_def_cfa_offset 24 10448 0004 0400 movs r4, r0 10449 0006 0D00 movs r5, r1 4446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10450 .loc 1 4446 3 is_stmt 1 view .LVU3503 4446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10451 .loc 1 4446 11 is_stmt 0 view .LVU3504 10452 0008 4223 movs r3, #66 10453 000a C35C ldrb r3, [r0, r3] 4446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10454 .loc 1 4446 6 view .LVU3505 10455 000c 102B cmp r3, #16 10456 000e 2FD1 bne .L601 4449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10457 .loc 1 4449 5 is_stmt 1 view .LVU3506 4449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10458 .loc 1 4449 5 view .LVU3507 10459 0010 3033 adds r3, r3, #48 10460 0012 C35C ldrb r3, [r0, r3] 10461 0014 012B cmp r3, #1 10462 0016 2ED0 beq .L602 4449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 370 10463 .loc 1 4449 5 discriminator 2 view .LVU3508 10464 0018 4023 movs r3, #64 10465 001a 0122 movs r2, #1 10466 001c C254 strb r2, [r0, r3] 4449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10467 .loc 1 4449 5 discriminator 2 view .LVU3509 4452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10468 .loc 1 4452 5 view .LVU3510 4452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10469 .loc 1 4452 13 is_stmt 0 view .LVU3511 10470 001e 0133 adds r3, r3, #1 10471 0020 C35C ldrb r3, [r0, r3] 4452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10472 .loc 1 4452 8 view .LVU3512 10473 0022 212B cmp r3, #33 10474 0024 18D0 beq .L603 4457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10475 .loc 1 4457 10 is_stmt 1 view .LVU3513 4457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10476 .loc 1 4457 18 is_stmt 0 view .LVU3514 10477 0026 4123 movs r3, #65 10478 0028 C35C ldrb r3, [r0, r3] 4457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10479 .loc 1 4457 13 view .LVU3515 10480 002a 222B cmp r3, #34 10481 002c 1AD0 beq .L604 10482 .LVL763: 10483 .L600: 4465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10484 .loc 1 4465 5 is_stmt 1 view .LVU3516 4468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10485 .loc 1 4468 5 view .LVU3517 4468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10486 .loc 1 4468 17 is_stmt 0 view .LVU3518 10487 002e 4123 movs r3, #65 10488 0030 6022 movs r2, #96 10489 0032 E254 strb r2, [r4, r3] 4472:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10490 .loc 1 4472 5 is_stmt 1 view .LVU3519 10491 0034 3F33 adds r3, r3, #63 10492 0036 114A ldr r2, .L605 10493 0038 0092 str r2, [sp] 10494 003a 9B04 lsls r3, r3, #18 10495 003c 0122 movs r2, #1 10496 003e 2900 movs r1, r5 10497 0040 2000 movs r0, r4 10498 0042 FFF7FEFF bl I2C_TransferConfig 10499 .LVL764: 4475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10500 .loc 1 4475 5 view .LVU3520 4475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10501 .loc 1 4475 5 view .LVU3521 10502 0046 4023 movs r3, #64 10503 0048 0022 movs r2, #0 10504 004a E254 strb r2, [r4, r3] 4475:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10505 .loc 1 4475 5 view .LVU3522 ARM GAS /tmp/ccuRhBPx.s page 371 4480:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10506 .loc 1 4480 5 view .LVU3523 10507 004c 2021 movs r1, #32 10508 004e 2000 movs r0, r4 10509 0050 FFF7FEFF bl I2C_Enable_IRQ 10510 .LVL765: 4482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10511 .loc 1 4482 5 view .LVU3524 4482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10512 .loc 1 4482 12 is_stmt 0 view .LVU3525 10513 0054 0020 movs r0, #0 10514 0056 0CE0 b .L598 10515 .LVL766: 10516 .L603: 4454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10517 .loc 1 4454 7 is_stmt 1 view .LVU3526 10518 0058 0121 movs r1, #1 10519 .LVL767: 4454:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10520 .loc 1 4454 7 is_stmt 0 view .LVU3527 10521 005a FFF7FEFF bl I2C_Disable_IRQ 10522 .LVL768: 4455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10523 .loc 1 4455 7 is_stmt 1 view .LVU3528 4455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10524 .loc 1 4455 27 is_stmt 0 view .LVU3529 10525 005e 1123 movs r3, #17 10526 0060 2363 str r3, [r4, #48] 10527 0062 E4E7 b .L600 10528 .LVL769: 10529 .L604: 4459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10530 .loc 1 4459 7 is_stmt 1 view .LVU3530 10531 0064 0221 movs r1, #2 10532 .LVL770: 4459:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10533 .loc 1 4459 7 is_stmt 0 view .LVU3531 10534 0066 FFF7FEFF bl I2C_Disable_IRQ 10535 .LVL771: 4460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10536 .loc 1 4460 7 is_stmt 1 view .LVU3532 4460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10537 .loc 1 4460 27 is_stmt 0 view .LVU3533 10538 006a 1223 movs r3, #18 10539 006c 2363 str r3, [r4, #48] 10540 006e DEE7 b .L600 10541 .LVL772: 10542 .L601: 4488:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10543 .loc 1 4488 12 view .LVU3534 10544 0070 0120 movs r0, #1 10545 .LVL773: 10546 .L598: 4490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10547 .loc 1 4490 1 view .LVU3535 10548 0072 03B0 add sp, sp, #12 10549 @ sp needed ARM GAS /tmp/ccuRhBPx.s page 372 10550 .LVL774: 10551 .LVL775: 4490:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10552 .loc 1 4490 1 view .LVU3536 10553 0074 30BD pop {r4, r5, pc} 10554 .LVL776: 10555 .L602: 4449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10556 .loc 1 4449 5 discriminator 1 view .LVU3537 10557 0076 0220 movs r0, #2 10558 .LVL777: 4449:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10559 .loc 1 4449 5 discriminator 1 view .LVU3538 10560 0078 FBE7 b .L598 10561 .L606: 10562 007a C046 .align 2 10563 .L605: 10564 007c 00400080 .word -2147467264 10565 .cfi_endproc 10566 .LFE73: 10568 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits 10569 .align 1 10570 .global HAL_I2C_EV_IRQHandler 10571 .syntax unified 10572 .code 16 10573 .thumb_func 10575 HAL_I2C_EV_IRQHandler: 10576 .LVL778: 10577 .LFB74: 4507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 10578 .loc 1 4507 1 is_stmt 1 view -0 10579 .cfi_startproc 10580 @ args = 0, pretend = 0, frame = 0 10581 @ frame_needed = 0, uses_anonymous_args = 0 4507:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 10582 .loc 1 4507 1 is_stmt 0 view .LVU3540 10583 0000 10B5 push {r4, lr} 10584 .cfi_def_cfa_offset 8 10585 .cfi_offset 4, -8 10586 .cfi_offset 14, -4 4509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10587 .loc 1 4509 3 is_stmt 1 view .LVU3541 4509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10588 .loc 1 4509 24 is_stmt 0 view .LVU3542 10589 0002 0368 ldr r3, [r0] 4509:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10590 .loc 1 4509 12 view .LVU3543 10591 0004 9969 ldr r1, [r3, #24] 10592 .LVL779: 4510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10593 .loc 1 4510 3 is_stmt 1 view .LVU3544 4510:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10594 .loc 1 4510 12 is_stmt 0 view .LVU3545 10595 0006 1A68 ldr r2, [r3] 10596 .LVL780: 4513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10597 .loc 1 4513 3 is_stmt 1 view .LVU3546 ARM GAS /tmp/ccuRhBPx.s page 373 4513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10598 .loc 1 4513 11 is_stmt 0 view .LVU3547 10599 0008 436B ldr r3, [r0, #52] 4513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10600 .loc 1 4513 6 view .LVU3548 10601 000a 002B cmp r3, #0 10602 000c 00D0 beq .L607 4515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10603 .loc 1 4515 5 is_stmt 1 view .LVU3549 10604 000e 9847 blx r3 10605 .LVL781: 10606 .L607: 4517:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10607 .loc 1 4517 1 is_stmt 0 view .LVU3550 10608 @ sp needed 10609 0010 10BD pop {r4, pc} 10610 .cfi_endproc 10611 .LFE74: 10613 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits 10614 .align 1 10615 .weak HAL_I2C_MasterTxCpltCallback 10616 .syntax unified 10617 .code 16 10618 .thumb_func 10620 HAL_I2C_MasterTxCpltCallback: 10621 .LVL782: 10622 .LFB76: 4578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10623 .loc 1 4578 1 is_stmt 1 view -0 10624 .cfi_startproc 10625 @ args = 0, pretend = 0, frame = 0 10626 @ frame_needed = 0, uses_anonymous_args = 0 10627 @ link register save eliminated. 4580:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10628 .loc 1 4580 3 view .LVU3552 4585:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10629 .loc 1 4585 1 is_stmt 0 view .LVU3553 10630 @ sp needed 10631 0000 7047 bx lr 10632 .cfi_endproc 10633 .LFE76: 10635 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits 10636 .align 1 10637 .weak HAL_I2C_MasterRxCpltCallback 10638 .syntax unified 10639 .code 16 10640 .thumb_func 10642 HAL_I2C_MasterRxCpltCallback: 10643 .LVL783: 10644 .LFB77: 4594:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10645 .loc 1 4594 1 is_stmt 1 view -0 10646 .cfi_startproc 10647 @ args = 0, pretend = 0, frame = 0 10648 @ frame_needed = 0, uses_anonymous_args = 0 10649 @ link register save eliminated. 4596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 374 10650 .loc 1 4596 3 view .LVU3555 4601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10651 .loc 1 4601 1 is_stmt 0 view .LVU3556 10652 @ sp needed 10653 0000 7047 bx lr 10654 .cfi_endproc 10655 .LFE77: 10657 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits 10658 .align 1 10659 .syntax unified 10660 .code 16 10661 .thumb_func 10663 I2C_ITMasterSeqCplt: 10664 .LVL784: 10665 .LFB98: 5855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */ 10666 .loc 1 5855 1 is_stmt 1 view -0 10667 .cfi_startproc 10668 @ args = 0, pretend = 0, frame = 0 10669 @ frame_needed = 0, uses_anonymous_args = 0 5855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset I2C handle mode */ 10670 .loc 1 5855 1 is_stmt 0 view .LVU3558 10671 0000 70B5 push {r4, r5, r6, lr} 10672 .cfi_def_cfa_offset 16 10673 .cfi_offset 4, -16 10674 .cfi_offset 5, -12 10675 .cfi_offset 6, -8 10676 .cfi_offset 14, -4 10677 0002 0400 movs r4, r0 5857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10678 .loc 1 5857 3 is_stmt 1 view .LVU3559 5857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10679 .loc 1 5857 14 is_stmt 0 view .LVU3560 10680 0004 4223 movs r3, #66 10681 0006 0022 movs r2, #0 10682 0008 C254 strb r2, [r0, r3] 5861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10683 .loc 1 5861 3 is_stmt 1 view .LVU3561 5861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10684 .loc 1 5861 11 is_stmt 0 view .LVU3562 10685 000a 013B subs r3, r3, #1 10686 000c C35C ldrb r3, [r0, r3] 5861:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10687 .loc 1 5861 6 view .LVU3563 10688 000e 212B cmp r3, #33 10689 0010 0FD0 beq .L614 5883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10690 .loc 1 5883 5 is_stmt 1 view .LVU3564 5883:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10691 .loc 1 5883 25 is_stmt 0 view .LVU3565 10692 0012 4123 movs r3, #65 10693 0014 2022 movs r2, #32 10694 0016 C254 strb r2, [r0, r3] 5884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 10695 .loc 1 5884 5 is_stmt 1 view .LVU3566 5884:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 10696 .loc 1 5884 25 is_stmt 0 view .LVU3567 ARM GAS /tmp/ccuRhBPx.s page 375 10697 0018 2F3B subs r3, r3, #47 10698 001a 0363 str r3, [r0, #48] 5885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10699 .loc 1 5885 5 is_stmt 1 view .LVU3568 5885:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10700 .loc 1 5885 25 is_stmt 0 view .LVU3569 10701 001c 0025 movs r5, #0 10702 001e 4563 str r5, [r0, #52] 5888:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10703 .loc 1 5888 5 is_stmt 1 view .LVU3570 10704 0020 0221 movs r1, #2 10705 0022 FFF7FEFF bl I2C_Disable_IRQ 10706 .LVL785: 5891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10707 .loc 1 5891 5 view .LVU3571 5891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10708 .loc 1 5891 5 view .LVU3572 10709 0026 4023 movs r3, #64 10710 0028 E554 strb r5, [r4, r3] 5891:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10711 .loc 1 5891 5 view .LVU3573 5897:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10712 .loc 1 5897 5 view .LVU3574 10713 002a 2000 movs r0, r4 10714 002c FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 10715 .LVL786: 10716 .L611: 5900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10717 .loc 1 5900 1 is_stmt 0 view .LVU3575 10718 @ sp needed 10719 .LVL787: 5900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10720 .loc 1 5900 1 view .LVU3576 10721 0030 70BD pop {r4, r5, r6, pc} 10722 .LVL788: 10723 .L614: 5863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10724 .loc 1 5863 5 is_stmt 1 view .LVU3577 5863:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10725 .loc 1 5863 25 is_stmt 0 view .LVU3578 10726 0032 2033 adds r3, r3, #32 10727 0034 2032 adds r2, r2, #32 10728 0036 C254 strb r2, [r0, r3] 5864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 10729 .loc 1 5864 5 is_stmt 1 view .LVU3579 5864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 10730 .loc 1 5864 25 is_stmt 0 view .LVU3580 10731 0038 303B subs r3, r3, #48 10732 003a 0363 str r3, [r0, #48] 5865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10733 .loc 1 5865 5 is_stmt 1 view .LVU3581 5865:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10734 .loc 1 5865 25 is_stmt 0 view .LVU3582 10735 003c 0025 movs r5, #0 10736 003e 4563 str r5, [r0, #52] 5868:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10737 .loc 1 5868 5 is_stmt 1 view .LVU3583 ARM GAS /tmp/ccuRhBPx.s page 376 10738 0040 0121 movs r1, #1 10739 0042 FFF7FEFF bl I2C_Disable_IRQ 10740 .LVL789: 5871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10741 .loc 1 5871 5 view .LVU3584 5871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10742 .loc 1 5871 5 view .LVU3585 10743 0046 4023 movs r3, #64 10744 0048 E554 strb r5, [r4, r3] 5871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10745 .loc 1 5871 5 view .LVU3586 5877:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10746 .loc 1 5877 5 view .LVU3587 10747 004a 2000 movs r0, r4 10748 004c FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 10749 .LVL790: 10750 0050 EEE7 b .L611 10751 .cfi_endproc 10752 .LFE98: 10754 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits 10755 .align 1 10756 .weak HAL_I2C_SlaveTxCpltCallback 10757 .syntax unified 10758 .code 16 10759 .thumb_func 10761 HAL_I2C_SlaveTxCpltCallback: 10762 .LVL791: 10763 .LFB78: 4609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10764 .loc 1 4609 1 view -0 10765 .cfi_startproc 10766 @ args = 0, pretend = 0, frame = 0 10767 @ frame_needed = 0, uses_anonymous_args = 0 10768 @ link register save eliminated. 4611:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10769 .loc 1 4611 3 view .LVU3589 4616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10770 .loc 1 4616 1 is_stmt 0 view .LVU3590 10771 @ sp needed 10772 0000 7047 bx lr 10773 .cfi_endproc 10774 .LFE78: 10776 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits 10777 .align 1 10778 .weak HAL_I2C_SlaveRxCpltCallback 10779 .syntax unified 10780 .code 16 10781 .thumb_func 10783 HAL_I2C_SlaveRxCpltCallback: 10784 .LVL792: 10785 .LFB79: 4625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10786 .loc 1 4625 1 is_stmt 1 view -0 10787 .cfi_startproc 10788 @ args = 0, pretend = 0, frame = 0 10789 @ frame_needed = 0, uses_anonymous_args = 0 10790 @ link register save eliminated. ARM GAS /tmp/ccuRhBPx.s page 377 4627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10791 .loc 1 4627 3 view .LVU3592 4632:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10792 .loc 1 4632 1 is_stmt 0 view .LVU3593 10793 @ sp needed 10794 0000 7047 bx lr 10795 .cfi_endproc 10796 .LFE79: 10798 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits 10799 .align 1 10800 .syntax unified 10801 .code 16 10802 .thumb_func 10804 I2C_ITSlaveSeqCplt: 10805 .LVL793: 10806 .LFB99: 5908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10807 .loc 1 5908 1 is_stmt 1 view -0 10808 .cfi_startproc 10809 @ args = 0, pretend = 0, frame = 0 10810 @ frame_needed = 0, uses_anonymous_args = 0 5908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10811 .loc 1 5908 1 is_stmt 0 view .LVU3595 10812 0000 10B5 push {r4, lr} 10813 .cfi_def_cfa_offset 8 10814 .cfi_offset 4, -8 10815 .cfi_offset 14, -4 10816 0002 0400 movs r4, r0 5909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10817 .loc 1 5909 3 is_stmt 1 view .LVU3596 5909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10818 .loc 1 5909 26 is_stmt 0 view .LVU3597 10819 0004 0368 ldr r3, [r0] 5909:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10820 .loc 1 5909 12 view .LVU3598 10821 0006 1A68 ldr r2, [r3] 10822 .LVL794: 5912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10823 .loc 1 5912 3 is_stmt 1 view .LVU3599 5912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10824 .loc 1 5912 14 is_stmt 0 view .LVU3600 10825 0008 4221 movs r1, #66 10826 000a 0020 movs r0, #0 10827 .LVL795: 5912:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10828 .loc 1 5912 14 view .LVU3601 10829 000c 6054 strb r0, [r4, r1] 5915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10830 .loc 1 5915 3 is_stmt 1 view .LVU3602 5915:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10831 .loc 1 5915 6 is_stmt 0 view .LVU3603 10832 000e 5104 lsls r1, r2, #17 10833 0010 0CD5 bpl .L618 5918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10834 .loc 1 5918 5 is_stmt 1 view .LVU3604 5918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10835 .loc 1 5918 19 is_stmt 0 view .LVU3605 ARM GAS /tmp/ccuRhBPx.s page 378 10836 0012 1A68 ldr r2, [r3] 10837 .LVL796: 5918:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10838 .loc 1 5918 25 view .LVU3606 10839 0014 1949 ldr r1, .L625 10840 0016 0A40 ands r2, r1 10841 0018 1A60 str r2, [r3] 10842 .L619: 5928:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10843 .loc 1 5928 3 is_stmt 1 view .LVU3607 5930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10844 .loc 1 5930 3 view .LVU3608 5930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10845 .loc 1 5930 11 is_stmt 0 view .LVU3609 10846 001a 4123 movs r3, #65 10847 001c E35C ldrb r3, [r4, r3] 5930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10848 .loc 1 5930 6 view .LVU3610 10849 001e 292B cmp r3, #41 10850 0020 0BD0 beq .L623 5950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10851 .loc 1 5950 8 is_stmt 1 view .LVU3611 5950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10852 .loc 1 5950 16 is_stmt 0 view .LVU3612 10853 0022 4123 movs r3, #65 10854 0024 E35C ldrb r3, [r4, r3] 5950:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10855 .loc 1 5950 11 view .LVU3613 10856 0026 2A2B cmp r3, #42 10857 0028 17D0 beq .L624 10858 .L617: 5973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10859 .loc 1 5973 1 view .LVU3614 10860 @ sp needed 10861 .LVL797: 5973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10862 .loc 1 5973 1 view .LVU3615 10863 002a 10BD pop {r4, pc} 10864 .LVL798: 10865 .L618: 5920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10866 .loc 1 5920 8 is_stmt 1 view .LVU3616 5920:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10867 .loc 1 5920 11 is_stmt 0 view .LVU3617 10868 002c 1204 lsls r2, r2, #16 10869 002e F4D5 bpl .L619 10870 .LVL799: 5923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10871 .loc 1 5923 5 is_stmt 1 view .LVU3618 5923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10872 .loc 1 5923 19 is_stmt 0 view .LVU3619 10873 0030 1A68 ldr r2, [r3] 5923:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10874 .loc 1 5923 25 view .LVU3620 10875 0032 1349 ldr r1, .L625+4 10876 0034 0A40 ands r2, r1 10877 0036 1A60 str r2, [r3] ARM GAS /tmp/ccuRhBPx.s page 379 10878 0038 EFE7 b .L619 10879 .L623: 5933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10880 .loc 1 5933 5 is_stmt 1 view .LVU3621 5933:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10881 .loc 1 5933 25 is_stmt 0 view .LVU3622 10882 003a 1833 adds r3, r3, #24 10883 003c 2822 movs r2, #40 10884 003e E254 strb r2, [r4, r3] 5934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10885 .loc 1 5934 5 is_stmt 1 view .LVU3623 5934:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10886 .loc 1 5934 25 is_stmt 0 view .LVU3624 10887 0040 203B subs r3, r3, #32 10888 0042 2363 str r3, [r4, #48] 5937:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10889 .loc 1 5937 5 is_stmt 1 view .LVU3625 10890 0044 0121 movs r1, #1 10891 0046 2000 movs r0, r4 10892 0048 FFF7FEFF bl I2C_Disable_IRQ 10893 .LVL800: 5940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10894 .loc 1 5940 5 view .LVU3626 5940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10895 .loc 1 5940 5 view .LVU3627 10896 004c 4023 movs r3, #64 10897 004e 0022 movs r2, #0 10898 0050 E254 strb r2, [r4, r3] 5940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10899 .loc 1 5940 5 view .LVU3628 5946:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10900 .loc 1 5946 5 view .LVU3629 10901 0052 2000 movs r0, r4 10902 0054 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 10903 .LVL801: 10904 0058 E7E7 b .L617 10905 .L624: 5953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10906 .loc 1 5953 5 view .LVU3630 5953:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10907 .loc 1 5953 25 is_stmt 0 view .LVU3631 10908 005a 1733 adds r3, r3, #23 10909 005c 2822 movs r2, #40 10910 005e E254 strb r2, [r4, r3] 5954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10911 .loc 1 5954 5 is_stmt 1 view .LVU3632 5954:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10912 .loc 1 5954 25 is_stmt 0 view .LVU3633 10913 0060 1F3B subs r3, r3, #31 10914 0062 2363 str r3, [r4, #48] 5957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10915 .loc 1 5957 5 is_stmt 1 view .LVU3634 10916 0064 0221 movs r1, #2 10917 0066 2000 movs r0, r4 10918 0068 FFF7FEFF bl I2C_Disable_IRQ 10919 .LVL802: 5960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 380 10920 .loc 1 5960 5 view .LVU3635 5960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10921 .loc 1 5960 5 view .LVU3636 10922 006c 4023 movs r3, #64 10923 006e 0022 movs r2, #0 10924 0070 E254 strb r2, [r4, r3] 5960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10925 .loc 1 5960 5 view .LVU3637 5966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10926 .loc 1 5966 5 view .LVU3638 10927 0072 2000 movs r0, r4 10928 0074 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 10929 .LVL803: 5972:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10930 .loc 1 5972 3 view .LVU3639 5973:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10931 .loc 1 5973 1 is_stmt 0 view .LVU3640 10932 0078 D7E7 b .L617 10933 .L626: 10934 007a C046 .align 2 10935 .L625: 10936 007c FFBFFFFF .word -16385 10937 0080 FF7FFFFF .word -32769 10938 .cfi_endproc 10939 .LFE99: 10941 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits 10942 .align 1 10943 .syntax unified 10944 .code 16 10945 .thumb_func 10947 I2C_DMASlaveTransmitCplt: 10948 .LVL804: 10949 .LFB107: 6576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10950 .loc 1 6576 1 is_stmt 1 view -0 10951 .cfi_startproc 10952 @ args = 0, pretend = 0, frame = 0 10953 @ frame_needed = 0, uses_anonymous_args = 0 6576:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10954 .loc 1 6576 1 is_stmt 0 view .LVU3642 10955 0000 10B5 push {r4, lr} 10956 .cfi_def_cfa_offset 8 10957 .cfi_offset 4, -8 10958 .cfi_offset 14, -4 6578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10959 .loc 1 6578 3 is_stmt 1 view .LVU3643 6578:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10960 .loc 1 6578 22 is_stmt 0 view .LVU3644 10961 0002 406A ldr r0, [r0, #36] 10962 .LVL805: 6579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10963 .loc 1 6579 3 is_stmt 1 view .LVU3645 6579:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10964 .loc 1 6579 12 is_stmt 0 view .LVU3646 10965 0004 C36A ldr r3, [r0, #44] 10966 .LVL806: 6581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 381 10967 .loc 1 6581 3 is_stmt 1 view .LVU3647 6581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10968 .loc 1 6581 6 is_stmt 0 view .LVU3648 10969 0006 8022 movs r2, #128 10970 0008 5204 lsls r2, r2, #17 10971 000a 9342 cmp r3, r2 10972 000c 01D0 beq .L628 6581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 10973 .loc 1 6581 38 discriminator 1 view .LVU3649 10974 000e 002B cmp r3, #0 10975 0010 06D1 bne .L627 10976 .L628: 6584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10977 .loc 1 6584 5 is_stmt 1 view .LVU3650 6584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10978 .loc 1 6584 9 is_stmt 0 view .LVU3651 10979 0012 0268 ldr r2, [r0] 6584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10980 .loc 1 6584 19 view .LVU3652 10981 0014 1368 ldr r3, [r2] 10982 .LVL807: 6584:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10983 .loc 1 6584 25 view .LVU3653 10984 0016 0349 ldr r1, .L630 10985 0018 0B40 ands r3, r1 10986 001a 1360 str r3, [r2] 6588:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 10987 .loc 1 6588 5 is_stmt 1 view .LVU3654 10988 001c FFF7FEFF bl I2C_ITSlaveSeqCplt 10989 .LVL808: 10990 .L627: 6596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 10991 .loc 1 6596 1 is_stmt 0 view .LVU3655 10992 @ sp needed 10993 0020 10BD pop {r4, pc} 10994 .L631: 10995 0022 C046 .align 2 10996 .L630: 10997 0024 FFBFFFFF .word -16385 10998 .cfi_endproc 10999 .LFE107: 11001 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits 11002 .align 1 11003 .syntax unified 11004 .code 16 11005 .thumb_func 11007 I2C_DMASlaveReceiveCplt: 11008 .LVL809: 11009 .LFB109: 6656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 11010 .loc 1 6656 1 is_stmt 1 view -0 11011 .cfi_startproc 11012 @ args = 0, pretend = 0, frame = 0 11013 @ frame_needed = 0, uses_anonymous_args = 0 6656:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 11014 .loc 1 6656 1 is_stmt 0 view .LVU3657 11015 0000 10B5 push {r4, lr} ARM GAS /tmp/ccuRhBPx.s page 382 11016 .cfi_def_cfa_offset 8 11017 .cfi_offset 4, -8 11018 .cfi_offset 14, -4 6658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11019 .loc 1 6658 3 is_stmt 1 view .LVU3658 6658:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11020 .loc 1 6658 22 is_stmt 0 view .LVU3659 11021 0002 406A ldr r0, [r0, #36] 11022 .LVL810: 6659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11023 .loc 1 6659 3 is_stmt 1 view .LVU3660 6659:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11024 .loc 1 6659 12 is_stmt 0 view .LVU3661 11025 0004 C26A ldr r2, [r0, #44] 11026 .LVL811: 6661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11027 .loc 1 6661 3 is_stmt 1 view .LVU3662 6661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11028 .loc 1 6661 8 is_stmt 0 view .LVU3663 11029 0006 C36B ldr r3, [r0, #60] 11030 0008 1B68 ldr r3, [r3] 11031 000a 5B68 ldr r3, [r3, #4] 6661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11032 .loc 1 6661 6 view .LVU3664 11033 000c 002B cmp r3, #0 11034 000e 02D1 bne .L632 6661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11035 .loc 1 6661 53 discriminator 1 view .LVU3665 11036 0010 054B ldr r3, .L635 11037 0012 9A42 cmp r2, r3 11038 0014 00D1 bne .L634 11039 .LVL812: 11040 .L632: 6676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11041 .loc 1 6676 1 view .LVU3666 11042 @ sp needed 11043 0016 10BD pop {r4, pc} 11044 .LVL813: 11045 .L634: 6665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11046 .loc 1 6665 5 is_stmt 1 view .LVU3667 6665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11047 .loc 1 6665 9 is_stmt 0 view .LVU3668 11048 0018 0268 ldr r2, [r0] 11049 .LVL814: 6665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11050 .loc 1 6665 19 view .LVU3669 11051 001a 1368 ldr r3, [r2] 6665:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11052 .loc 1 6665 25 view .LVU3670 11053 001c 0349 ldr r1, .L635+4 11054 001e 0B40 ands r3, r1 11055 0020 1360 str r3, [r2] 6668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11056 .loc 1 6668 5 is_stmt 1 view .LVU3671 11057 0022 FFF7FEFF bl I2C_ITSlaveSeqCplt 11058 .LVL815: ARM GAS /tmp/ccuRhBPx.s page 383 6675:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11059 .loc 1 6675 3 view .LVU3672 6676:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11060 .loc 1 6676 1 is_stmt 0 view .LVU3673 11061 0026 F6E7 b .L632 11062 .L636: 11063 .align 2 11064 .L635: 11065 0028 0000FFFF .word -65536 11066 002c FF7FFFFF .word -32769 11067 .cfi_endproc 11068 .LFE109: 11070 .section .text.HAL_I2C_AddrCallback,"ax",%progbits 11071 .align 1 11072 .weak HAL_I2C_AddrCallback 11073 .syntax unified 11074 .code 16 11075 .thumb_func 11077 HAL_I2C_AddrCallback: 11078 .LVL816: 11079 .LFB80: 4643:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 11080 .loc 1 4643 1 is_stmt 1 view -0 11081 .cfi_startproc 11082 @ args = 0, pretend = 0, frame = 0 11083 @ frame_needed = 0, uses_anonymous_args = 0 11084 @ link register save eliminated. 4645:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(TransferDirection); 11085 .loc 1 4645 3 view .LVU3675 4646:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(AddrMatchCode); 11086 .loc 1 4646 3 view .LVU3676 4647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11087 .loc 1 4647 3 view .LVU3677 4652:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11088 .loc 1 4652 1 is_stmt 0 view .LVU3678 11089 @ sp needed 11090 0000 7047 bx lr 11091 .cfi_endproc 11092 .LFE80: 11094 .section .text.I2C_ITAddrCplt,"ax",%progbits 11095 .align 1 11096 .syntax unified 11097 .code 16 11098 .thumb_func 11100 I2C_ITAddrCplt: 11101 .LVL817: 11102 .LFB97: 5760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint8_t transferdirection; 11103 .loc 1 5760 1 is_stmt 1 view -0 11104 .cfi_startproc 11105 @ args = 0, pretend = 0, frame = 0 11106 @ frame_needed = 0, uses_anonymous_args = 0 5760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint8_t transferdirection; 11107 .loc 1 5760 1 is_stmt 0 view .LVU3680 11108 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 11109 .cfi_def_cfa_offset 24 11110 .cfi_offset 3, -24 ARM GAS /tmp/ccuRhBPx.s page 384 11111 .cfi_offset 4, -20 11112 .cfi_offset 5, -16 11113 .cfi_offset 6, -12 11114 .cfi_offset 7, -8 11115 .cfi_offset 14, -4 11116 0002 0400 movs r4, r0 5761:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t slaveaddrcode; 11117 .loc 1 5761 3 is_stmt 1 view .LVU3681 5762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t ownadd1code; 11118 .loc 1 5762 3 view .LVU3682 5763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t ownadd2code; 11119 .loc 1 5763 3 view .LVU3683 5764:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11120 .loc 1 5764 3 view .LVU3684 5767:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11121 .loc 1 5767 3 view .LVU3685 5770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11122 .loc 1 5770 3 view .LVU3686 5770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11123 .loc 1 5770 22 is_stmt 0 view .LVU3687 11124 0004 4123 movs r3, #65 11125 0006 C35C ldrb r3, [r0, r3] 5770:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11126 .loc 1 5770 6 view .LVU3688 11127 0008 2822 movs r2, #40 11128 000a 1340 ands r3, r2 11129 000c 282B cmp r3, #40 11130 000e 06D0 beq .L643 5842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11131 .loc 1 5842 5 is_stmt 1 view .LVU3689 11132 0010 0368 ldr r3, [r0] 11133 0012 0822 movs r2, #8 11134 0014 DA61 str r2, [r3, #28] 5845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11135 .loc 1 5845 5 view .LVU3690 5845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11136 .loc 1 5845 5 view .LVU3691 11137 0016 4023 movs r3, #64 11138 0018 0022 movs r2, #0 11139 001a C254 strb r2, [r0, r3] 5845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11140 .loc 1 5845 5 discriminator 1 view .LVU3692 11141 .LVL818: 11142 .L638: 5847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11143 .loc 1 5847 1 is_stmt 0 view .LVU3693 11144 @ sp needed 11145 .LVL819: 5847:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11146 .loc 1 5847 1 view .LVU3694 11147 001c F8BD pop {r3, r4, r5, r6, r7, pc} 11148 .LVL820: 11149 .L643: 5772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 11150 .loc 1 5772 5 is_stmt 1 view .LVU3695 5772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 11151 .loc 1 5772 25 is_stmt 0 view .LVU3696 ARM GAS /tmp/ccuRhBPx.s page 385 11152 001e 0068 ldr r0, [r0] 11153 .LVL821: 5772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 11154 .loc 1 5772 25 view .LVU3697 11155 0020 8569 ldr r5, [r0, #24] 11156 0022 2D0C lsrs r5, r5, #16 5772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 11157 .loc 1 5772 23 view .LVU3698 11158 0024 273B subs r3, r3, #39 11159 0026 1D40 ands r5, r3 11160 .LVL822: 5773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 11161 .loc 1 5773 5 is_stmt 1 view .LVU3699 5773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 11162 .loc 1 5773 25 is_stmt 0 view .LVU3700 11163 0028 8669 ldr r6, [r0, #24] 11164 002a 360C lsrs r6, r6, #16 5773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 11165 .loc 1 5773 23 view .LVU3701 11166 002c FE21 movs r1, #254 11167 .LVL823: 5773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 11168 .loc 1 5773 23 view .LVU3702 11169 002e 0E40 ands r6, r1 11170 .LVL824: 5774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 11171 .loc 1 5774 5 is_stmt 1 view .LVU3703 5774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 11172 .loc 1 5774 25 is_stmt 0 view .LVU3704 11173 0030 8368 ldr r3, [r0, #8] 5774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 11174 .loc 1 5774 23 view .LVU3705 11175 0032 9B05 lsls r3, r3, #22 11176 0034 9B0D lsrs r3, r3, #22 11177 .LVL825: 5775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11178 .loc 1 5775 5 is_stmt 1 view .LVU3706 5775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11179 .loc 1 5775 25 is_stmt 0 view .LVU3707 11180 0036 C768 ldr r7, [r0, #12] 5775:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11181 .loc 1 5775 23 view .LVU3708 11182 0038 0F40 ands r7, r1 11183 .LVL826: 5778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11184 .loc 1 5778 5 is_stmt 1 view .LVU3709 5778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11185 .loc 1 5778 19 is_stmt 0 view .LVU3710 11186 003a E268 ldr r2, [r4, #12] 5778:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11187 .loc 1 5778 8 view .LVU3711 11188 003c 022A cmp r2, #2 11189 003e 24D1 bne .L640 5780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11190 .loc 1 5780 7 is_stmt 1 view .LVU3712 5780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11191 .loc 1 5780 44 is_stmt 0 view .LVU3713 ARM GAS /tmp/ccuRhBPx.s page 386 11192 0040 DA09 lsrs r2, r3, #7 11193 0042 7240 eors r2, r6 5780:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11194 .loc 1 5780 10 view .LVU3714 11195 0044 F839 subs r1, r1, #248 11196 0046 1142 tst r1, r2 11197 0048 11D1 bne .L641 5782:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->AddrEventCount++; 11198 .loc 1 5782 9 is_stmt 1 view .LVU3715 11199 .LVL827: 5783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 11200 .loc 1 5783 9 view .LVU3716 5783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 11201 .loc 1 5783 13 is_stmt 0 view .LVU3717 11202 004a A26C ldr r2, [r4, #72] 5783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 11203 .loc 1 5783 29 view .LVU3718 11204 004c 0132 adds r2, r2, #1 11205 004e A264 str r2, [r4, #72] 5784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11206 .loc 1 5784 9 is_stmt 1 view .LVU3719 5784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11207 .loc 1 5784 17 is_stmt 0 view .LVU3720 11208 0050 A26C ldr r2, [r4, #72] 5784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11209 .loc 1 5784 12 view .LVU3721 11210 0052 022A cmp r2, #2 11211 0054 E2D1 bne .L638 5787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11212 .loc 1 5787 11 is_stmt 1 view .LVU3722 5787:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11213 .loc 1 5787 32 is_stmt 0 view .LVU3723 11214 0056 0022 movs r2, #0 11215 0058 A264 str r2, [r4, #72] 5790:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11216 .loc 1 5790 11 is_stmt 1 view .LVU3724 11217 005a 0231 adds r1, r1, #2 11218 005c C161 str r1, [r0, #28] 5793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11219 .loc 1 5793 11 view .LVU3725 5793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11220 .loc 1 5793 11 view .LVU3726 11221 005e 3831 adds r1, r1, #56 11222 0060 6254 strb r2, [r4, r1] 5793:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11223 .loc 1 5793 11 view .LVU3727 5799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11224 .loc 1 5799 11 view .LVU3728 11225 0062 1A00 movs r2, r3 11226 0064 2900 movs r1, r5 11227 0066 2000 movs r0, r4 11228 0068 FFF7FEFF bl HAL_I2C_AddrCallback 11229 .LVL828: 5799:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11230 .loc 1 5799 11 is_stmt 0 view .LVU3729 11231 006c D6E7 b .L638 11232 .LVL829: ARM GAS /tmp/ccuRhBPx.s page 387 11233 .L641: 5805:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11234 .loc 1 5805 9 is_stmt 1 view .LVU3730 5808:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11235 .loc 1 5808 9 view .LVU3731 11236 006e 8021 movs r1, #128 11237 0070 0902 lsls r1, r1, #8 11238 0072 2000 movs r0, r4 11239 0074 FFF7FEFF bl I2C_Disable_IRQ 11240 .LVL830: 5811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11241 .loc 1 5811 9 view .LVU3732 5811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11242 .loc 1 5811 9 view .LVU3733 11243 0078 4023 movs r3, #64 11244 007a 0022 movs r2, #0 11245 007c E254 strb r2, [r4, r3] 5811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11246 .loc 1 5811 9 view .LVU3734 5817:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11247 .loc 1 5817 9 view .LVU3735 11248 007e 3A00 movs r2, r7 11249 0080 2900 movs r1, r5 11250 0082 2000 movs r0, r4 11251 0084 FFF7FEFF bl HAL_I2C_AddrCallback 11252 .LVL831: 11253 0088 C8E7 b .L638 11254 .LVL832: 11255 .L640: 5825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11256 .loc 1 5825 7 view .LVU3736 11257 008a 8021 movs r1, #128 11258 008c 0902 lsls r1, r1, #8 11259 008e 2000 movs r0, r4 11260 0090 FFF7FEFF bl I2C_Disable_IRQ 11261 .LVL833: 5828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11262 .loc 1 5828 7 view .LVU3737 5828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11263 .loc 1 5828 7 view .LVU3738 11264 0094 4023 movs r3, #64 11265 0096 0022 movs r2, #0 11266 0098 E254 strb r2, [r4, r3] 5828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11267 .loc 1 5828 7 view .LVU3739 5834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11268 .loc 1 5834 7 view .LVU3740 11269 009a 3200 movs r2, r6 11270 009c 2900 movs r1, r5 11271 009e 2000 movs r0, r4 11272 00a0 FFF7FEFF bl HAL_I2C_AddrCallback 11273 .LVL834: 11274 00a4 BAE7 b .L638 11275 .cfi_endproc 11276 .LFE97: 11278 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits 11279 .align 1 ARM GAS /tmp/ccuRhBPx.s page 388 11280 .weak HAL_I2C_ListenCpltCallback 11281 .syntax unified 11282 .code 16 11283 .thumb_func 11285 HAL_I2C_ListenCpltCallback: 11286 .LVL835: 11287 .LFB81: 4661:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 11288 .loc 1 4661 1 view -0 11289 .cfi_startproc 11290 @ args = 0, pretend = 0, frame = 0 11291 @ frame_needed = 0, uses_anonymous_args = 0 11292 @ link register save eliminated. 4663:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11293 .loc 1 4663 3 view .LVU3742 4668:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11294 .loc 1 4668 1 is_stmt 0 view .LVU3743 11295 @ sp needed 11296 0000 7047 bx lr 11297 .cfi_endproc 11298 .LFE81: 11300 .section .text.I2C_ITListenCplt,"ax",%progbits 11301 .align 1 11302 .syntax unified 11303 .code 16 11304 .thumb_func 11306 I2C_ITListenCplt: 11307 .LVL836: 11308 .LFB102: 6284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */ 11309 .loc 1 6284 1 is_stmt 1 view -0 11310 .cfi_startproc 11311 @ args = 0, pretend = 0, frame = 0 11312 @ frame_needed = 0, uses_anonymous_args = 0 6284:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Reset handle parameters */ 11313 .loc 1 6284 1 is_stmt 0 view .LVU3745 11314 0000 10B5 push {r4, lr} 11315 .cfi_def_cfa_offset 8 11316 .cfi_offset 4, -8 11317 .cfi_offset 14, -4 11318 0002 0400 movs r4, r0 6286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11319 .loc 1 6286 3 is_stmt 1 view .LVU3746 6286:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11320 .loc 1 6286 21 is_stmt 0 view .LVU3747 11321 0004 164B ldr r3, .L648 11322 0006 C362 str r3, [r0, #44] 6287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11323 .loc 1 6287 3 is_stmt 1 view .LVU3748 6287:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11324 .loc 1 6287 23 is_stmt 0 view .LVU3749 11325 0008 0023 movs r3, #0 11326 000a 0363 str r3, [r0, #48] 6288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 11327 .loc 1 6288 3 is_stmt 1 view .LVU3750 6288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 11328 .loc 1 6288 15 is_stmt 0 view .LVU3751 ARM GAS /tmp/ccuRhBPx.s page 389 11329 000c 4122 movs r2, #65 11330 000e 2020 movs r0, #32 11331 .LVL837: 6288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 11332 .loc 1 6288 15 view .LVU3752 11333 0010 A054 strb r0, [r4, r2] 6289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 11334 .loc 1 6289 3 is_stmt 1 view .LVU3753 6289:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 11335 .loc 1 6289 14 is_stmt 0 view .LVU3754 11336 0012 0132 adds r2, r2, #1 11337 0014 A354 strb r3, [r4, r2] 6290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11338 .loc 1 6290 3 is_stmt 1 view .LVU3755 6290:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11339 .loc 1 6290 17 is_stmt 0 view .LVU3756 11340 0016 6363 str r3, [r4, #52] 6293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11341 .loc 1 6293 3 is_stmt 1 view .LVU3757 6293:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11342 .loc 1 6293 6 is_stmt 0 view .LVU3758 11343 0018 4907 lsls r1, r1, #29 11344 001a 13D5 bpl .L646 11345 .LVL838: 6296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11346 .loc 1 6296 5 is_stmt 1 view .LVU3759 6296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11347 .loc 1 6296 36 is_stmt 0 view .LVU3760 11348 001c 2368 ldr r3, [r4] 6296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11349 .loc 1 6296 46 view .LVU3761 11350 001e 5A6A ldr r2, [r3, #36] 6296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11351 .loc 1 6296 10 view .LVU3762 11352 0020 636A ldr r3, [r4, #36] 6296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11353 .loc 1 6296 21 view .LVU3763 11354 0022 1A70 strb r2, [r3] 6299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11355 .loc 1 6299 5 is_stmt 1 view .LVU3764 6299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11356 .loc 1 6299 9 is_stmt 0 view .LVU3765 11357 0024 636A ldr r3, [r4, #36] 6299:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11358 .loc 1 6299 19 view .LVU3766 11359 0026 0133 adds r3, r3, #1 11360 0028 6362 str r3, [r4, #36] 6301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11361 .loc 1 6301 5 is_stmt 1 view .LVU3767 6301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11362 .loc 1 6301 14 is_stmt 0 view .LVU3768 11363 002a 238D ldrh r3, [r4, #40] 6301:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11364 .loc 1 6301 8 view .LVU3769 11365 002c 002B cmp r3, #0 11366 002e 09D0 beq .L646 6303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; ARM GAS /tmp/ccuRhBPx.s page 390 11367 .loc 1 6303 7 is_stmt 1 view .LVU3770 6303:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 11368 .loc 1 6303 21 is_stmt 0 view .LVU3771 11369 0030 013B subs r3, r3, #1 11370 0032 2385 strh r3, [r4, #40] 6304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11371 .loc 1 6304 7 is_stmt 1 view .LVU3772 6304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11372 .loc 1 6304 11 is_stmt 0 view .LVU3773 11373 0034 638D ldrh r3, [r4, #42] 6304:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11374 .loc 1 6304 22 view .LVU3774 11375 0036 013B subs r3, r3, #1 11376 0038 9BB2 uxth r3, r3 11377 003a 6385 strh r3, [r4, #42] 6307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11378 .loc 1 6307 7 is_stmt 1 view .LVU3775 6307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11379 .loc 1 6307 11 is_stmt 0 view .LVU3776 11380 003c 636C ldr r3, [r4, #68] 6307:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11381 .loc 1 6307 23 view .LVU3777 11382 003e 0422 movs r2, #4 11383 0040 1343 orrs r3, r2 11384 0042 6364 str r3, [r4, #68] 11385 .L646: 6312:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11386 .loc 1 6312 3 is_stmt 1 view .LVU3778 11387 0044 0749 ldr r1, .L648+4 11388 0046 2000 movs r0, r4 11389 0048 FFF7FEFF bl I2C_Disable_IRQ 11390 .LVL839: 6315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11391 .loc 1 6315 3 view .LVU3779 11392 004c 2368 ldr r3, [r4] 11393 004e 1022 movs r2, #16 11394 0050 DA61 str r2, [r3, #28] 6318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11395 .loc 1 6318 3 view .LVU3780 6318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11396 .loc 1 6318 3 view .LVU3781 11397 0052 4023 movs r3, #64 11398 0054 0022 movs r2, #0 11399 0056 E254 strb r2, [r4, r3] 6318:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11400 .loc 1 6318 3 view .LVU3782 6324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11401 .loc 1 6324 3 view .LVU3783 11402 0058 2000 movs r0, r4 11403 005a FFF7FEFF bl HAL_I2C_ListenCpltCallback 11404 .LVL840: 6326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11405 .loc 1 6326 1 is_stmt 0 view .LVU3784 11406 @ sp needed 11407 .LVL841: 6326:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11408 .loc 1 6326 1 view .LVU3785 ARM GAS /tmp/ccuRhBPx.s page 391 11409 005e 10BD pop {r4, pc} 11410 .L649: 11411 .align 2 11412 .L648: 11413 0060 0000FFFF .word -65536 11414 0064 03800000 .word 32771 11415 .cfi_endproc 11416 .LFE102: 11418 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits 11419 .align 1 11420 .weak HAL_I2C_MemTxCpltCallback 11421 .syntax unified 11422 .code 16 11423 .thumb_func 11425 HAL_I2C_MemTxCpltCallback: 11426 .LVL842: 11427 .LFB82: 4677:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 11428 .loc 1 4677 1 is_stmt 1 view -0 11429 .cfi_startproc 11430 @ args = 0, pretend = 0, frame = 0 11431 @ frame_needed = 0, uses_anonymous_args = 0 11432 @ link register save eliminated. 4679:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11433 .loc 1 4679 3 view .LVU3787 4684:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11434 .loc 1 4684 1 is_stmt 0 view .LVU3788 11435 @ sp needed 11436 0000 7047 bx lr 11437 .cfi_endproc 11438 .LFE82: 11440 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits 11441 .align 1 11442 .weak HAL_I2C_MemRxCpltCallback 11443 .syntax unified 11444 .code 16 11445 .thumb_func 11447 HAL_I2C_MemRxCpltCallback: 11448 .LVL843: 11449 .LFB83: 4693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 11450 .loc 1 4693 1 is_stmt 1 view -0 11451 .cfi_startproc 11452 @ args = 0, pretend = 0, frame = 0 11453 @ frame_needed = 0, uses_anonymous_args = 0 11454 @ link register save eliminated. 4695:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11455 .loc 1 4695 3 view .LVU3790 4700:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11456 .loc 1 4700 1 is_stmt 0 view .LVU3791 11457 @ sp needed 11458 0000 7047 bx lr 11459 .cfi_endproc 11460 .LFE83: 11462 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits 11463 .align 1 11464 .weak HAL_I2C_ErrorCallback ARM GAS /tmp/ccuRhBPx.s page 392 11465 .syntax unified 11466 .code 16 11467 .thumb_func 11469 HAL_I2C_ErrorCallback: 11470 .LVL844: 11471 .LFB84: 4709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 11472 .loc 1 4709 1 is_stmt 1 view -0 11473 .cfi_startproc 11474 @ args = 0, pretend = 0, frame = 0 11475 @ frame_needed = 0, uses_anonymous_args = 0 11476 @ link register save eliminated. 4711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11477 .loc 1 4711 3 view .LVU3793 4716:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11478 .loc 1 4716 1 is_stmt 0 view .LVU3794 11479 @ sp needed 11480 0000 7047 bx lr 11481 .cfi_endproc 11482 .LFE84: 11484 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits 11485 .align 1 11486 .weak HAL_I2C_AbortCpltCallback 11487 .syntax unified 11488 .code 16 11489 .thumb_func 11491 HAL_I2C_AbortCpltCallback: 11492 .LVL845: 11493 .LFB85: 4725:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 11494 .loc 1 4725 1 is_stmt 1 view -0 11495 .cfi_startproc 11496 @ args = 0, pretend = 0, frame = 0 11497 @ frame_needed = 0, uses_anonymous_args = 0 11498 @ link register save eliminated. 4727:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11499 .loc 1 4727 3 view .LVU3796 4732:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11500 .loc 1 4732 1 is_stmt 0 view .LVU3797 11501 @ sp needed 11502 0000 7047 bx lr 11503 .cfi_endproc 11504 .LFE85: 11506 .section .text.I2C_TreatErrorCallback,"ax",%progbits 11507 .align 1 11508 .syntax unified 11509 .code 16 11510 .thumb_func 11512 I2C_TreatErrorCallback: 11513 .LVL846: 11514 .LFB104: 6466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 11515 .loc 1 6466 1 is_stmt 1 view -0 11516 .cfi_startproc 11517 @ args = 0, pretend = 0, frame = 0 11518 @ frame_needed = 0, uses_anonymous_args = 0 6466:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) ARM GAS /tmp/ccuRhBPx.s page 393 11519 .loc 1 6466 1 is_stmt 0 view .LVU3799 11520 0000 10B5 push {r4, lr} 11521 .cfi_def_cfa_offset 8 11522 .cfi_offset 4, -8 11523 .cfi_offset 14, -4 6467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11524 .loc 1 6467 3 is_stmt 1 view .LVU3800 6467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11525 .loc 1 6467 11 is_stmt 0 view .LVU3801 11526 0002 4123 movs r3, #65 11527 0004 C35C ldrb r3, [r0, r3] 6467:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11528 .loc 1 6467 6 view .LVU3802 11529 0006 602B cmp r3, #96 11530 0008 06D0 beq .L657 6484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11531 .loc 1 6484 5 is_stmt 1 view .LVU3803 6484:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11532 .loc 1 6484 25 is_stmt 0 view .LVU3804 11533 000a 0023 movs r3, #0 11534 000c 0363 str r3, [r0, #48] 6487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11535 .loc 1 6487 5 is_stmt 1 view .LVU3805 6487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11536 .loc 1 6487 5 view .LVU3806 11537 000e 4022 movs r2, #64 11538 0010 8354 strb r3, [r0, r2] 6487:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11539 .loc 1 6487 5 view .LVU3807 6493:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11540 .loc 1 6493 5 view .LVU3808 11541 0012 FFF7FEFF bl HAL_I2C_ErrorCallback 11542 .LVL847: 11543 .L654: 6496:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11544 .loc 1 6496 1 is_stmt 0 view .LVU3809 11545 @ sp needed 11546 0016 10BD pop {r4, pc} 11547 .LVL848: 11548 .L657: 6469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11549 .loc 1 6469 5 is_stmt 1 view .LVU3810 6469:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11550 .loc 1 6469 17 is_stmt 0 view .LVU3811 11551 0018 1F3B subs r3, r3, #31 11552 001a 2022 movs r2, #32 11553 001c C254 strb r2, [r0, r3] 6470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11554 .loc 1 6470 5 is_stmt 1 view .LVU3812 6470:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11555 .loc 1 6470 25 is_stmt 0 view .LVU3813 11556 001e 0023 movs r3, #0 11557 0020 0363 str r3, [r0, #48] 6473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11558 .loc 1 6473 5 is_stmt 1 view .LVU3814 6473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11559 .loc 1 6473 5 view .LVU3815 ARM GAS /tmp/ccuRhBPx.s page 394 11560 0022 2032 adds r2, r2, #32 11561 0024 8354 strb r3, [r0, r2] 6473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11562 .loc 1 6473 5 view .LVU3816 6479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11563 .loc 1 6479 5 view .LVU3817 11564 0026 FFF7FEFF bl HAL_I2C_AbortCpltCallback 11565 .LVL849: 6479:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11566 .loc 1 6479 5 is_stmt 0 view .LVU3818 11567 002a F4E7 b .L654 11568 .cfi_endproc 11569 .LFE104: 11571 .section .text.I2C_ITError,"ax",%progbits 11572 .align 1 11573 .syntax unified 11574 .code 16 11575 .thumb_func 11577 I2C_ITError: 11578 .LVL850: 11579 .LFB103: 6335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11580 .loc 1 6335 1 is_stmt 1 view -0 11581 .cfi_startproc 11582 @ args = 0, pretend = 0, frame = 0 11583 @ frame_needed = 0, uses_anonymous_args = 0 6335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11584 .loc 1 6335 1 is_stmt 0 view .LVU3820 11585 0000 10B5 push {r4, lr} 11586 .cfi_def_cfa_offset 8 11587 .cfi_offset 4, -8 11588 .cfi_offset 14, -4 11589 0002 0400 movs r4, r0 6336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11590 .loc 1 6336 3 is_stmt 1 view .LVU3821 6336:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11591 .loc 1 6336 24 is_stmt 0 view .LVU3822 11592 0004 4123 movs r3, #65 11593 0006 C35C ldrb r3, [r0, r3] 11594 .LVL851: 6338:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11595 .loc 1 6338 3 is_stmt 1 view .LVU3823 6341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11596 .loc 1 6341 3 view .LVU3824 6341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11597 .loc 1 6341 23 is_stmt 0 view .LVU3825 11598 0008 0022 movs r2, #0 11599 000a 4220 movs r0, #66 11600 .LVL852: 6341:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11601 .loc 1 6341 23 view .LVU3826 11602 000c 2254 strb r2, [r4, r0] 6342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = 0U; 11603 .loc 1 6342 3 is_stmt 1 view .LVU3827 6342:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount = 0U; 11604 .loc 1 6342 23 is_stmt 0 view .LVU3828 11605 000e 4348 ldr r0, .L675 ARM GAS /tmp/ccuRhBPx.s page 395 11606 0010 E062 str r0, [r4, #44] 6343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11607 .loc 1 6343 3 is_stmt 1 view .LVU3829 6343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11608 .loc 1 6343 23 is_stmt 0 view .LVU3830 11609 0012 6285 strh r2, [r4, #42] 6346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11610 .loc 1 6346 3 is_stmt 1 view .LVU3831 6346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11611 .loc 1 6346 7 is_stmt 0 view .LVU3832 11612 0014 626C ldr r2, [r4, #68] 6346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11613 .loc 1 6346 19 view .LVU3833 11614 0016 0A43 orrs r2, r1 11615 0018 6264 str r2, [r4, #68] 6349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 11616 .loc 1 6349 3 is_stmt 1 view .LVU3834 6350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 11617 .loc 1 6350 50 is_stmt 0 view .LVU3835 11618 001a 283B subs r3, r3, #40 11619 .LVL853: 6350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 11620 .loc 1 6350 50 view .LVU3836 11621 001c DBB2 uxtb r3, r3 11622 .LVL854: 6349:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 11623 .loc 1 6349 6 view .LVU3837 11624 001e 022B cmp r3, #2 11625 0020 1BD8 bhi .L659 6354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11626 .loc 1 6354 5 is_stmt 1 view .LVU3838 11627 0022 0321 movs r1, #3 11628 .LVL855: 6354:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11629 .loc 1 6354 5 is_stmt 0 view .LVU3839 11630 0024 2000 movs r0, r4 11631 0026 FFF7FEFF bl I2C_Disable_IRQ 11632 .LVL856: 6357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 11633 .loc 1 6357 5 is_stmt 1 view .LVU3840 6357:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 11634 .loc 1 6357 25 is_stmt 0 view .LVU3841 11635 002a 4123 movs r3, #65 11636 002c 2822 movs r2, #40 11637 002e E254 strb r2, [r4, r3] 6358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11638 .loc 1 6358 5 is_stmt 1 view .LVU3842 6358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11639 .loc 1 6358 25 is_stmt 0 view .LVU3843 11640 0030 3B4B ldr r3, .L675+4 11641 0032 6363 str r3, [r4, #52] 11642 .L660: 6393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11643 .loc 1 6393 3 is_stmt 1 view .LVU3844 6393:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11644 .loc 1 6393 20 is_stmt 0 view .LVU3845 11645 0034 236B ldr r3, [r4, #48] ARM GAS /tmp/ccuRhBPx.s page 396 11646 .LVL857: 6395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11647 .loc 1 6395 3 is_stmt 1 view .LVU3846 6395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11648 .loc 1 6395 12 is_stmt 0 view .LVU3847 11649 0036 A26B ldr r2, [r4, #56] 6395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11650 .loc 1 6395 6 view .LVU3848 11651 0038 002A cmp r2, #0 11652 003a 03D0 beq .L663 6395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11653 .loc 1 6395 30 discriminator 1 view .LVU3849 11654 003c 112B cmp r3, #17 11655 003e 2DD0 beq .L664 6395:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11656 .loc 1 6395 81 discriminator 2 view .LVU3850 11657 0040 212B cmp r3, #33 11658 0042 2BD0 beq .L664 11659 .L663: 6425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11660 .loc 1 6425 8 is_stmt 1 view .LVU3851 6425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11661 .loc 1 6425 17 is_stmt 0 view .LVU3852 11662 0044 E26B ldr r2, [r4, #60] 6425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11663 .loc 1 6425 11 view .LVU3853 11664 0046 002A cmp r2, #0 11665 0048 03D0 beq .L668 6425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11666 .loc 1 6425 35 discriminator 1 view .LVU3854 11667 004a 122B cmp r3, #18 11668 004c 46D0 beq .L669 6425:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11669 .loc 1 6425 86 discriminator 2 view .LVU3855 11670 004e 222B cmp r3, #34 11671 0050 44D0 beq .L669 11672 .L668: 6456:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11673 .loc 1 6456 5 is_stmt 1 view .LVU3856 11674 0052 2000 movs r0, r4 11675 0054 FFF7FEFF bl I2C_TreatErrorCallback 11676 .LVL858: 11677 .L658: 6458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11678 .loc 1 6458 1 is_stmt 0 view .LVU3857 11679 @ sp needed 11680 .LVL859: 6458:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11681 .loc 1 6458 1 view .LVU3858 11682 0058 10BD pop {r4, pc} 11683 .LVL860: 11684 .L659: 6363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11685 .loc 1 6363 5 is_stmt 1 view .LVU3859 11686 005a 3249 ldr r1, .L675+8 11687 .LVL861: 6363:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 397 11688 .loc 1 6363 5 is_stmt 0 view .LVU3860 11689 005c 2000 movs r0, r4 11690 005e FFF7FEFF bl I2C_Disable_IRQ 11691 .LVL862: 6366:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11692 .loc 1 6366 5 is_stmt 1 view .LVU3861 11693 0062 2000 movs r0, r4 11694 0064 FFF7FEFF bl I2C_Flush_TXDR 11695 .LVL863: 6370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11696 .loc 1 6370 5 view .LVU3862 6370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11697 .loc 1 6370 13 is_stmt 0 view .LVU3863 11698 0068 4123 movs r3, #65 11699 006a E35C ldrb r3, [r4, r3] 6370:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11700 .loc 1 6370 8 view .LVU3864 11701 006c 602B cmp r3, #96 11702 006e 12D0 beq .L661 6373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11703 .loc 1 6373 7 is_stmt 1 view .LVU3865 6373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11704 .loc 1 6373 27 is_stmt 0 view .LVU3866 11705 0070 2023 movs r3, #32 11706 0072 4122 movs r2, #65 11707 0074 A354 strb r3, [r4, r2] 6376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11708 .loc 1 6376 7 is_stmt 1 view .LVU3867 6376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11709 .loc 1 6376 11 is_stmt 0 view .LVU3868 11710 0076 2268 ldr r2, [r4] 11711 0078 9169 ldr r1, [r2, #24] 6376:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11712 .loc 1 6376 10 view .LVU3869 11713 007a 0B42 tst r3, r1 11714 007c 0BD0 beq .L661 6378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11715 .loc 1 6378 9 is_stmt 1 view .LVU3870 6378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11716 .loc 1 6378 13 is_stmt 0 view .LVU3871 11717 007e 9369 ldr r3, [r2, #24] 6378:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11718 .loc 1 6378 12 view .LVU3872 11719 0080 DB06 lsls r3, r3, #27 11720 0082 05D5 bpl .L662 6380:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 11721 .loc 1 6380 11 is_stmt 1 view .LVU3873 11722 0084 1023 movs r3, #16 11723 0086 D361 str r3, [r2, #28] 6381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11724 .loc 1 6381 11 view .LVU3874 6381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11725 .loc 1 6381 15 is_stmt 0 view .LVU3875 11726 0088 636C ldr r3, [r4, #68] 6381:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11727 .loc 1 6381 27 view .LVU3876 11728 008a 0422 movs r2, #4 ARM GAS /tmp/ccuRhBPx.s page 398 11729 008c 1343 orrs r3, r2 11730 008e 6364 str r3, [r4, #68] 11731 .L662: 6385:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11732 .loc 1 6385 9 is_stmt 1 view .LVU3877 11733 0090 2368 ldr r3, [r4] 11734 0092 2022 movs r2, #32 11735 0094 DA61 str r2, [r3, #28] 11736 .L661: 6389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11737 .loc 1 6389 5 view .LVU3878 6389:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11738 .loc 1 6389 25 is_stmt 0 view .LVU3879 11739 0096 0023 movs r3, #0 11740 0098 6363 str r3, [r4, #52] 11741 009a CBE7 b .L660 11742 .LVL864: 11743 .L664: 6398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11744 .loc 1 6398 5 is_stmt 1 view .LVU3880 6398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11745 .loc 1 6398 14 is_stmt 0 view .LVU3881 11746 009c 2268 ldr r2, [r4] 6398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11747 .loc 1 6398 24 view .LVU3882 11748 009e 1368 ldr r3, [r2] 11749 .LVL865: 6398:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11750 .loc 1 6398 8 view .LVU3883 11751 00a0 5B04 lsls r3, r3, #17 11752 00a2 03D5 bpl .L665 6400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11753 .loc 1 6400 7 is_stmt 1 view .LVU3884 6400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11754 .loc 1 6400 21 is_stmt 0 view .LVU3885 11755 00a4 1368 ldr r3, [r2] 6400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11756 .loc 1 6400 27 view .LVU3886 11757 00a6 2049 ldr r1, .L675+12 11758 00a8 0B40 ands r3, r1 11759 00aa 1360 str r3, [r2] 11760 .L665: 6403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11761 .loc 1 6403 5 is_stmt 1 view .LVU3887 6403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11762 .loc 1 6403 9 is_stmt 0 view .LVU3888 11763 00ac A06B ldr r0, [r4, #56] 11764 00ae FFF7FEFF bl HAL_DMA_GetState 11765 .LVL866: 6403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11766 .loc 1 6403 8 discriminator 1 view .LVU3889 11767 00b2 0128 cmp r0, #1 11768 00b4 0ED0 beq .L666 6407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11769 .loc 1 6407 7 is_stmt 1 view .LVU3890 6407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11770 .loc 1 6407 11 is_stmt 0 view .LVU3891 ARM GAS /tmp/ccuRhBPx.s page 399 11771 00b6 A36B ldr r3, [r4, #56] 6407:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11772 .loc 1 6407 39 view .LVU3892 11773 00b8 1C4A ldr r2, .L675+16 11774 00ba 5A63 str r2, [r3, #52] 6410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11775 .loc 1 6410 7 is_stmt 1 view .LVU3893 6410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11776 .loc 1 6410 7 view .LVU3894 11777 00bc 4023 movs r3, #64 11778 00be 0022 movs r2, #0 11779 00c0 E254 strb r2, [r4, r3] 6410:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11780 .loc 1 6410 7 view .LVU3895 6413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11781 .loc 1 6413 7 view .LVU3896 6413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11782 .loc 1 6413 11 is_stmt 0 view .LVU3897 11783 00c2 A06B ldr r0, [r4, #56] 11784 00c4 FFF7FEFF bl HAL_DMA_Abort_IT 11785 .LVL867: 6413:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11786 .loc 1 6413 10 discriminator 1 view .LVU3898 11787 00c8 0028 cmp r0, #0 11788 00ca C5D0 beq .L658 6416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11789 .loc 1 6416 9 is_stmt 1 view .LVU3899 6416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11790 .loc 1 6416 13 is_stmt 0 view .LVU3900 11791 00cc A06B ldr r0, [r4, #56] 6416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11792 .loc 1 6416 21 view .LVU3901 11793 00ce 436B ldr r3, [r0, #52] 6416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11794 .loc 1 6416 9 view .LVU3902 11795 00d0 9847 blx r3 11796 .LVL868: 11797 00d2 C1E7 b .L658 11798 .L666: 6421:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11799 .loc 1 6421 7 is_stmt 1 view .LVU3903 11800 00d4 2000 movs r0, r4 11801 00d6 FFF7FEFF bl I2C_TreatErrorCallback 11802 .LVL869: 11803 00da BDE7 b .L658 11804 .LVL870: 11805 .L669: 6428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11806 .loc 1 6428 5 view .LVU3904 6428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11807 .loc 1 6428 14 is_stmt 0 view .LVU3905 11808 00dc 2368 ldr r3, [r4] 11809 .LVL871: 6428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11810 .loc 1 6428 24 view .LVU3906 11811 00de 1A68 ldr r2, [r3] 6428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 400 11812 .loc 1 6428 8 view .LVU3907 11813 00e0 1204 lsls r2, r2, #16 11814 00e2 03D5 bpl .L670 6430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11815 .loc 1 6430 7 is_stmt 1 view .LVU3908 6430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11816 .loc 1 6430 21 is_stmt 0 view .LVU3909 11817 00e4 1A68 ldr r2, [r3] 6430:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11818 .loc 1 6430 27 view .LVU3910 11819 00e6 1249 ldr r1, .L675+20 11820 00e8 0A40 ands r2, r1 11821 00ea 1A60 str r2, [r3] 11822 .L670: 6433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11823 .loc 1 6433 5 is_stmt 1 view .LVU3911 6433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11824 .loc 1 6433 9 is_stmt 0 view .LVU3912 11825 00ec E06B ldr r0, [r4, #60] 11826 00ee FFF7FEFF bl HAL_DMA_GetState 11827 .LVL872: 6433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11828 .loc 1 6433 8 discriminator 1 view .LVU3913 11829 00f2 0128 cmp r0, #1 11830 00f4 0ED0 beq .L671 6437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11831 .loc 1 6437 7 is_stmt 1 view .LVU3914 6437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11832 .loc 1 6437 11 is_stmt 0 view .LVU3915 11833 00f6 E36B ldr r3, [r4, #60] 6437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11834 .loc 1 6437 39 view .LVU3916 11835 00f8 0C4A ldr r2, .L675+16 11836 00fa 5A63 str r2, [r3, #52] 6440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11837 .loc 1 6440 7 is_stmt 1 view .LVU3917 6440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11838 .loc 1 6440 7 view .LVU3918 11839 00fc 4023 movs r3, #64 11840 00fe 0022 movs r2, #0 11841 0100 E254 strb r2, [r4, r3] 6440:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11842 .loc 1 6440 7 view .LVU3919 6443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11843 .loc 1 6443 7 view .LVU3920 6443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11844 .loc 1 6443 11 is_stmt 0 view .LVU3921 11845 0102 E06B ldr r0, [r4, #60] 11846 0104 FFF7FEFF bl HAL_DMA_Abort_IT 11847 .LVL873: 6443:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11848 .loc 1 6443 10 discriminator 1 view .LVU3922 11849 0108 0028 cmp r0, #0 11850 010a A5D0 beq .L658 6446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11851 .loc 1 6446 9 is_stmt 1 view .LVU3923 6446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 401 11852 .loc 1 6446 13 is_stmt 0 view .LVU3924 11853 010c E06B ldr r0, [r4, #60] 6446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11854 .loc 1 6446 21 view .LVU3925 11855 010e 436B ldr r3, [r0, #52] 6446:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11856 .loc 1 6446 9 view .LVU3926 11857 0110 9847 blx r3 11858 .LVL874: 11859 0112 A1E7 b .L658 11860 .L671: 6451:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11861 .loc 1 6451 7 is_stmt 1 view .LVU3927 11862 0114 2000 movs r0, r4 11863 0116 FFF7FEFF bl I2C_TreatErrorCallback 11864 .LVL875: 11865 011a 9DE7 b .L658 11866 .L676: 11867 .align 2 11868 .L675: 11869 011c 0000FFFF .word -65536 11870 0120 00000000 .word I2C_Slave_ISR_IT 11871 0124 03800000 .word 32771 11872 0128 FFBFFFFF .word -16385 11873 012c 00000000 .word I2C_DMAAbort 11874 0130 FF7FFFFF .word -32769 11875 .cfi_endproc 11876 .LFE103: 11878 .section .text.I2C_ITSlaveCplt,"ax",%progbits 11879 .align 1 11880 .syntax unified 11881 .code 16 11882 .thumb_func 11884 I2C_ITSlaveCplt: 11885 .LVL876: 11886 .LFB101: 6125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11887 .loc 1 6125 1 view -0 11888 .cfi_startproc 11889 @ args = 0, pretend = 0, frame = 0 11890 @ frame_needed = 0, uses_anonymous_args = 0 6125:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11891 .loc 1 6125 1 is_stmt 0 view .LVU3929 11892 0000 70B5 push {r4, r5, r6, lr} 11893 .cfi_def_cfa_offset 16 11894 .cfi_offset 4, -16 11895 .cfi_offset 5, -12 11896 .cfi_offset 6, -8 11897 .cfi_offset 14, -4 11898 0002 0400 movs r4, r0 11899 0004 0D00 movs r5, r1 6126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11900 .loc 1 6126 3 is_stmt 1 view .LVU3930 6126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11901 .loc 1 6126 26 is_stmt 0 view .LVU3931 11902 0006 0268 ldr r2, [r0] 6126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; ARM GAS /tmp/ccuRhBPx.s page 402 11903 .loc 1 6126 12 view .LVU3932 11904 0008 1668 ldr r6, [r2] 11905 .LVL877: 6127:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11906 .loc 1 6127 3 is_stmt 1 view .LVU3933 6128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11907 .loc 1 6128 3 view .LVU3934 6128:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11908 .loc 1 6128 24 is_stmt 0 view .LVU3935 11909 000a 4123 movs r3, #65 11910 000c C35C ldrb r3, [r0, r3] 11911 000e D9B2 uxtb r1, r3 11912 .LVL878: 6131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11913 .loc 1 6131 3 is_stmt 1 view .LVU3936 11914 0010 2020 movs r0, #32 11915 .LVL879: 6131:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11916 .loc 1 6131 3 is_stmt 0 view .LVU3937 11917 0012 D061 str r0, [r2, #28] 6134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11918 .loc 1 6134 3 is_stmt 1 view .LVU3938 6134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11919 .loc 1 6134 6 is_stmt 0 view .LVU3939 11920 0014 212B cmp r3, #33 11921 0016 0CD0 beq .L678 6134:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11922 .loc 1 6134 43 discriminator 1 view .LVU3940 11923 0018 2929 cmp r1, #41 11924 001a 0AD0 beq .L678 6139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11925 .loc 1 6139 8 is_stmt 1 view .LVU3941 6139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11926 .loc 1 6139 11 is_stmt 0 view .LVU3942 11927 001c 2229 cmp r1, #34 11928 001e 01D0 beq .L681 6139:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11929 .loc 1 6139 48 discriminator 1 view .LVU3943 11930 0020 2A29 cmp r1, #42 11931 0022 0CD1 bne .L680 11932 .L681: 6141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 11933 .loc 1 6141 5 is_stmt 1 view .LVU3944 11934 0024 4A49 ldr r1, .L695 11935 .LVL880: 6141:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 11936 .loc 1 6141 5 is_stmt 0 view .LVU3945 11937 0026 2000 movs r0, r4 11938 0028 FFF7FEFF bl I2C_Disable_IRQ 11939 .LVL881: 6142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11940 .loc 1 6142 5 is_stmt 1 view .LVU3946 6142:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11941 .loc 1 6142 25 is_stmt 0 view .LVU3947 11942 002c 2223 movs r3, #34 11943 002e 2363 str r3, [r4, #48] 11944 0030 05E0 b .L680 ARM GAS /tmp/ccuRhBPx.s page 403 11945 .LVL882: 11946 .L678: 6136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 11947 .loc 1 6136 5 is_stmt 1 view .LVU3948 11948 0032 4849 ldr r1, .L695+4 11949 .LVL883: 6136:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 11950 .loc 1 6136 5 is_stmt 0 view .LVU3949 11951 0034 2000 movs r0, r4 11952 0036 FFF7FEFF bl I2C_Disable_IRQ 11953 .LVL884: 6137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11954 .loc 1 6137 5 is_stmt 1 view .LVU3950 6137:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11955 .loc 1 6137 25 is_stmt 0 view .LVU3951 11956 003a 2123 movs r3, #33 11957 003c 2363 str r3, [r4, #48] 11958 .L680: 6150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11959 .loc 1 6150 3 is_stmt 1 view .LVU3952 6150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11960 .loc 1 6150 7 is_stmt 0 view .LVU3953 11961 003e 2268 ldr r2, [r4] 6150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11962 .loc 1 6150 17 view .LVU3954 11963 0040 5168 ldr r1, [r2, #4] 6150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11964 .loc 1 6150 23 view .LVU3955 11965 0042 8023 movs r3, #128 11966 0044 1B02 lsls r3, r3, #8 11967 0046 0B43 orrs r3, r1 11968 0048 5360 str r3, [r2, #4] 6153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11969 .loc 1 6153 3 is_stmt 1 view .LVU3956 11970 004a 2268 ldr r2, [r4] 11971 004c 5368 ldr r3, [r2, #4] 11972 004e 4249 ldr r1, .L695+8 11973 0050 0B40 ands r3, r1 11974 0052 5360 str r3, [r2, #4] 6156:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11975 .loc 1 6156 3 view .LVU3957 11976 0054 2000 movs r0, r4 11977 0056 FFF7FEFF bl I2C_Flush_TXDR 11978 .LVL885: 6159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11979 .loc 1 6159 3 view .LVU3958 6159:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11980 .loc 1 6159 6 is_stmt 0 view .LVU3959 11981 005a 7304 lsls r3, r6, #17 11982 005c 41D5 bpl .L682 6162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11983 .loc 1 6162 5 is_stmt 1 view .LVU3960 6162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11984 .loc 1 6162 9 is_stmt 0 view .LVU3961 11985 005e 2268 ldr r2, [r4] 6162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11986 .loc 1 6162 19 view .LVU3962 ARM GAS /tmp/ccuRhBPx.s page 404 11987 0060 1368 ldr r3, [r2] 6162:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 11988 .loc 1 6162 25 view .LVU3963 11989 0062 3E49 ldr r1, .L695+12 11990 0064 0B40 ands r3, r1 11991 0066 1360 str r3, [r2] 6164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11992 .loc 1 6164 5 is_stmt 1 view .LVU3964 6164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11993 .loc 1 6164 13 is_stmt 0 view .LVU3965 11994 0068 A36B ldr r3, [r4, #56] 6164:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 11995 .loc 1 6164 8 view .LVU3966 11996 006a 002B cmp r3, #0 11997 006c 03D0 beq .L683 6166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11998 .loc 1 6166 7 is_stmt 1 view .LVU3967 6166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 11999 .loc 1 6166 35 is_stmt 0 view .LVU3968 12000 006e 1B68 ldr r3, [r3] 12001 0070 5B68 ldr r3, [r3, #4] 6166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12002 .loc 1 6166 25 view .LVU3969 12003 0072 9BB2 uxth r3, r3 6166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12004 .loc 1 6166 23 view .LVU3970 12005 0074 6385 strh r3, [r4, #42] 12006 .LVL886: 12007 .L683: 6182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12008 .loc 1 6182 3 is_stmt 1 view .LVU3971 6185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12009 .loc 1 6185 3 view .LVU3972 6185:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12010 .loc 1 6185 6 is_stmt 0 view .LVU3973 12011 0076 6B07 lsls r3, r5, #29 12012 0078 11D5 bpl .L684 6188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12013 .loc 1 6188 5 is_stmt 1 view .LVU3974 6188:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12014 .loc 1 6188 16 is_stmt 0 view .LVU3975 12015 007a 0423 movs r3, #4 12016 007c 9D43 bics r5, r3 12017 .LVL887: 6191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12018 .loc 1 6191 5 is_stmt 1 view .LVU3976 6191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12019 .loc 1 6191 36 is_stmt 0 view .LVU3977 12020 007e 2368 ldr r3, [r4] 6191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12021 .loc 1 6191 46 view .LVU3978 12022 0080 5A6A ldr r2, [r3, #36] 6191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12023 .loc 1 6191 10 view .LVU3979 12024 0082 636A ldr r3, [r4, #36] 6191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12025 .loc 1 6191 21 view .LVU3980 ARM GAS /tmp/ccuRhBPx.s page 405 12026 0084 1A70 strb r2, [r3] 6194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12027 .loc 1 6194 5 is_stmt 1 view .LVU3981 6194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12028 .loc 1 6194 9 is_stmt 0 view .LVU3982 12029 0086 636A ldr r3, [r4, #36] 6194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12030 .loc 1 6194 19 view .LVU3983 12031 0088 0133 adds r3, r3, #1 12032 008a 6362 str r3, [r4, #36] 6196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12033 .loc 1 6196 5 is_stmt 1 view .LVU3984 6196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12034 .loc 1 6196 14 is_stmt 0 view .LVU3985 12035 008c 238D ldrh r3, [r4, #40] 6196:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12036 .loc 1 6196 8 view .LVU3986 12037 008e 002B cmp r3, #0 12038 0090 05D0 beq .L684 6198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 12039 .loc 1 6198 7 is_stmt 1 view .LVU3987 6198:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 12040 .loc 1 6198 21 is_stmt 0 view .LVU3988 12041 0092 013B subs r3, r3, #1 12042 0094 2385 strh r3, [r4, #40] 6199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12043 .loc 1 6199 7 is_stmt 1 view .LVU3989 6199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12044 .loc 1 6199 11 is_stmt 0 view .LVU3990 12045 0096 638D ldrh r3, [r4, #42] 6199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12046 .loc 1 6199 22 view .LVU3991 12047 0098 013B subs r3, r3, #1 12048 009a 9BB2 uxth r3, r3 12049 009c 6385 strh r3, [r4, #42] 12050 .L684: 6204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12051 .loc 1 6204 3 is_stmt 1 view .LVU3992 6204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12052 .loc 1 6204 11 is_stmt 0 view .LVU3993 12053 009e 638D ldrh r3, [r4, #42] 12054 00a0 9BB2 uxth r3, r3 6204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12055 .loc 1 6204 6 view .LVU3994 12056 00a2 002B cmp r3, #0 12057 00a4 03D0 beq .L685 6207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12058 .loc 1 6207 5 is_stmt 1 view .LVU3995 6207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12059 .loc 1 6207 9 is_stmt 0 view .LVU3996 12060 00a6 636C ldr r3, [r4, #68] 6207:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12061 .loc 1 6207 21 view .LVU3997 12062 00a8 0422 movs r2, #4 12063 00aa 1343 orrs r3, r2 12064 00ac 6364 str r3, [r4, #68] 12065 .L685: ARM GAS /tmp/ccuRhBPx.s page 406 6210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 12066 .loc 1 6210 3 is_stmt 1 view .LVU3998 6210:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferISR = NULL; 12067 .loc 1 6210 14 is_stmt 0 view .LVU3999 12068 00ae 0023 movs r3, #0 12069 00b0 4222 movs r2, #66 12070 00b2 A354 strb r3, [r4, r2] 6211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12071 .loc 1 6211 3 is_stmt 1 view .LVU4000 6211:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12072 .loc 1 6211 17 is_stmt 0 view .LVU4001 12073 00b4 6363 str r3, [r4, #52] 6213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12074 .loc 1 6213 3 is_stmt 1 view .LVU4002 6213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12075 .loc 1 6213 11 is_stmt 0 view .LVU4003 12076 00b6 636C ldr r3, [r4, #68] 6213:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12077 .loc 1 6213 6 view .LVU4004 12078 00b8 002B cmp r3, #0 12079 00ba 21D1 bne .L692 6225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12080 .loc 1 6225 8 is_stmt 1 view .LVU4005 6225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12081 .loc 1 6225 16 is_stmt 0 view .LVU4006 12082 00bc E26A ldr r2, [r4, #44] 6225:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12083 .loc 1 6225 11 view .LVU4007 12084 00be 284B ldr r3, .L695+16 12085 00c0 9A42 cmp r2, r3 12086 00c2 2AD1 bne .L693 6245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12087 .loc 1 6245 8 is_stmt 1 view .LVU4008 6245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12088 .loc 1 6245 16 is_stmt 0 view .LVU4009 12089 00c4 4123 movs r3, #65 12090 00c6 E35C ldrb r3, [r4, r3] 6245:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12091 .loc 1 6245 11 view .LVU4010 12092 00c8 222B cmp r3, #34 12093 00ca 36D0 beq .L694 6262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12094 .loc 1 6262 5 is_stmt 1 view .LVU4011 6262:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12095 .loc 1 6262 17 is_stmt 0 view .LVU4012 12096 00cc 4123 movs r3, #65 12097 00ce 2022 movs r2, #32 12098 00d0 E254 strb r2, [r4, r3] 6263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12099 .loc 1 6263 5 is_stmt 1 view .LVU4013 6263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12100 .loc 1 6263 25 is_stmt 0 view .LVU4014 12101 00d2 0023 movs r3, #0 12102 00d4 2363 str r3, [r4, #48] 6266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12103 .loc 1 6266 5 is_stmt 1 view .LVU4015 6266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 407 12104 .loc 1 6266 5 view .LVU4016 12105 00d6 2032 adds r2, r2, #32 12106 00d8 A354 strb r3, [r4, r2] 6266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12107 .loc 1 6266 5 view .LVU4017 6272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12108 .loc 1 6272 5 view .LVU4018 12109 00da 2000 movs r0, r4 12110 00dc FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 12111 .LVL888: 6275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12112 .loc 1 6275 1 is_stmt 0 view .LVU4019 12113 00e0 2AE0 b .L677 12114 .LVL889: 12115 .L682: 6169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12116 .loc 1 6169 8 is_stmt 1 view .LVU4020 6169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12117 .loc 1 6169 11 is_stmt 0 view .LVU4021 12118 00e2 3604 lsls r6, r6, #16 12119 00e4 C7D5 bpl .L683 12120 .LVL890: 6172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12121 .loc 1 6172 5 is_stmt 1 view .LVU4022 6172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12122 .loc 1 6172 9 is_stmt 0 view .LVU4023 12123 00e6 2268 ldr r2, [r4] 6172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12124 .loc 1 6172 19 view .LVU4024 12125 00e8 1368 ldr r3, [r2] 6172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12126 .loc 1 6172 25 view .LVU4025 12127 00ea 1E49 ldr r1, .L695+20 12128 00ec 0B40 ands r3, r1 12129 00ee 1360 str r3, [r2] 6174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12130 .loc 1 6174 5 is_stmt 1 view .LVU4026 6174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12131 .loc 1 6174 13 is_stmt 0 view .LVU4027 12132 00f0 E36B ldr r3, [r4, #60] 6174:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12133 .loc 1 6174 8 view .LVU4028 12134 00f2 002B cmp r3, #0 12135 00f4 BFD0 beq .L683 6176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12136 .loc 1 6176 7 is_stmt 1 view .LVU4029 6176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12137 .loc 1 6176 35 is_stmt 0 view .LVU4030 12138 00f6 1B68 ldr r3, [r3] 12139 00f8 5B68 ldr r3, [r3, #4] 6176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12140 .loc 1 6176 25 view .LVU4031 12141 00fa 9BB2 uxth r3, r3 6176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12142 .loc 1 6176 23 view .LVU4032 12143 00fc 6385 strh r3, [r4, #42] 12144 00fe BAE7 b .L683 ARM GAS /tmp/ccuRhBPx.s page 408 12145 .LVL891: 12146 .L692: 6216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12147 .loc 1 6216 5 is_stmt 1 view .LVU4033 6216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12148 .loc 1 6216 27 is_stmt 0 view .LVU4034 12149 0100 616C ldr r1, [r4, #68] 6216:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12150 .loc 1 6216 5 view .LVU4035 12151 0102 2000 movs r0, r4 12152 0104 FFF7FEFF bl I2C_ITError 12153 .LVL892: 6219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12154 .loc 1 6219 5 is_stmt 1 view .LVU4036 6219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12155 .loc 1 6219 13 is_stmt 0 view .LVU4037 12156 0108 4123 movs r3, #65 12157 010a E35C ldrb r3, [r4, r3] 6219:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12158 .loc 1 6219 8 view .LVU4038 12159 010c 282B cmp r3, #40 12160 010e 13D1 bne .L677 6222:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12161 .loc 1 6222 7 is_stmt 1 view .LVU4039 12162 0110 2900 movs r1, r5 12163 0112 2000 movs r0, r4 12164 0114 FFF7FEFF bl I2C_ITListenCplt 12165 .LVL893: 12166 0118 0EE0 b .L677 12167 .L693: 6228:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12168 .loc 1 6228 5 view .LVU4040 12169 011a 2000 movs r0, r4 12170 011c FFF7FEFF bl I2C_ITSlaveSeqCplt 12171 .LVL894: 6230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 12172 .loc 1 6230 5 view .LVU4041 6230:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 12173 .loc 1 6230 23 is_stmt 0 view .LVU4042 12174 0120 0F4B ldr r3, .L695+16 12175 0122 E362 str r3, [r4, #44] 6231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12176 .loc 1 6231 5 is_stmt 1 view .LVU4043 6231:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12177 .loc 1 6231 17 is_stmt 0 view .LVU4044 12178 0124 4123 movs r3, #65 12179 0126 2022 movs r2, #32 12180 0128 E254 strb r2, [r4, r3] 6232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12181 .loc 1 6232 5 is_stmt 1 view .LVU4045 6232:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12182 .loc 1 6232 25 is_stmt 0 view .LVU4046 12183 012a 0023 movs r3, #0 12184 012c 2363 str r3, [r4, #48] 6235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12185 .loc 1 6235 5 is_stmt 1 view .LVU4047 6235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 409 12186 .loc 1 6235 5 view .LVU4048 12187 012e 2032 adds r2, r2, #32 12188 0130 A354 strb r3, [r4, r2] 6235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12189 .loc 1 6235 5 view .LVU4049 6241:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12190 .loc 1 6241 5 view .LVU4050 12191 0132 2000 movs r0, r4 12192 0134 FFF7FEFF bl HAL_I2C_ListenCpltCallback 12193 .LVL895: 12194 .L677: 6275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12195 .loc 1 6275 1 is_stmt 0 view .LVU4051 12196 @ sp needed 12197 .LVL896: 12198 .LVL897: 6275:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12199 .loc 1 6275 1 view .LVU4052 12200 0138 70BD pop {r4, r5, r6, pc} 12201 .LVL898: 12202 .L694: 6247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12203 .loc 1 6247 5 is_stmt 1 view .LVU4053 6247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12204 .loc 1 6247 17 is_stmt 0 view .LVU4054 12205 013a 1F33 adds r3, r3, #31 12206 013c 2022 movs r2, #32 12207 013e E254 strb r2, [r4, r3] 6248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12208 .loc 1 6248 5 is_stmt 1 view .LVU4055 6248:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12209 .loc 1 6248 25 is_stmt 0 view .LVU4056 12210 0140 0023 movs r3, #0 12211 0142 2363 str r3, [r4, #48] 6251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12212 .loc 1 6251 5 is_stmt 1 view .LVU4057 6251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12213 .loc 1 6251 5 view .LVU4058 12214 0144 2032 adds r2, r2, #32 12215 0146 A354 strb r3, [r4, r2] 6251:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12216 .loc 1 6251 5 view .LVU4059 6257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12217 .loc 1 6257 5 view .LVU4060 12218 0148 2000 movs r0, r4 12219 014a FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 12220 .LVL899: 12221 014e F3E7 b .L677 12222 .L696: 12223 .align 2 12224 .L695: 12225 0150 02800000 .word 32770 12226 0154 01800000 .word 32769 12227 0158 00E800FE .word -33495040 12228 015c FFBFFFFF .word -16385 12229 0160 0000FFFF .word -65536 12230 0164 FF7FFFFF .word -32769 ARM GAS /tmp/ccuRhBPx.s page 410 12231 .cfi_endproc 12232 .LFE101: 12234 .section .text.I2C_Slave_ISR_IT,"ax",%progbits 12235 .align 1 12236 .syntax unified 12237 .code 16 12238 .thumb_func 12240 I2C_Slave_ISR_IT: 12241 .LVL900: 12242 .LFB91: 5092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 12243 .loc 1 5092 1 view -0 12244 .cfi_startproc 12245 @ args = 0, pretend = 0, frame = 0 12246 @ frame_needed = 0, uses_anonymous_args = 0 5092:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 12247 .loc 1 5092 1 is_stmt 0 view .LVU4062 12248 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 12249 .cfi_def_cfa_offset 24 12250 .cfi_offset 3, -24 12251 .cfi_offset 4, -20 12252 .cfi_offset 5, -16 12253 .cfi_offset 6, -12 12254 .cfi_offset 7, -8 12255 .cfi_offset 14, -4 12256 0002 0400 movs r4, r0 12257 0004 0D00 movs r5, r1 12258 0006 1600 movs r6, r2 5093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12259 .loc 1 5093 3 is_stmt 1 view .LVU4063 5093:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12260 .loc 1 5093 12 is_stmt 0 view .LVU4064 12261 0008 C76A ldr r7, [r0, #44] 12262 .LVL901: 5094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12263 .loc 1 5094 3 is_stmt 1 view .LVU4065 5097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12264 .loc 1 5097 3 view .LVU4066 5097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12265 .loc 1 5097 3 view .LVU4067 12266 000a 4023 movs r3, #64 12267 000c C35C ldrb r3, [r0, r3] 12268 000e 012B cmp r3, #1 12269 0010 00D1 bne .LCB11390 12270 0012 96E0 b .L711 @long jump 12271 .LCB11390: 5097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12272 .loc 1 5097 3 discriminator 2 view .LVU4068 12273 0014 0123 movs r3, #1 12274 0016 4022 movs r2, #64 12275 .LVL902: 5097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12276 .loc 1 5097 3 is_stmt 0 discriminator 2 view .LVU4069 12277 0018 8354 strb r3, [r0, r2] 5097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12278 .loc 1 5097 3 is_stmt 1 discriminator 2 view .LVU4070 5100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) ARM GAS /tmp/ccuRhBPx.s page 411 12279 .loc 1 5100 3 view .LVU4071 5100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12280 .loc 1 5100 8 is_stmt 0 view .LVU4072 12281 001a 4A09 lsrs r2, r1, #5 5100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12282 .loc 1 5100 6 view .LVU4073 12283 001c 1342 tst r3, r2 12284 001e 01D0 beq .L699 5100:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12285 .loc 1 5100 61 discriminator 1 view .LVU4074 12286 0020 B306 lsls r3, r6, #26 12287 0022 17D4 bmi .L721 12288 .LVL903: 12289 .L699: 5107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12290 .loc 1 5107 3 is_stmt 1 view .LVU4075 5107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12291 .loc 1 5107 6 is_stmt 0 view .LVU4076 12292 0024 EB06 lsls r3, r5, #27 12293 0026 40D5 bpl .L700 5107:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12294 .loc 1 5107 58 discriminator 1 view .LVU4077 12295 0028 F306 lsls r3, r6, #27 12296 002a 3ED5 bpl .L700 5114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12297 .loc 1 5114 5 is_stmt 1 view .LVU4078 5114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12298 .loc 1 5114 13 is_stmt 0 view .LVU4079 12299 002c 638D ldrh r3, [r4, #42] 12300 002e 9BB2 uxth r3, r3 5114:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12301 .loc 1 5114 8 view .LVU4080 12302 0030 002B cmp r3, #0 12303 0032 28D1 bne .L701 5116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 12304 .loc 1 5116 7 is_stmt 1 view .LVU4081 5116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 12305 .loc 1 5116 16 is_stmt 0 view .LVU4082 12306 0034 4133 adds r3, r3, #65 12307 0036 E35C ldrb r3, [r4, r3] 5116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 12308 .loc 1 5116 10 view .LVU4083 12309 0038 282B cmp r3, #40 12310 003a 0ED0 beq .L722 12311 .L702: 5123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12312 .loc 1 5123 12 is_stmt 1 view .LVU4084 5123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12313 .loc 1 5123 21 is_stmt 0 view .LVU4085 12314 003c 4123 movs r3, #65 12315 003e E35C ldrb r3, [r4, r3] 5123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12316 .loc 1 5123 15 view .LVU4086 12317 0040 292B cmp r3, #41 12318 0042 13D0 beq .L723 12319 .L704: 5138:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 412 12320 .loc 1 5138 9 is_stmt 1 view .LVU4087 12321 0044 2368 ldr r3, [r4] 12322 0046 1022 movs r2, #16 12323 0048 DA61 str r2, [r3, #28] 12324 .LVL904: 12325 .L703: 5215:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12326 .loc 1 5215 3 view .LVU4088 5218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12327 .loc 1 5218 3 view .LVU4089 5218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12328 .loc 1 5218 3 view .LVU4090 12329 004a 4023 movs r3, #64 12330 004c 0022 movs r2, #0 12331 004e E254 strb r2, [r4, r3] 5218:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12332 .loc 1 5218 3 view .LVU4091 5220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12333 .loc 1 5220 3 view .LVU4092 5220:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12334 .loc 1 5220 10 is_stmt 0 view .LVU4093 12335 0050 0020 movs r0, #0 12336 .L698: 5221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12337 .loc 1 5221 1 view .LVU4094 12338 @ sp needed 12339 .LVL905: 12340 .LVL906: 5221:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12341 .loc 1 5221 1 view .LVU4095 12342 0052 F8BD pop {r3, r4, r5, r6, r7, pc} 12343 .LVL907: 12344 .L721: 5104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12345 .loc 1 5104 5 is_stmt 1 view .LVU4096 12346 0054 FFF7FEFF bl I2C_ITSlaveCplt 12347 .LVL908: 5104:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12348 .loc 1 5104 5 is_stmt 0 view .LVU4097 12349 0058 E4E7 b .L699 12350 .L722: 5116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 12351 .loc 1 5116 49 discriminator 1 view .LVU4098 12352 005a 8023 movs r3, #128 12353 005c 9B04 lsls r3, r3, #18 12354 005e 9F42 cmp r7, r3 12355 0060 ECD1 bne .L702 5121:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12356 .loc 1 5121 9 is_stmt 1 view .LVU4099 12357 0062 2900 movs r1, r5 12358 0064 2000 movs r0, r4 12359 0066 FFF7FEFF bl I2C_ITListenCplt 12360 .LVL909: 12361 006a EEE7 b .L703 12362 .L723: 5123:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12363 .loc 1 5123 62 is_stmt 0 discriminator 1 view .LVU4100 ARM GAS /tmp/ccuRhBPx.s page 413 12364 006c 364B ldr r3, .L725 12365 006e 9F42 cmp r7, r3 12366 0070 E8D0 beq .L704 5126:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12367 .loc 1 5126 9 is_stmt 1 view .LVU4101 12368 0072 2368 ldr r3, [r4] 12369 0074 1022 movs r2, #16 12370 0076 DA61 str r2, [r3, #28] 5129:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12371 .loc 1 5129 9 view .LVU4102 12372 0078 2000 movs r0, r4 12373 007a FFF7FEFF bl I2C_Flush_TXDR 12374 .LVL910: 5133:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12375 .loc 1 5133 9 view .LVU4103 12376 007e 2000 movs r0, r4 12377 0080 FFF7FEFF bl I2C_ITSlaveSeqCplt 12378 .LVL911: 12379 0084 E1E7 b .L703 12380 .L701: 5145:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12381 .loc 1 5145 7 view .LVU4104 12382 0086 2368 ldr r3, [r4] 12383 0088 1022 movs r2, #16 12384 008a DA61 str r2, [r3, #28] 5148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12385 .loc 1 5148 7 view .LVU4105 5148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12386 .loc 1 5148 11 is_stmt 0 view .LVU4106 12387 008c 636C ldr r3, [r4, #68] 5148:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12388 .loc 1 5148 23 view .LVU4107 12389 008e 0C3A subs r2, r2, #12 12390 0090 1343 orrs r3, r2 12391 0092 6364 str r3, [r4, #68] 5150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12392 .loc 1 5150 7 is_stmt 1 view .LVU4108 5150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12393 .loc 1 5150 10 is_stmt 0 view .LVU4109 12394 0094 002F cmp r7, #0 12395 0096 03D0 beq .L705 5150:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12396 .loc 1 5150 43 discriminator 1 view .LVU4110 12397 0098 8023 movs r3, #128 12398 009a 5B04 lsls r3, r3, #17 12399 009c 9F42 cmp r7, r3 12400 009e D4D1 bne .L703 12401 .L705: 5153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12402 .loc 1 5153 9 is_stmt 1 view .LVU4111 5153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12403 .loc 1 5153 31 is_stmt 0 view .LVU4112 12404 00a0 616C ldr r1, [r4, #68] 5153:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12405 .loc 1 5153 9 view .LVU4113 12406 00a2 2000 movs r0, r4 12407 00a4 FFF7FEFF bl I2C_ITError ARM GAS /tmp/ccuRhBPx.s page 414 12408 .LVL912: 12409 00a8 CFE7 b .L703 12410 .L700: 5157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12411 .loc 1 5157 8 is_stmt 1 view .LVU4114 5157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12412 .loc 1 5157 11 is_stmt 0 view .LVU4115 12413 00aa 6B07 lsls r3, r5, #29 12414 00ac 1ED5 bpl .L706 5157:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12415 .loc 1 5157 65 discriminator 1 view .LVU4116 12416 00ae 7307 lsls r3, r6, #29 12417 00b0 1CD5 bpl .L706 5160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12418 .loc 1 5160 5 is_stmt 1 view .LVU4117 5160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12419 .loc 1 5160 13 is_stmt 0 view .LVU4118 12420 00b2 638D ldrh r3, [r4, #42] 12421 00b4 9BB2 uxth r3, r3 5160:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12422 .loc 1 5160 8 view .LVU4119 12423 00b6 002B cmp r3, #0 12424 00b8 0DD0 beq .L707 5163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12425 .loc 1 5163 7 is_stmt 1 view .LVU4120 5163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12426 .loc 1 5163 38 is_stmt 0 view .LVU4121 12427 00ba 2368 ldr r3, [r4] 5163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12428 .loc 1 5163 48 view .LVU4122 12429 00bc 5A6A ldr r2, [r3, #36] 5163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12430 .loc 1 5163 12 view .LVU4123 12431 00be 636A ldr r3, [r4, #36] 5163:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12432 .loc 1 5163 23 view .LVU4124 12433 00c0 1A70 strb r2, [r3] 5166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12434 .loc 1 5166 7 is_stmt 1 view .LVU4125 5166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12435 .loc 1 5166 11 is_stmt 0 view .LVU4126 12436 00c2 636A ldr r3, [r4, #36] 5166:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12437 .loc 1 5166 21 view .LVU4127 12438 00c4 0133 adds r3, r3, #1 12439 00c6 6362 str r3, [r4, #36] 5168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 12440 .loc 1 5168 7 is_stmt 1 view .LVU4128 5168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 12441 .loc 1 5168 11 is_stmt 0 view .LVU4129 12442 00c8 238D ldrh r3, [r4, #40] 5168:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 12443 .loc 1 5168 21 view .LVU4130 12444 00ca 013B subs r3, r3, #1 12445 00cc 2385 strh r3, [r4, #40] 5169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12446 .loc 1 5169 7 is_stmt 1 view .LVU4131 ARM GAS /tmp/ccuRhBPx.s page 415 5169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12447 .loc 1 5169 11 is_stmt 0 view .LVU4132 12448 00ce 638D ldrh r3, [r4, #42] 5169:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12449 .loc 1 5169 22 view .LVU4133 12450 00d0 013B subs r3, r3, #1 12451 00d2 9BB2 uxth r3, r3 12452 00d4 6385 strh r3, [r4, #42] 12453 .L707: 5172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 12454 .loc 1 5172 5 is_stmt 1 view .LVU4134 5172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 12455 .loc 1 5172 14 is_stmt 0 view .LVU4135 12456 00d6 638D ldrh r3, [r4, #42] 12457 00d8 9BB2 uxth r3, r3 5172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 12458 .loc 1 5172 8 view .LVU4136 12459 00da 002B cmp r3, #0 12460 00dc B5D1 bne .L703 5172:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 12461 .loc 1 5172 33 discriminator 1 view .LVU4137 12462 00de 1A4B ldr r3, .L725 12463 00e0 9F42 cmp r7, r3 12464 00e2 B2D0 beq .L703 5176:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12465 .loc 1 5176 7 is_stmt 1 view .LVU4138 12466 00e4 2000 movs r0, r4 12467 00e6 FFF7FEFF bl I2C_ITSlaveSeqCplt 12468 .LVL913: 12469 00ea AEE7 b .L703 12470 .L706: 5179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 12471 .loc 1 5179 8 view .LVU4139 5179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 12472 .loc 1 5179 11 is_stmt 0 view .LVU4140 12473 00ec 2B07 lsls r3, r5, #28 12474 00ee 01D5 bpl .L708 5179:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 12475 .loc 1 5179 65 discriminator 1 view .LVU4141 12476 00f0 3307 lsls r3, r6, #28 12477 00f2 16D4 bmi .L724 12478 .L708: 5184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12479 .loc 1 5184 8 is_stmt 1 view .LVU4142 5184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12480 .loc 1 5184 11 is_stmt 0 view .LVU4143 12481 00f4 AD07 lsls r5, r5, #30 12482 00f6 A8D5 bpl .L703 12483 .LVL914: 5184:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12484 .loc 1 5184 65 discriminator 1 view .LVU4144 12485 00f8 B607 lsls r6, r6, #30 12486 00fa A6D5 bpl .L703 12487 .LVL915: 5191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12488 .loc 1 5191 5 is_stmt 1 view .LVU4145 5191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 416 12489 .loc 1 5191 13 is_stmt 0 view .LVU4146 12490 00fc 638D ldrh r3, [r4, #42] 12491 00fe 9BB2 uxth r3, r3 5191:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12492 .loc 1 5191 8 view .LVU4147 12493 0100 002B cmp r3, #0 12494 0102 13D0 beq .L709 5194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12495 .loc 1 5194 7 is_stmt 1 view .LVU4148 5194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12496 .loc 1 5194 35 is_stmt 0 view .LVU4149 12497 0104 626A ldr r2, [r4, #36] 5194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12498 .loc 1 5194 11 view .LVU4150 12499 0106 2368 ldr r3, [r4] 5194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12500 .loc 1 5194 30 view .LVU4151 12501 0108 1278 ldrb r2, [r2] 5194:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12502 .loc 1 5194 28 view .LVU4152 12503 010a 9A62 str r2, [r3, #40] 5197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12504 .loc 1 5197 7 is_stmt 1 view .LVU4153 5197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12505 .loc 1 5197 11 is_stmt 0 view .LVU4154 12506 010c 636A ldr r3, [r4, #36] 5197:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12507 .loc 1 5197 21 view .LVU4155 12508 010e 0133 adds r3, r3, #1 12509 0110 6362 str r3, [r4, #36] 5199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 12510 .loc 1 5199 7 is_stmt 1 view .LVU4156 5199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 12511 .loc 1 5199 11 is_stmt 0 view .LVU4157 12512 0112 638D ldrh r3, [r4, #42] 5199:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize--; 12513 .loc 1 5199 22 view .LVU4158 12514 0114 013B subs r3, r3, #1 12515 0116 9BB2 uxth r3, r3 12516 0118 6385 strh r3, [r4, #42] 5200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12517 .loc 1 5200 7 is_stmt 1 view .LVU4159 5200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12518 .loc 1 5200 11 is_stmt 0 view .LVU4160 12519 011a 238D ldrh r3, [r4, #40] 5200:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12520 .loc 1 5200 21 view .LVU4161 12521 011c 013B subs r3, r3, #1 12522 011e 2385 strh r3, [r4, #40] 12523 0120 93E7 b .L703 12524 .LVL916: 12525 .L724: 5182:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12526 .loc 1 5182 5 is_stmt 1 view .LVU4162 12527 0122 2900 movs r1, r5 12528 0124 2000 movs r0, r4 12529 0126 FFF7FEFF bl I2C_ITAddrCplt ARM GAS /tmp/ccuRhBPx.s page 417 12530 .LVL917: 12531 012a 8EE7 b .L703 12532 .LVL918: 12533 .L709: 5204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12534 .loc 1 5204 7 view .LVU4163 5204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12535 .loc 1 5204 10 is_stmt 0 view .LVU4164 12536 012c 8023 movs r3, #128 12537 012e 5B04 lsls r3, r3, #17 12538 0130 9F42 cmp r7, r3 12539 0132 02D0 beq .L710 5204:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12540 .loc 1 5204 42 discriminator 1 view .LVU4165 12541 0134 002F cmp r7, #0 12542 0136 00D0 beq .LCB11680 12543 0138 87E7 b .L703 @long jump 12544 .LCB11680: 12545 .L710: 5208:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12546 .loc 1 5208 9 is_stmt 1 view .LVU4166 12547 013a 2000 movs r0, r4 12548 013c FFF7FEFF bl I2C_ITSlaveSeqCplt 12549 .LVL919: 12550 0140 83E7 b .L703 12551 .LVL920: 12552 .L711: 5097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12553 .loc 1 5097 3 is_stmt 0 discriminator 1 view .LVU4167 12554 0142 0220 movs r0, #2 12555 .LVL921: 5097:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12556 .loc 1 5097 3 discriminator 1 view .LVU4168 12557 0144 85E7 b .L698 12558 .L726: 12559 0146 C046 .align 2 12560 .L725: 12561 0148 0000FFFF .word -65536 12562 .cfi_endproc 12563 .LFE91: 12565 .section .text.I2C_ITMasterCplt,"ax",%progbits 12566 .align 1 12567 .syntax unified 12568 .code 16 12569 .thumb_func 12571 I2C_ITMasterCplt: 12572 .LVL922: 12573 .LFB100: 5982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; 12574 .loc 1 5982 1 is_stmt 1 view -0 12575 .cfi_startproc 12576 @ args = 0, pretend = 0, frame = 8 12577 @ frame_needed = 0, uses_anonymous_args = 0 5982:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; 12578 .loc 1 5982 1 is_stmt 0 view .LVU4170 12579 0000 30B5 push {r4, r5, lr} 12580 .cfi_def_cfa_offset 12 ARM GAS /tmp/ccuRhBPx.s page 418 12581 .cfi_offset 4, -12 12582 .cfi_offset 5, -8 12583 .cfi_offset 14, -4 12584 0002 83B0 sub sp, sp, #12 12585 .cfi_def_cfa_offset 24 12586 0004 0400 movs r4, r0 12587 0006 0D00 movs r5, r1 5983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12588 .loc 1 5983 3 is_stmt 1 view .LVU4171 5984:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** __IO uint32_t tmpreg; 12589 .loc 1 5984 3 view .LVU4172 12590 .LVL923: 5985:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12591 .loc 1 5985 3 view .LVU4173 5988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12592 .loc 1 5988 3 view .LVU4174 12593 0008 0368 ldr r3, [r0] 12594 000a 2022 movs r2, #32 12595 000c DA61 str r2, [r3, #28] 5991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12596 .loc 1 5991 3 view .LVU4175 5991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12597 .loc 1 5991 11 is_stmt 0 view .LVU4176 12598 000e 4123 movs r3, #65 12599 0010 C35C ldrb r3, [r0, r3] 5991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12600 .loc 1 5991 6 view .LVU4177 12601 0012 212B cmp r3, #33 12602 0014 29D0 beq .L740 5996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12603 .loc 1 5996 8 is_stmt 1 view .LVU4178 5996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12604 .loc 1 5996 16 is_stmt 0 view .LVU4179 12605 0016 4123 movs r3, #65 12606 0018 C35C ldrb r3, [r0, r3] 5996:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12607 .loc 1 5996 11 view .LVU4180 12608 001a 222B cmp r3, #34 12609 001c 2BD0 beq .L741 12610 .LVL924: 12611 .L729: 6004:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12612 .loc 1 6004 3 is_stmt 1 view .LVU4181 6007:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12613 .loc 1 6007 3 view .LVU4182 12614 001e 2268 ldr r2, [r4] 12615 0020 5368 ldr r3, [r2, #4] 12616 0022 3B49 ldr r1, .L746 12617 0024 0B40 ands r3, r1 12618 0026 5360 str r3, [r2, #4] 6010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 12619 .loc 1 6010 3 view .LVU4183 6010:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 12620 .loc 1 6010 23 is_stmt 0 view .LVU4184 12621 0028 0023 movs r3, #0 12622 002a 6363 str r3, [r4, #52] 6011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 419 12623 .loc 1 6011 3 is_stmt 1 view .LVU4185 6011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12624 .loc 1 6011 23 is_stmt 0 view .LVU4186 12625 002c 394B ldr r3, .L746+4 12626 002e E362 str r3, [r4, #44] 6013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12627 .loc 1 6013 3 is_stmt 1 view .LVU4187 6013:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12628 .loc 1 6013 6 is_stmt 0 view .LVU4188 12629 0030 EB06 lsls r3, r5, #27 12630 0032 06D5 bpl .L730 6016:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12631 .loc 1 6016 5 is_stmt 1 view .LVU4189 12632 0034 2368 ldr r3, [r4] 12633 0036 1022 movs r2, #16 12634 0038 DA61 str r2, [r3, #28] 6019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12635 .loc 1 6019 5 view .LVU4190 6019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12636 .loc 1 6019 9 is_stmt 0 view .LVU4191 12637 003a 636C ldr r3, [r4, #68] 6019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12638 .loc 1 6019 21 view .LVU4192 12639 003c 0C3A subs r2, r2, #12 12640 003e 1343 orrs r3, r2 12641 0040 6364 str r3, [r4, #68] 12642 .L730: 6023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12643 .loc 1 6023 3 is_stmt 1 view .LVU4193 6023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12644 .loc 1 6023 12 is_stmt 0 view .LVU4194 12645 0042 4123 movs r3, #65 12646 0044 E35C ldrb r3, [r4, r3] 6023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12647 .loc 1 6023 6 view .LVU4195 12648 0046 602B cmp r3, #96 12649 0048 1BD0 beq .L742 12650 .LVL925: 12651 .L731: 6031:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12652 .loc 1 6031 3 is_stmt 1 view .LVU4196 12653 004a 2000 movs r0, r4 12654 004c FFF7FEFF bl I2C_Flush_TXDR 12655 .LVL926: 6034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12656 .loc 1 6034 3 view .LVU4197 6034:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12657 .loc 1 6034 12 is_stmt 0 view .LVU4198 12658 0050 626C ldr r2, [r4, #68] 12659 .LVL927: 6037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12660 .loc 1 6037 3 is_stmt 1 view .LVU4199 6037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12661 .loc 1 6037 12 is_stmt 0 view .LVU4200 12662 0052 4123 movs r3, #65 12663 0054 E35C ldrb r3, [r4, r3] 6037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 420 12664 .loc 1 6037 6 view .LVU4201 12665 0056 602B cmp r3, #96 12666 0058 01D0 beq .L732 6037:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12667 .loc 1 6037 44 discriminator 1 view .LVU4202 12668 005a 002A cmp r2, #0 12669 005c 1AD0 beq .L733 12670 .L732: 6040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12671 .loc 1 6040 5 is_stmt 1 view .LVU4203 6040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12672 .loc 1 6040 27 is_stmt 0 view .LVU4204 12673 005e 616C ldr r1, [r4, #68] 6040:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12674 .loc 1 6040 5 view .LVU4205 12675 0060 2000 movs r0, r4 12676 0062 FFF7FEFF bl I2C_ITError 12677 .LVL928: 12678 .L727: 6116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12679 .loc 1 6116 1 view .LVU4206 12680 0066 03B0 add sp, sp, #12 12681 @ sp needed 12682 .LVL929: 6116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12683 .loc 1 6116 1 view .LVU4207 12684 0068 30BD pop {r4, r5, pc} 12685 .LVL930: 12686 .L740: 5993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12687 .loc 1 5993 5 is_stmt 1 view .LVU4208 12688 006a 0121 movs r1, #1 12689 .LVL931: 5993:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12690 .loc 1 5993 5 is_stmt 0 view .LVU4209 12691 006c FFF7FEFF bl I2C_Disable_IRQ 12692 .LVL932: 5994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12693 .loc 1 5994 5 is_stmt 1 view .LVU4210 5994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12694 .loc 1 5994 25 is_stmt 0 view .LVU4211 12695 0070 1123 movs r3, #17 12696 0072 2363 str r3, [r4, #48] 12697 0074 D3E7 b .L729 12698 .LVL933: 12699 .L741: 5998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12700 .loc 1 5998 5 is_stmt 1 view .LVU4212 12701 0076 0221 movs r1, #2 12702 .LVL934: 5998:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12703 .loc 1 5998 5 is_stmt 0 view .LVU4213 12704 0078 FFF7FEFF bl I2C_Disable_IRQ 12705 .LVL935: 5999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12706 .loc 1 5999 5 is_stmt 1 view .LVU4214 5999:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 421 12707 .loc 1 5999 25 is_stmt 0 view .LVU4215 12708 007c 1223 movs r3, #18 12709 007e 2363 str r3, [r4, #48] 12710 0080 CDE7 b .L729 12711 .L742: 6023:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12712 .loc 1 6023 44 discriminator 1 view .LVU4216 12713 0082 6D07 lsls r5, r5, #29 12714 0084 E1D5 bpl .L731 12715 .LVL936: 6026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(tmpreg); 12716 .loc 1 6026 5 is_stmt 1 view .LVU4217 6026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(tmpreg); 12717 .loc 1 6026 27 is_stmt 0 view .LVU4218 12718 0086 2368 ldr r3, [r4] 6026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(tmpreg); 12719 .loc 1 6026 37 view .LVU4219 12720 0088 5A6A ldr r2, [r3, #36] 12721 008a FF23 movs r3, #255 12722 008c 1340 ands r3, r2 6026:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** UNUSED(tmpreg); 12723 .loc 1 6026 12 view .LVU4220 12724 008e 0193 str r3, [sp, #4] 6027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12725 .loc 1 6027 5 is_stmt 1 view .LVU4221 12726 0090 019B ldr r3, [sp, #4] 12727 0092 DAE7 b .L731 12728 .LVL937: 12729 .L733: 6043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12730 .loc 1 6043 8 view .LVU4222 6043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12731 .loc 1 6043 16 is_stmt 0 view .LVU4223 12732 0094 4123 movs r3, #65 12733 0096 E35C ldrb r3, [r4, r3] 6043:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12734 .loc 1 6043 11 view .LVU4224 12735 0098 212B cmp r3, #33 12736 009a 15D0 beq .L743 6078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12737 .loc 1 6078 8 is_stmt 1 view .LVU4225 6078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12738 .loc 1 6078 16 is_stmt 0 view .LVU4226 12739 009c 4123 movs r3, #65 12740 009e E35C ldrb r3, [r4, r3] 6078:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12741 .loc 1 6078 11 view .LVU4227 12742 00a0 222B cmp r3, #34 12743 00a2 E0D1 bne .L727 6080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12744 .loc 1 6080 5 is_stmt 1 view .LVU4228 6080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12745 .loc 1 6080 17 is_stmt 0 view .LVU4229 12746 00a4 1F33 adds r3, r3, #31 12747 00a6 2022 movs r2, #32 12748 .LVL938: 6080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; ARM GAS /tmp/ccuRhBPx.s page 422 12749 .loc 1 6080 17 view .LVU4230 12750 00a8 E254 strb r2, [r4, r3] 6081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12751 .loc 1 6081 5 is_stmt 1 view .LVU4231 6081:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12752 .loc 1 6081 25 is_stmt 0 view .LVU4232 12753 00aa 0023 movs r3, #0 12754 00ac 2363 str r3, [r4, #48] 6083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12755 .loc 1 6083 5 is_stmt 1 view .LVU4233 6083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12756 .loc 1 6083 13 is_stmt 0 view .LVU4234 12757 00ae 4233 adds r3, r3, #66 12758 00b0 E35C ldrb r3, [r4, r3] 6083:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12759 .loc 1 6083 8 view .LVU4235 12760 00b2 402B cmp r3, #64 12761 00b4 23D0 beq .L744 6099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12762 .loc 1 6099 7 is_stmt 1 view .LVU4236 6099:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12763 .loc 1 6099 18 is_stmt 0 view .LVU4237 12764 00b6 0023 movs r3, #0 12765 00b8 4222 movs r2, #66 12766 00ba A354 strb r3, [r4, r2] 6102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12767 .loc 1 6102 7 is_stmt 1 view .LVU4238 6102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12768 .loc 1 6102 7 view .LVU4239 12769 00bc 023A subs r2, r2, #2 12770 00be A354 strb r3, [r4, r2] 6102:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12771 .loc 1 6102 7 view .LVU4240 6108:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12772 .loc 1 6108 7 view .LVU4241 12773 00c0 2000 movs r0, r4 12774 00c2 FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 12775 .LVL939: 6115:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12776 .loc 1 6115 3 view .LVU4242 6116:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12777 .loc 1 6116 1 is_stmt 0 view .LVU4243 12778 00c6 CEE7 b .L727 12779 .LVL940: 12780 .L743: 6045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12781 .loc 1 6045 5 is_stmt 1 view .LVU4244 6045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12782 .loc 1 6045 17 is_stmt 0 view .LVU4245 12783 00c8 2033 adds r3, r3, #32 12784 00ca 2022 movs r2, #32 12785 .LVL941: 6045:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12786 .loc 1 6045 17 view .LVU4246 12787 00cc E254 strb r2, [r4, r3] 6046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12788 .loc 1 6046 5 is_stmt 1 view .LVU4247 ARM GAS /tmp/ccuRhBPx.s page 423 6046:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12789 .loc 1 6046 25 is_stmt 0 view .LVU4248 12790 00ce 0023 movs r3, #0 12791 00d0 2363 str r3, [r4, #48] 6048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12792 .loc 1 6048 5 is_stmt 1 view .LVU4249 6048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12793 .loc 1 6048 13 is_stmt 0 view .LVU4250 12794 00d2 4233 adds r3, r3, #66 12795 00d4 E35C ldrb r3, [r4, r3] 6048:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 12796 .loc 1 6048 8 view .LVU4251 12797 00d6 402B cmp r3, #64 12798 00d8 08D0 beq .L745 6064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12799 .loc 1 6064 7 is_stmt 1 view .LVU4252 6064:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12800 .loc 1 6064 18 is_stmt 0 view .LVU4253 12801 00da 0023 movs r3, #0 12802 00dc 4222 movs r2, #66 12803 00de A354 strb r3, [r4, r2] 6067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12804 .loc 1 6067 7 is_stmt 1 view .LVU4254 6067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12805 .loc 1 6067 7 view .LVU4255 12806 00e0 023A subs r2, r2, #2 12807 00e2 A354 strb r3, [r4, r2] 6067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12808 .loc 1 6067 7 view .LVU4256 6073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12809 .loc 1 6073 7 view .LVU4257 12810 00e4 2000 movs r0, r4 12811 00e6 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 12812 .LVL942: 12813 00ea BCE7 b .L727 12814 .L745: 6050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12815 .loc 1 6050 7 view .LVU4258 6050:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12816 .loc 1 6050 18 is_stmt 0 view .LVU4259 12817 00ec 0023 movs r3, #0 12818 00ee 2232 adds r2, r2, #34 12819 00f0 A354 strb r3, [r4, r2] 6053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12820 .loc 1 6053 7 is_stmt 1 view .LVU4260 6053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12821 .loc 1 6053 7 view .LVU4261 12822 00f2 023A subs r2, r2, #2 12823 00f4 A354 strb r3, [r4, r2] 6053:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12824 .loc 1 6053 7 view .LVU4262 6059:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12825 .loc 1 6059 7 view .LVU4263 12826 00f6 2000 movs r0, r4 12827 00f8 FFF7FEFF bl HAL_I2C_MemTxCpltCallback 12828 .LVL943: 12829 00fc B3E7 b .L727 ARM GAS /tmp/ccuRhBPx.s page 424 12830 .L744: 6085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12831 .loc 1 6085 7 view .LVU4264 6085:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12832 .loc 1 6085 18 is_stmt 0 view .LVU4265 12833 00fe 0023 movs r3, #0 12834 0100 2232 adds r2, r2, #34 12835 0102 A354 strb r3, [r4, r2] 6088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12836 .loc 1 6088 7 is_stmt 1 view .LVU4266 6088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12837 .loc 1 6088 7 view .LVU4267 12838 0104 023A subs r2, r2, #2 12839 0106 A354 strb r3, [r4, r2] 6088:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12840 .loc 1 6088 7 view .LVU4268 6094:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12841 .loc 1 6094 7 view .LVU4269 12842 0108 2000 movs r0, r4 12843 010a FFF7FEFF bl HAL_I2C_MemRxCpltCallback 12844 .LVL944: 12845 010e AAE7 b .L727 12846 .L747: 12847 .align 2 12848 .L746: 12849 0110 00E800FE .word -33495040 12850 0114 0000FFFF .word -65536 12851 .cfi_endproc 12852 .LFE100: 12854 .section .text.I2C_Master_ISR_IT,"ax",%progbits 12855 .align 1 12856 .syntax unified 12857 .code 16 12858 .thumb_func 12860 I2C_Master_ISR_IT: 12861 .LVL945: 12862 .LFB89: 4809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; 12863 .loc 1 4809 1 view -0 12864 .cfi_startproc 12865 @ args = 0, pretend = 0, frame = 0 12866 @ frame_needed = 0, uses_anonymous_args = 0 4809:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; 12867 .loc 1 4809 1 is_stmt 0 view .LVU4271 12868 0000 70B5 push {r4, r5, r6, lr} 12869 .cfi_def_cfa_offset 16 12870 .cfi_offset 4, -16 12871 .cfi_offset 5, -12 12872 .cfi_offset 6, -8 12873 .cfi_offset 14, -4 12874 0002 82B0 sub sp, sp, #8 12875 .cfi_def_cfa_offset 24 12876 0004 0400 movs r4, r0 12877 0006 0D00 movs r5, r1 12878 0008 1600 movs r6, r2 4810:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12879 .loc 1 4810 3 is_stmt 1 view .LVU4272 ARM GAS /tmp/ccuRhBPx.s page 425 4811:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12880 .loc 1 4811 3 view .LVU4273 12881 .LVL946: 4814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12882 .loc 1 4814 3 view .LVU4274 4814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12883 .loc 1 4814 3 view .LVU4275 12884 000a 4023 movs r3, #64 12885 000c C35C ldrb r3, [r0, r3] 12886 000e 012B cmp r3, #1 12887 0010 00D1 bne .LCB12011 12888 0012 ADE0 b .L762 @long jump 12889 .LCB12011: 4814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12890 .loc 1 4814 3 discriminator 2 view .LVU4276 12891 0014 0123 movs r3, #1 12892 0016 4022 movs r2, #64 12893 .LVL947: 4814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12894 .loc 1 4814 3 is_stmt 0 discriminator 2 view .LVU4277 12895 0018 8354 strb r3, [r0, r2] 4814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12896 .loc 1 4814 3 is_stmt 1 discriminator 2 view .LVU4278 4816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12897 .loc 1 4816 3 view .LVU4279 4816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12898 .loc 1 4816 8 is_stmt 0 view .LVU4280 12899 001a 0A09 lsrs r2, r1, #4 4816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12900 .loc 1 4816 6 view .LVU4281 12901 001c 1342 tst r3, r2 12902 001e 01D0 beq .L750 4816:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12903 .loc 1 4816 58 discriminator 1 view .LVU4282 12904 0020 F306 lsls r3, r6, #27 12905 0022 1ED4 bmi .L775 12906 .L750: 4830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12907 .loc 1 4830 8 is_stmt 1 view .LVU4283 4830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12908 .loc 1 4830 11 is_stmt 0 view .LVU4284 12909 0024 6B07 lsls r3, r5, #29 12910 0026 26D5 bpl .L752 4830:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12911 .loc 1 4830 65 discriminator 1 view .LVU4285 12912 0028 7307 lsls r3, r6, #29 12913 002a 24D5 bpl .L752 4834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12914 .loc 1 4834 5 is_stmt 1 view .LVU4286 4834:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12915 .loc 1 4834 16 is_stmt 0 view .LVU4287 12916 002c 0423 movs r3, #4 12917 002e 9D43 bics r5, r3 12918 .LVL948: 4837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12919 .loc 1 4837 5 is_stmt 1 view .LVU4288 4837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 426 12920 .loc 1 4837 36 is_stmt 0 view .LVU4289 12921 0030 2368 ldr r3, [r4] 4837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12922 .loc 1 4837 46 view .LVU4290 12923 0032 5A6A ldr r2, [r3, #36] 4837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12924 .loc 1 4837 10 view .LVU4291 12925 0034 636A ldr r3, [r4, #36] 4837:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12926 .loc 1 4837 21 view .LVU4292 12927 0036 1A70 strb r2, [r3] 4840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12928 .loc 1 4840 5 is_stmt 1 view .LVU4293 4840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12929 .loc 1 4840 9 is_stmt 0 view .LVU4294 12930 0038 636A ldr r3, [r4, #36] 4840:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12931 .loc 1 4840 19 view .LVU4295 12932 003a 0133 adds r3, r3, #1 12933 003c 6362 str r3, [r4, #36] 4842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 12934 .loc 1 4842 5 is_stmt 1 view .LVU4296 4842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 12935 .loc 1 4842 9 is_stmt 0 view .LVU4297 12936 003e 238D ldrh r3, [r4, #40] 4842:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 12937 .loc 1 4842 19 view .LVU4298 12938 0040 013B subs r3, r3, #1 12939 0042 2385 strh r3, [r4, #40] 4843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12940 .loc 1 4843 5 is_stmt 1 view .LVU4299 4843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12941 .loc 1 4843 9 is_stmt 0 view .LVU4300 12942 0044 638D ldrh r3, [r4, #42] 4843:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12943 .loc 1 4843 20 view .LVU4301 12944 0046 013B subs r3, r3, #1 12945 0048 9BB2 uxth r3, r3 12946 004a 6385 strh r3, [r4, #42] 12947 .LVL949: 12948 .L751: 4930:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12949 .loc 1 4930 3 is_stmt 1 view .LVU4302 4932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12950 .loc 1 4932 3 view .LVU4303 4932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12951 .loc 1 4932 6 is_stmt 0 view .LVU4304 12952 004c AB06 lsls r3, r5, #26 12953 004e 02D5 bpl .L761 4932:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12954 .loc 1 4932 61 discriminator 1 view .LVU4305 12955 0050 B606 lsls r6, r6, #26 12956 0052 00D5 bpl .LCB12082 12957 0054 87E0 b .L776 @long jump 12958 .LCB12082: 12959 .LVL950: 12960 .L761: ARM GAS /tmp/ccuRhBPx.s page 427 4940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12961 .loc 1 4940 3 is_stmt 1 view .LVU4306 4940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12962 .loc 1 4940 3 view .LVU4307 12963 0056 4023 movs r3, #64 12964 0058 0022 movs r2, #0 12965 005a E254 strb r2, [r4, r3] 4940:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12966 .loc 1 4940 3 view .LVU4308 4942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12967 .loc 1 4942 3 view .LVU4309 4942:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12968 .loc 1 4942 10 is_stmt 0 view .LVU4310 12969 005c 0020 movs r0, #0 12970 .L749: 4943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12971 .loc 1 4943 1 view .LVU4311 12972 005e 02B0 add sp, sp, #8 12973 @ sp needed 12974 .LVL951: 12975 .LVL952: 4943:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12976 .loc 1 4943 1 view .LVU4312 12977 0060 70BD pop {r4, r5, r6, pc} 12978 .LVL953: 12979 .L775: 4820:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12980 .loc 1 4820 5 is_stmt 1 view .LVU4313 12981 0062 0368 ldr r3, [r0] 12982 0064 1022 movs r2, #16 12983 0066 DA61 str r2, [r3, #28] 4825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12984 .loc 1 4825 5 view .LVU4314 4825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12985 .loc 1 4825 9 is_stmt 0 view .LVU4315 12986 0068 436C ldr r3, [r0, #68] 4825:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 12987 .loc 1 4825 21 view .LVU4316 12988 006a 0C3A subs r2, r2, #12 12989 006c 1343 orrs r3, r2 12990 006e 4364 str r3, [r0, #68] 4828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12991 .loc 1 4828 5 is_stmt 1 view .LVU4317 12992 0070 FFF7FEFF bl I2C_Flush_TXDR 12993 .LVL954: 4828:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 12994 .loc 1 4828 5 is_stmt 0 view .LVU4318 12995 0074 EAE7 b .L751 12996 .LVL955: 12997 .L752: 4845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12998 .loc 1 4845 8 is_stmt 1 view .LVU4319 4845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12999 .loc 1 4845 11 is_stmt 0 view .LVU4320 13000 0076 AB07 lsls r3, r5, #30 13001 0078 10D5 bpl .L753 4845:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) ARM GAS /tmp/ccuRhBPx.s page 428 13002 .loc 1 4845 65 discriminator 1 view .LVU4321 13003 007a B307 lsls r3, r6, #30 13004 007c 0ED5 bpl .L753 4849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13005 .loc 1 4849 5 is_stmt 1 view .LVU4322 4849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13006 .loc 1 4849 33 is_stmt 0 view .LVU4323 13007 007e 626A ldr r2, [r4, #36] 4849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13008 .loc 1 4849 9 view .LVU4324 13009 0080 2368 ldr r3, [r4] 4849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13010 .loc 1 4849 28 view .LVU4325 13011 0082 1278 ldrb r2, [r2] 4849:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13012 .loc 1 4849 26 view .LVU4326 13013 0084 9A62 str r2, [r3, #40] 4852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13014 .loc 1 4852 5 is_stmt 1 view .LVU4327 4852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13015 .loc 1 4852 9 is_stmt 0 view .LVU4328 13016 0086 636A ldr r3, [r4, #36] 4852:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13017 .loc 1 4852 19 view .LVU4329 13018 0088 0133 adds r3, r3, #1 13019 008a 6362 str r3, [r4, #36] 4854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 13020 .loc 1 4854 5 is_stmt 1 view .LVU4330 4854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 13021 .loc 1 4854 9 is_stmt 0 view .LVU4331 13022 008c 238D ldrh r3, [r4, #40] 4854:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 13023 .loc 1 4854 19 view .LVU4332 13024 008e 013B subs r3, r3, #1 13025 0090 2385 strh r3, [r4, #40] 4855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13026 .loc 1 4855 5 is_stmt 1 view .LVU4333 4855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13027 .loc 1 4855 9 is_stmt 0 view .LVU4334 13028 0092 638D ldrh r3, [r4, #42] 4855:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13029 .loc 1 4855 20 view .LVU4335 13030 0094 013B subs r3, r3, #1 13031 0096 9BB2 uxth r3, r3 13032 0098 6385 strh r3, [r4, #42] 13033 009a D7E7 b .L751 13034 .L753: 4857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13035 .loc 1 4857 8 is_stmt 1 view .LVU4336 4857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13036 .loc 1 4857 11 is_stmt 0 view .LVU4337 13037 009c 2B06 lsls r3, r5, #24 13038 009e 40D5 bpl .L754 4857:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13039 .loc 1 4857 64 discriminator 1 view .LVU4338 13040 00a0 7306 lsls r3, r6, #25 13041 00a2 3ED5 bpl .L754 ARM GAS /tmp/ccuRhBPx.s page 429 4860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13042 .loc 1 4860 5 is_stmt 1 view .LVU4339 4860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13043 .loc 1 4860 14 is_stmt 0 view .LVU4340 13044 00a4 638D ldrh r3, [r4, #42] 13045 00a6 9BB2 uxth r3, r3 4860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13046 .loc 1 4860 8 view .LVU4341 13047 00a8 002B cmp r3, #0 13048 00aa 2DD0 beq .L755 4860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13049 .loc 1 4860 41 discriminator 1 view .LVU4342 13050 00ac 238D ldrh r3, [r4, #40] 4860:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13051 .loc 1 4860 33 discriminator 1 view .LVU4343 13052 00ae 002B cmp r3, #0 13053 00b0 2AD1 bne .L755 4862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13054 .loc 1 4862 7 is_stmt 1 view .LVU4344 4862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13055 .loc 1 4862 35 is_stmt 0 view .LVU4345 13056 00b2 2368 ldr r3, [r4] 4862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13057 .loc 1 4862 45 view .LVU4346 13058 00b4 5968 ldr r1, [r3, #4] 13059 .LVL956: 4862:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13060 .loc 1 4862 18 view .LVU4347 13061 00b6 8905 lsls r1, r1, #22 13062 00b8 890D lsrs r1, r1, #22 13063 .LVL957: 4864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13064 .loc 1 4864 7 is_stmt 1 view .LVU4348 4864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13065 .loc 1 4864 15 is_stmt 0 view .LVU4349 13066 00ba 638D ldrh r3, [r4, #42] 13067 00bc 9BB2 uxth r3, r3 4864:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13068 .loc 1 4864 10 view .LVU4350 13069 00be FF2B cmp r3, #255 13070 00c0 0ED8 bhi .L777 4871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13071 .loc 1 4871 9 is_stmt 1 view .LVU4351 4871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13072 .loc 1 4871 30 is_stmt 0 view .LVU4352 13073 00c2 628D ldrh r2, [r4, #42] 13074 00c4 92B2 uxth r2, r2 4871:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13075 .loc 1 4871 24 view .LVU4353 13076 00c6 2285 strh r2, [r4, #40] 4872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13077 .loc 1 4872 9 is_stmt 1 view .LVU4354 4872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13078 .loc 1 4872 17 is_stmt 0 view .LVU4355 13079 00c8 E06A ldr r0, [r4, #44] 13080 .LVL958: 4872:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 430 13081 .loc 1 4872 12 view .LVU4356 13082 00ca 2A4B ldr r3, .L778 13083 00cc 9842 cmp r0, r3 13084 00ce 12D0 beq .L757 4874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 13085 .loc 1 4874 11 is_stmt 1 view .LVU4357 4875:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13086 .loc 1 4875 34 is_stmt 0 view .LVU4358 13087 00d0 E36A ldr r3, [r4, #44] 4874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 13088 .loc 1 4874 11 view .LVU4359 13089 00d2 D2B2 uxtb r2, r2 13090 00d4 0020 movs r0, #0 13091 00d6 0090 str r0, [sp] 13092 00d8 2000 movs r0, r4 13093 00da FFF7FEFF bl I2C_TransferConfig 13094 .LVL959: 4874:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 13095 .loc 1 4874 11 view .LVU4360 13096 00de B5E7 b .L751 13097 .LVL960: 13098 .L777: 4866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 13099 .loc 1 4866 9 is_stmt 1 view .LVU4361 4866:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 13100 .loc 1 4866 24 is_stmt 0 view .LVU4362 13101 00e0 FF23 movs r3, #255 13102 00e2 2385 strh r3, [r4, #40] 4867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13103 .loc 1 4867 9 is_stmt 1 view .LVU4363 13104 00e4 7F3B subs r3, r3, #127 13105 00e6 0022 movs r2, #0 13106 00e8 0092 str r2, [sp] 13107 00ea 5B04 lsls r3, r3, #17 13108 00ec FF32 adds r2, r2, #255 13109 00ee 2000 movs r0, r4 13110 .LVL961: 4867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13111 .loc 1 4867 9 is_stmt 0 view .LVU4364 13112 00f0 FFF7FEFF bl I2C_TransferConfig 13113 .LVL962: 4867:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13114 .loc 1 4867 9 view .LVU4365 13115 00f4 AAE7 b .L751 13116 .LVL963: 13117 .L757: 4879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 13118 .loc 1 4879 11 is_stmt 1 view .LVU4366 13119 00f6 8023 movs r3, #128 13120 00f8 D2B2 uxtb r2, r2 13121 00fa 0020 movs r0, #0 13122 00fc 0090 str r0, [sp] 13123 00fe 9B04 lsls r3, r3, #18 13124 0100 2000 movs r0, r4 13125 0102 FFF7FEFF bl I2C_TransferConfig 13126 .LVL964: 4879:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); ARM GAS /tmp/ccuRhBPx.s page 431 13127 .loc 1 4879 11 is_stmt 0 view .LVU4367 13128 0106 A1E7 b .L751 13129 .LVL965: 13130 .L755: 4887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13131 .loc 1 4887 7 is_stmt 1 view .LVU4368 4887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13132 .loc 1 4887 11 is_stmt 0 view .LVU4369 13133 0108 2368 ldr r3, [r4] 13134 010a 5B68 ldr r3, [r3, #4] 4887:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13135 .loc 1 4887 10 view .LVU4370 13136 010c 9B01 lsls r3, r3, #6 13137 010e 03D4 bmi .L758 4890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13138 .loc 1 4890 9 is_stmt 1 view .LVU4371 13139 0110 2000 movs r0, r4 13140 .LVL966: 4890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13141 .loc 1 4890 9 is_stmt 0 view .LVU4372 13142 0112 FFF7FEFF bl I2C_ITMasterSeqCplt 13143 .LVL967: 4890:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13144 .loc 1 4890 9 view .LVU4373 13145 0116 99E7 b .L751 13146 .LVL968: 13147 .L758: 4896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13148 .loc 1 4896 9 is_stmt 1 view .LVU4374 13149 0118 4021 movs r1, #64 13150 .LVL969: 4896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13151 .loc 1 4896 9 is_stmt 0 view .LVU4375 13152 011a 2000 movs r0, r4 13153 .LVL970: 4896:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13154 .loc 1 4896 9 view .LVU4376 13155 011c FFF7FEFF bl I2C_ITError 13156 .LVL971: 13157 0120 94E7 b .L751 13158 .LVL972: 13159 .L754: 4900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13160 .loc 1 4900 8 is_stmt 1 view .LVU4377 4900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13161 .loc 1 4900 11 is_stmt 0 view .LVU4378 13162 0122 6B06 lsls r3, r5, #25 13163 0124 00D4 bmi .LCB12304 13164 0126 91E7 b .L751 @long jump 13165 .LCB12304: 4900:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13166 .loc 1 4900 63 discriminator 1 view .LVU4379 13167 0128 7306 lsls r3, r6, #25 13168 012a 00D4 bmi .LCB12309 13169 012c 8EE7 b .L751 @long jump 13170 .LCB12309: 4903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 432 13171 .loc 1 4903 5 is_stmt 1 view .LVU4380 4903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13172 .loc 1 4903 13 is_stmt 0 view .LVU4381 13173 012e 638D ldrh r3, [r4, #42] 13174 0130 9BB2 uxth r3, r3 4903:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13175 .loc 1 4903 8 view .LVU4382 13176 0132 002B cmp r3, #0 13177 0134 12D1 bne .L759 4905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13178 .loc 1 4905 7 is_stmt 1 view .LVU4383 4905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13179 .loc 1 4905 11 is_stmt 0 view .LVU4384 13180 0136 2268 ldr r2, [r4] 13181 0138 5368 ldr r3, [r2, #4] 4905:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13182 .loc 1 4905 10 view .LVU4385 13183 013a 9B01 lsls r3, r3, #6 13184 013c 00D5 bpl .LCB12321 13185 013e 85E7 b .L751 @long jump 13186 .LCB12321: 4908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13187 .loc 1 4908 9 is_stmt 1 view .LVU4386 4908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13188 .loc 1 4908 17 is_stmt 0 view .LVU4387 13189 0140 E16A ldr r1, [r4, #44] 13190 .LVL973: 4908:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13191 .loc 1 4908 12 view .LVU4388 13192 0142 0C4B ldr r3, .L778 13193 0144 9942 cmp r1, r3 13194 0146 05D1 bne .L760 4911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13195 .loc 1 4911 11 is_stmt 1 view .LVU4389 4911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13196 .loc 1 4911 25 is_stmt 0 view .LVU4390 13197 0148 5168 ldr r1, [r2, #4] 4911:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13198 .loc 1 4911 31 view .LVU4391 13199 014a 8023 movs r3, #128 13200 014c DB01 lsls r3, r3, #7 13201 014e 0B43 orrs r3, r1 13202 0150 5360 str r3, [r2, #4] 13203 0152 7BE7 b .L751 13204 .L760: 4916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13205 .loc 1 4916 11 is_stmt 1 view .LVU4392 13206 0154 2000 movs r0, r4 13207 .LVL974: 4916:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13208 .loc 1 4916 11 is_stmt 0 view .LVU4393 13209 0156 FFF7FEFF bl I2C_ITMasterSeqCplt 13210 .LVL975: 13211 015a 77E7 b .L751 13212 .LVL976: 13213 .L759: 4924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 433 13214 .loc 1 4924 7 is_stmt 1 view .LVU4394 13215 015c 4021 movs r1, #64 13216 .LVL977: 4924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13217 .loc 1 4924 7 is_stmt 0 view .LVU4395 13218 015e 2000 movs r0, r4 13219 .LVL978: 4924:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13220 .loc 1 4924 7 view .LVU4396 13221 0160 FFF7FEFF bl I2C_ITError 13222 .LVL979: 13223 0164 72E7 b .L751 13224 .LVL980: 13225 .L776: 4936:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13226 .loc 1 4936 5 is_stmt 1 view .LVU4397 13227 0166 2900 movs r1, r5 13228 0168 2000 movs r0, r4 13229 016a FFF7FEFF bl I2C_ITMasterCplt 13230 .LVL981: 13231 016e 72E7 b .L761 13232 .LVL982: 13233 .L762: 4814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13234 .loc 1 4814 3 is_stmt 0 discriminator 1 view .LVU4398 13235 0170 0220 movs r0, #2 13236 .LVL983: 4814:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13237 .loc 1 4814 3 discriminator 1 view .LVU4399 13238 0172 74E7 b .L749 13239 .L779: 13240 .align 2 13241 .L778: 13242 0174 0000FFFF .word -65536 13243 .cfi_endproc 13244 .LFE89: 13246 .section .text.I2C_Mem_ISR_DMA,"ax",%progbits 13247 .align 1 13248 .syntax unified 13249 .code 16 13250 .thumb_func 13252 I2C_Mem_ISR_DMA: 13253 .LVL984: 13254 .LFB93: 5373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 13255 .loc 1 5373 1 is_stmt 1 view -0 13256 .cfi_startproc 13257 @ args = 0, pretend = 0, frame = 0 13258 @ frame_needed = 0, uses_anonymous_args = 0 5373:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 13259 .loc 1 5373 1 is_stmt 0 view .LVU4401 13260 0000 10B5 push {r4, lr} 13261 .cfi_def_cfa_offset 8 13262 .cfi_offset 4, -8 13263 .cfi_offset 14, -4 13264 0002 82B0 sub sp, sp, #8 13265 .cfi_def_cfa_offset 16 ARM GAS /tmp/ccuRhBPx.s page 434 13266 0004 0400 movs r4, r0 5374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13267 .loc 1 5374 3 is_stmt 1 view .LVU4402 13268 .LVL985: 5377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13269 .loc 1 5377 3 view .LVU4403 5377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13270 .loc 1 5377 3 view .LVU4404 13271 0006 4023 movs r3, #64 13272 0008 C35C ldrb r3, [r0, r3] 13273 000a 012B cmp r3, #1 13274 000c 00D1 bne .LCB12409 13275 000e B6E0 b .L795 @long jump 13276 .LCB12409: 5377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13277 .loc 1 5377 3 discriminator 2 view .LVU4405 13278 0010 0123 movs r3, #1 13279 0012 4020 movs r0, #64 13280 .LVL986: 5377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13281 .loc 1 5377 3 is_stmt 0 discriminator 2 view .LVU4406 13282 0014 2354 strb r3, [r4, r0] 5377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13283 .loc 1 5377 3 is_stmt 1 discriminator 2 view .LVU4407 5379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13284 .loc 1 5379 3 view .LVU4408 5379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13285 .loc 1 5379 8 is_stmt 0 view .LVU4409 13286 0016 0809 lsrs r0, r1, #4 5379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13287 .loc 1 5379 6 view .LVU4410 13288 0018 0342 tst r3, r0 13289 001a 01D0 beq .L782 5379:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13290 .loc 1 5379 55 discriminator 1 view .LVU4411 13291 001c D306 lsls r3, r2, #27 13292 001e 0FD4 bmi .L806 13293 .L782: 5396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 13294 .loc 1 5396 8 is_stmt 1 view .LVU4412 5396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 13295 .loc 1 5396 11 is_stmt 0 view .LVU4413 13296 0020 8B07 lsls r3, r1, #30 13297 0022 1CD5 bpl .L784 5396:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 13298 .loc 1 5396 62 discriminator 1 view .LVU4414 13299 0024 9307 lsls r3, r2, #30 13300 0026 1AD5 bpl .L784 5400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13301 .loc 1 5400 5 is_stmt 1 view .LVU4415 5400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13302 .loc 1 5400 9 is_stmt 0 view .LVU4416 13303 0028 2368 ldr r3, [r4] 5400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13304 .loc 1 5400 32 view .LVU4417 13305 002a 226D ldr r2, [r4, #80] 13306 .LVL987: ARM GAS /tmp/ccuRhBPx.s page 435 5400:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13307 .loc 1 5400 26 view .LVU4418 13308 002c 9A62 str r2, [r3, #40] 5403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13309 .loc 1 5403 5 is_stmt 1 view .LVU4419 5403:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13310 .loc 1 5403 22 is_stmt 0 view .LVU4420 13311 002e 0123 movs r3, #1 13312 0030 5B42 rsbs r3, r3, #0 13313 0032 2365 str r3, [r4, #80] 13314 .LVL988: 13315 .L783: 5494:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13316 .loc 1 5494 3 is_stmt 1 view .LVU4421 5497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13317 .loc 1 5497 3 view .LVU4422 5497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13318 .loc 1 5497 3 view .LVU4423 13319 0034 4023 movs r3, #64 13320 0036 0022 movs r2, #0 13321 0038 E254 strb r2, [r4, r3] 5497:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13322 .loc 1 5497 3 view .LVU4424 5499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13323 .loc 1 5499 3 view .LVU4425 5499:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13324 .loc 1 5499 10 is_stmt 0 view .LVU4426 13325 003a 0020 movs r0, #0 13326 .L781: 5500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13327 .loc 1 5500 1 view .LVU4427 13328 003c 02B0 add sp, sp, #8 13329 @ sp needed 13330 .LVL989: 5500:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13331 .loc 1 5500 1 view .LVU4428 13332 003e 10BD pop {r4, pc} 13333 .LVL990: 13334 .L806: 5383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13335 .loc 1 5383 5 is_stmt 1 view .LVU4429 13336 0040 2368 ldr r3, [r4] 13337 0042 1022 movs r2, #16 13338 .LVL991: 5383:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13339 .loc 1 5383 5 is_stmt 0 view .LVU4430 13340 0044 DA61 str r2, [r3, #28] 5386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13341 .loc 1 5386 5 is_stmt 1 view .LVU4431 5386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13342 .loc 1 5386 9 is_stmt 0 view .LVU4432 13343 0046 636C ldr r3, [r4, #68] 5386:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13344 .loc 1 5386 21 view .LVU4433 13345 0048 0C3A subs r2, r2, #12 13346 004a 1343 orrs r3, r2 13347 004c 6364 str r3, [r4, #68] ARM GAS /tmp/ccuRhBPx.s page 436 5391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13348 .loc 1 5391 5 is_stmt 1 view .LVU4434 13349 004e 2021 movs r1, #32 13350 .LVL992: 5391:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13351 .loc 1 5391 5 is_stmt 0 view .LVU4435 13352 0050 2000 movs r0, r4 13353 0052 FFF7FEFF bl I2C_Enable_IRQ 13354 .LVL993: 5394:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13355 .loc 1 5394 5 is_stmt 1 view .LVU4436 13356 0056 2000 movs r0, r4 13357 0058 FFF7FEFF bl I2C_Flush_TXDR 13358 .LVL994: 13359 005c EAE7 b .L783 13360 .LVL995: 13361 .L784: 5405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13362 .loc 1 5405 8 view .LVU4437 5405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13363 .loc 1 5405 11 is_stmt 0 view .LVU4438 13364 005e 0B06 lsls r3, r1, #24 13365 0060 01D5 bpl .L785 5405:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13366 .loc 1 5405 61 discriminator 1 view .LVU4439 13367 0062 5306 lsls r3, r2, #25 13368 0064 29D4 bmi .L807 13369 .L785: 5447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13370 .loc 1 5447 8 is_stmt 1 view .LVU4440 5447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13371 .loc 1 5447 11 is_stmt 0 view .LVU4441 13372 0066 4B06 lsls r3, r1, #25 13373 0068 00D4 bmi .LCB12521 13374 006a 7EE0 b .L790 @long jump 13375 .LCB12521: 5447:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13376 .loc 1 5447 60 discriminator 1 view .LVU4442 13377 006c 5306 lsls r3, r2, #25 13378 006e 00D4 bmi .LCB12526 13379 0070 7BE0 b .L790 @long jump 13380 .LCB12526: 5450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13381 .loc 1 5450 5 is_stmt 1 view .LVU4443 5450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13382 .loc 1 5450 13 is_stmt 0 view .LVU4444 13383 0072 4123 movs r3, #65 13384 0074 E35C ldrb r3, [r4, r3] 5450:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13385 .loc 1 5450 8 view .LVU4445 13386 0076 222B cmp r3, #34 13387 0078 61D0 beq .L796 5374:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13388 .loc 1 5374 12 view .LVU4446 13389 007a 4248 ldr r0, .L810 13390 .L791: 13391 .LVL996: ARM GAS /tmp/ccuRhBPx.s page 437 5455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13392 .loc 1 5455 5 is_stmt 1 view .LVU4447 5455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13393 .loc 1 5455 13 is_stmt 0 view .LVU4448 13394 007c 638D ldrh r3, [r4, #42] 13395 007e 9BB2 uxth r3, r3 5455:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13396 .loc 1 5455 8 view .LVU4449 13397 0080 FF2B cmp r3, #255 13398 0082 5ED9 bls .L792 5457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13399 .loc 1 5457 7 is_stmt 1 view .LVU4450 5457:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13400 .loc 1 5457 22 is_stmt 0 view .LVU4451 13401 0084 FF23 movs r3, #255 13402 0086 2385 strh r3, [r4, #40] 5460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 13403 .loc 1 5460 7 is_stmt 1 view .LVU4452 5460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 13404 .loc 1 5460 46 is_stmt 0 view .LVU4453 13405 0088 E16C ldr r1, [r4, #76] 13406 .LVL997: 5460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 13407 .loc 1 5460 7 view .LVU4454 13408 008a 7F3B subs r3, r3, #127 13409 008c 89B2 uxth r1, r1 13410 008e 0090 str r0, [sp] 13411 0090 5B04 lsls r3, r3, #17 13412 0092 FF22 movs r2, #255 13413 .LVL998: 5460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 13414 .loc 1 5460 7 view .LVU4455 13415 0094 2000 movs r0, r4 13416 .LVL999: 5460:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 13417 .loc 1 5460 7 view .LVU4456 13418 0096 FFF7FEFF bl I2C_TransferConfig 13419 .LVL1000: 13420 .L793: 5473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13421 .loc 1 5473 5 is_stmt 1 view .LVU4457 5473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13422 .loc 1 5473 9 is_stmt 0 view .LVU4458 13423 009a 638D ldrh r3, [r4, #42] 5473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13424 .loc 1 5473 28 view .LVU4459 13425 009c 228D ldrh r2, [r4, #40] 5473:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13426 .loc 1 5473 21 view .LVU4460 13427 009e 9B1A subs r3, r3, r2 13428 00a0 9BB2 uxth r3, r3 13429 00a2 6385 strh r3, [r4, #42] 5476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13430 .loc 1 5476 5 is_stmt 1 view .LVU4461 5476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13431 .loc 1 5476 13 is_stmt 0 view .LVU4462 13432 00a4 4123 movs r3, #65 ARM GAS /tmp/ccuRhBPx.s page 438 13433 00a6 E35C ldrb r3, [r4, r3] 5476:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13434 .loc 1 5476 8 view .LVU4463 13435 00a8 222B cmp r3, #34 13436 00aa 57D0 beq .L808 5482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13437 .loc 1 5482 7 is_stmt 1 view .LVU4464 5482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13438 .loc 1 5482 11 is_stmt 0 view .LVU4465 13439 00ac 2268 ldr r2, [r4] 5482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13440 .loc 1 5482 21 view .LVU4466 13441 00ae 1168 ldr r1, [r2] 5482:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13442 .loc 1 5482 27 view .LVU4467 13443 00b0 8023 movs r3, #128 13444 00b2 DB01 lsls r3, r3, #7 13445 00b4 0B43 orrs r3, r1 13446 00b6 1360 str r3, [r2] 13447 00b8 BCE7 b .L783 13448 .LVL1001: 13449 .L807: 5409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13450 .loc 1 5409 5 is_stmt 1 view .LVU4468 13451 00ba 1021 movs r1, #16 13452 .LVL1002: 5409:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13453 .loc 1 5409 5 is_stmt 0 view .LVU4469 13454 00bc 2000 movs r0, r4 13455 00be FFF7FEFF bl I2C_Enable_IRQ 13456 .LVL1003: 5411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13457 .loc 1 5411 5 is_stmt 1 view .LVU4470 5411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13458 .loc 1 5411 13 is_stmt 0 view .LVU4471 13459 00c2 638D ldrh r3, [r4, #42] 13460 00c4 9BB2 uxth r3, r3 5411:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13461 .loc 1 5411 8 view .LVU4472 13462 00c6 002B cmp r3, #0 13463 00c8 34D0 beq .L786 5414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13464 .loc 1 5414 7 is_stmt 1 view .LVU4473 5414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13465 .loc 1 5414 15 is_stmt 0 view .LVU4474 13466 00ca 638D ldrh r3, [r4, #42] 13467 00cc 9BB2 uxth r3, r3 5414:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13468 .loc 1 5414 10 view .LVU4475 13469 00ce FF2B cmp r3, #255 13470 00d0 1BD9 bls .L787 5416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 13471 .loc 1 5416 9 is_stmt 1 view .LVU4476 5416:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 13472 .loc 1 5416 24 is_stmt 0 view .LVU4477 13473 00d2 FF23 movs r3, #255 13474 00d4 2385 strh r3, [r4, #40] ARM GAS /tmp/ccuRhBPx.s page 439 5417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 13475 .loc 1 5417 9 is_stmt 1 view .LVU4478 5417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 13476 .loc 1 5417 48 is_stmt 0 view .LVU4479 13477 00d6 E16C ldr r1, [r4, #76] 5417:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 13478 .loc 1 5417 9 view .LVU4480 13479 00d8 7F3B subs r3, r3, #127 13480 00da 89B2 uxth r1, r1 13481 00dc 0022 movs r2, #0 13482 00de 0092 str r2, [sp] 13483 00e0 5B04 lsls r3, r3, #17 13484 00e2 FF32 adds r2, r2, #255 13485 00e4 2000 movs r0, r4 13486 00e6 FFF7FEFF bl I2C_TransferConfig 13487 .LVL1004: 13488 .L788: 5428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13489 .loc 1 5428 7 is_stmt 1 view .LVU4481 5428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13490 .loc 1 5428 11 is_stmt 0 view .LVU4482 13491 00ea 638D ldrh r3, [r4, #42] 5428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13492 .loc 1 5428 30 view .LVU4483 13493 00ec 228D ldrh r2, [r4, #40] 5428:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13494 .loc 1 5428 23 view .LVU4484 13495 00ee 9B1A subs r3, r3, r2 13496 00f0 9BB2 uxth r3, r3 13497 00f2 6385 strh r3, [r4, #42] 5431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13498 .loc 1 5431 7 is_stmt 1 view .LVU4485 5431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13499 .loc 1 5431 15 is_stmt 0 view .LVU4486 13500 00f4 4123 movs r3, #65 13501 00f6 E35C ldrb r3, [r4, r3] 5431:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13502 .loc 1 5431 10 view .LVU4487 13503 00f8 222B cmp r3, #34 13504 00fa 14D0 beq .L809 5437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13505 .loc 1 5437 9 is_stmt 1 view .LVU4488 5437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13506 .loc 1 5437 13 is_stmt 0 view .LVU4489 13507 00fc 2268 ldr r2, [r4] 5437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13508 .loc 1 5437 23 view .LVU4490 13509 00fe 1168 ldr r1, [r2] 5437:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13510 .loc 1 5437 29 view .LVU4491 13511 0100 8023 movs r3, #128 13512 0102 DB01 lsls r3, r3, #7 13513 0104 0B43 orrs r3, r1 13514 0106 1360 str r3, [r2] 13515 0108 94E7 b .L783 13516 .L787: 5422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, ARM GAS /tmp/ccuRhBPx.s page 440 13517 .loc 1 5422 9 is_stmt 1 view .LVU4492 5422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 13518 .loc 1 5422 30 is_stmt 0 view .LVU4493 13519 010a 628D ldrh r2, [r4, #42] 13520 010c 92B2 uxth r2, r2 5422:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 13521 .loc 1 5422 24 view .LVU4494 13522 010e 2285 strh r2, [r4, #40] 5423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 13523 .loc 1 5423 9 is_stmt 1 view .LVU4495 5423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 13524 .loc 1 5423 48 is_stmt 0 view .LVU4496 13525 0110 E16C ldr r1, [r4, #76] 5423:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 13526 .loc 1 5423 9 view .LVU4497 13527 0112 8023 movs r3, #128 13528 0114 D2B2 uxtb r2, r2 13529 0116 89B2 uxth r1, r1 13530 0118 0020 movs r0, #0 13531 011a 0090 str r0, [sp] 13532 011c 9B04 lsls r3, r3, #18 13533 011e 2000 movs r0, r4 13534 0120 FFF7FEFF bl I2C_TransferConfig 13535 .LVL1005: 13536 0124 E1E7 b .L788 13537 .L809: 5433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13538 .loc 1 5433 9 is_stmt 1 view .LVU4498 5433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13539 .loc 1 5433 13 is_stmt 0 view .LVU4499 13540 0126 2268 ldr r2, [r4] 5433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13541 .loc 1 5433 23 view .LVU4500 13542 0128 1168 ldr r1, [r2] 5433:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13543 .loc 1 5433 29 view .LVU4501 13544 012a 8023 movs r3, #128 13545 012c 1B02 lsls r3, r3, #8 13546 012e 0B43 orrs r3, r1 13547 0130 1360 str r3, [r2] 13548 0132 7FE7 b .L783 13549 .L786: 5444:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13550 .loc 1 5444 7 is_stmt 1 view .LVU4502 13551 0134 4021 movs r1, #64 13552 0136 2000 movs r0, r4 13553 0138 FFF7FEFF bl I2C_ITError 13554 .LVL1006: 13555 013c 7AE7 b .L783 13556 .LVL1007: 13557 .L796: 5452:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13558 .loc 1 5452 17 is_stmt 0 view .LVU4503 13559 013e 1248 ldr r0, .L810+4 13560 0140 9CE7 b .L791 13561 .LVL1008: 13562 .L792: ARM GAS /tmp/ccuRhBPx.s page 441 5465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13563 .loc 1 5465 7 is_stmt 1 view .LVU4504 5465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13564 .loc 1 5465 28 is_stmt 0 view .LVU4505 13565 0142 628D ldrh r2, [r4, #42] 13566 .LVL1009: 5465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13567 .loc 1 5465 28 view .LVU4506 13568 0144 92B2 uxth r2, r2 5465:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13569 .loc 1 5465 22 view .LVU4507 13570 0146 2285 strh r2, [r4, #40] 5468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13571 .loc 1 5468 7 is_stmt 1 view .LVU4508 5468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13572 .loc 1 5468 46 is_stmt 0 view .LVU4509 13573 0148 E16C ldr r1, [r4, #76] 13574 .LVL1010: 5468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13575 .loc 1 5468 7 view .LVU4510 13576 014a 8023 movs r3, #128 13577 014c D2B2 uxtb r2, r2 13578 014e 89B2 uxth r1, r1 13579 0150 0090 str r0, [sp] 13580 0152 9B04 lsls r3, r3, #18 13581 0154 2000 movs r0, r4 13582 .LVL1011: 5468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13583 .loc 1 5468 7 view .LVU4511 13584 0156 FFF7FEFF bl I2C_TransferConfig 13585 .LVL1012: 5468:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13586 .loc 1 5468 7 view .LVU4512 13587 015a 9EE7 b .L793 13588 .L808: 5478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13589 .loc 1 5478 7 is_stmt 1 view .LVU4513 5478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13590 .loc 1 5478 11 is_stmt 0 view .LVU4514 13591 015c 2268 ldr r2, [r4] 5478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13592 .loc 1 5478 21 view .LVU4515 13593 015e 1168 ldr r1, [r2] 5478:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13594 .loc 1 5478 27 view .LVU4516 13595 0160 8023 movs r3, #128 13596 0162 1B02 lsls r3, r3, #8 13597 0164 0B43 orrs r3, r1 13598 0166 1360 str r3, [r2] 13599 0168 64E7 b .L783 13600 .LVL1013: 13601 .L790: 5485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13602 .loc 1 5485 8 is_stmt 1 view .LVU4517 5485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13603 .loc 1 5485 11 is_stmt 0 view .LVU4518 13604 016a 8B06 lsls r3, r1, #26 ARM GAS /tmp/ccuRhBPx.s page 442 13605 016c 00D4 bmi .LCB12736 13606 016e 61E7 b .L783 @long jump 13607 .LCB12736: 5485:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13608 .loc 1 5485 63 discriminator 1 view .LVU4519 13609 0170 9206 lsls r2, r2, #26 13610 0172 00D4 bmi .LCB12741 13611 0174 5EE7 b .L783 @long jump 13612 .LCB12741: 13613 .LVL1014: 5489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13614 .loc 1 5489 5 is_stmt 1 view .LVU4520 13615 0176 2000 movs r0, r4 13616 0178 FFF7FEFF bl I2C_ITMasterCplt 13617 .LVL1015: 5489:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13618 .loc 1 5489 5 is_stmt 0 view .LVU4521 13619 017c 5AE7 b .L783 13620 .LVL1016: 13621 .L795: 5377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13622 .loc 1 5377 3 discriminator 1 view .LVU4522 13623 017e 0220 movs r0, #2 13624 .LVL1017: 5377:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13625 .loc 1 5377 3 discriminator 1 view .LVU4523 13626 0180 5CE7 b .L781 13627 .L811: 13628 0182 C046 .align 2 13629 .L810: 13630 0184 00200080 .word -2147475456 13631 0188 00240080 .word -2147474432 13632 .cfi_endproc 13633 .LFE93: 13635 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits 13636 .align 1 13637 .syntax unified 13638 .code 16 13639 .thumb_func 13641 I2C_Slave_ISR_DMA: 13642 .LVL1018: 13643 .LFB94: 5512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 13644 .loc 1 5512 1 is_stmt 1 view -0 13645 .cfi_startproc 13646 @ args = 0, pretend = 0, frame = 0 13647 @ frame_needed = 0, uses_anonymous_args = 0 5512:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 13648 .loc 1 5512 1 is_stmt 0 view .LVU4525 13649 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 13650 .cfi_def_cfa_offset 24 13651 .cfi_offset 3, -24 13652 .cfi_offset 4, -20 13653 .cfi_offset 5, -16 13654 .cfi_offset 6, -12 13655 .cfi_offset 7, -8 13656 .cfi_offset 14, -4 ARM GAS /tmp/ccuRhBPx.s page 443 13657 0002 0400 movs r4, r0 13658 0004 0D00 movs r5, r1 13659 0006 1600 movs r6, r2 5513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13660 .loc 1 5513 3 is_stmt 1 view .LVU4526 5513:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13661 .loc 1 5513 12 is_stmt 0 view .LVU4527 13662 0008 C76A ldr r7, [r0, #44] 13663 .LVL1019: 5514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13664 .loc 1 5514 3 is_stmt 1 view .LVU4528 5515:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13665 .loc 1 5515 3 view .LVU4529 5518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13666 .loc 1 5518 3 view .LVU4530 5518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13667 .loc 1 5518 3 view .LVU4531 13668 000a 4023 movs r3, #64 13669 000c C35C ldrb r3, [r0, r3] 13670 000e 012B cmp r3, #1 13671 0010 00D1 bne .LCB12795 13672 0012 89E0 b .L830 @long jump 13673 .LCB12795: 5518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13674 .loc 1 5518 3 discriminator 2 view .LVU4532 13675 0014 0123 movs r3, #1 13676 0016 4022 movs r2, #64 13677 .LVL1020: 5518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13678 .loc 1 5518 3 is_stmt 0 discriminator 2 view .LVU4533 13679 0018 8354 strb r3, [r0, r2] 5518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13680 .loc 1 5518 3 is_stmt 1 discriminator 2 view .LVU4534 5521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13681 .loc 1 5521 3 view .LVU4535 5521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13682 .loc 1 5521 8 is_stmt 0 view .LVU4536 13683 001a 4A09 lsrs r2, r1, #5 5521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13684 .loc 1 5521 6 view .LVU4537 13685 001c 1342 tst r3, r2 13686 001e 01D0 beq .L814 5521:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13687 .loc 1 5521 58 discriminator 1 view .LVU4538 13688 0020 B306 lsls r3, r6, #26 13689 0022 1AD4 bmi .L838 13690 .LVL1021: 13691 .L814: 5528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13692 .loc 1 5528 3 is_stmt 1 view .LVU4539 5528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13693 .loc 1 5528 6 is_stmt 0 view .LVU4540 13694 0024 EB06 lsls r3, r5, #27 13695 0026 71D5 bpl .L815 5528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13696 .loc 1 5528 55 discriminator 1 view .LVU4541 13697 0028 F306 lsls r3, r6, #27 ARM GAS /tmp/ccuRhBPx.s page 444 13698 002a 6FD5 bpl .L815 5535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13699 .loc 1 5535 5 is_stmt 1 view .LVU4542 5535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13700 .loc 1 5535 10 is_stmt 0 view .LVU4543 13701 002c B30B lsrs r3, r6, #14 13702 002e 0122 movs r2, #1 13703 0030 1000 movs r0, r2 13704 0032 1840 ands r0, r3 5535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13705 .loc 1 5535 8 view .LVU4544 13706 0034 1A42 tst r2, r3 13707 0036 01D1 bne .L816 5535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13708 .loc 1 5535 68 discriminator 1 view .LVU4545 13709 0038 3304 lsls r3, r6, #16 13710 003a 63D5 bpl .L817 13711 .L816: 5539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13712 .loc 1 5539 7 is_stmt 1 view .LVU4546 5539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13713 .loc 1 5539 15 is_stmt 0 view .LVU4547 13714 003c E36B ldr r3, [r4, #60] 5539:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13715 .loc 1 5539 10 view .LVU4548 13716 003e 002B cmp r3, #0 13717 0040 0ED0 beq .L831 5541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13718 .loc 1 5541 9 is_stmt 1 view .LVU4549 5541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13719 .loc 1 5541 13 is_stmt 0 view .LVU4550 13720 0042 F60B lsrs r6, r6, #15 13721 .LVL1022: 5541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13722 .loc 1 5541 13 view .LVU4551 13723 0044 0121 movs r1, #1 13724 0046 0A00 movs r2, r1 13725 0048 3240 ands r2, r6 5541:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13726 .loc 1 5541 12 view .LVU4552 13727 004a 3142 tst r1, r6 13728 004c 09D0 beq .L818 5543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13729 .loc 1 5543 11 is_stmt 1 view .LVU4553 5543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13730 .loc 1 5543 15 is_stmt 0 view .LVU4554 13731 004e 1B68 ldr r3, [r3] 13732 0050 5B68 ldr r3, [r3, #4] 5543:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13733 .loc 1 5543 14 view .LVU4555 13734 0052 002B cmp r3, #0 13735 0054 2BD0 beq .L832 5514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13736 .loc 1 5514 12 view .LVU4556 13737 0056 0022 movs r2, #0 13738 0058 03E0 b .L818 13739 .LVL1023: ARM GAS /tmp/ccuRhBPx.s page 445 13740 .L838: 5525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13741 .loc 1 5525 5 is_stmt 1 view .LVU4557 13742 005a FFF7FEFF bl I2C_ITSlaveCplt 13743 .LVL1024: 5525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13744 .loc 1 5525 5 is_stmt 0 view .LVU4558 13745 005e E1E7 b .L814 13746 .L831: 5514:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13747 .loc 1 5514 12 view .LVU4559 13748 0060 0022 movs r2, #0 13749 .LVL1025: 13750 .L818: 5551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13751 .loc 1 5551 7 is_stmt 1 view .LVU4560 5551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13752 .loc 1 5551 15 is_stmt 0 view .LVU4561 13753 0062 A36B ldr r3, [r4, #56] 5551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13754 .loc 1 5551 10 view .LVU4562 13755 0064 002B cmp r3, #0 13756 0066 05D0 beq .L819 5553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13757 .loc 1 5553 9 is_stmt 1 view .LVU4563 5553:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13758 .loc 1 5553 12 is_stmt 0 view .LVU4564 13759 0068 0028 cmp r0, #0 13760 006a 03D0 beq .L819 5555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13761 .loc 1 5555 11 is_stmt 1 view .LVU4565 5555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13762 .loc 1 5555 15 is_stmt 0 view .LVU4566 13763 006c 1B68 ldr r3, [r3] 13764 006e 5B68 ldr r3, [r3, #4] 5555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13765 .loc 1 5555 14 view .LVU4567 13766 0070 002B cmp r3, #0 13767 0072 1ED0 beq .L820 13768 .L819: 5562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13769 .loc 1 5562 7 is_stmt 1 view .LVU4568 5562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13770 .loc 1 5562 10 is_stmt 0 view .LVU4569 13771 0074 012A cmp r2, #1 13772 0076 1CD0 beq .L820 5593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13773 .loc 1 5593 9 is_stmt 1 view .LVU4570 13774 0078 2368 ldr r3, [r4] 13775 007a 1022 movs r2, #16 13776 .LVL1026: 5593:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13777 .loc 1 5593 9 is_stmt 0 view .LVU4571 13778 007c DA61 str r2, [r3, #28] 5596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13779 .loc 1 5596 9 is_stmt 1 view .LVU4572 5596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** ARM GAS /tmp/ccuRhBPx.s page 446 13780 .loc 1 5596 13 is_stmt 0 view .LVU4573 13781 007e 636C ldr r3, [r4, #68] 5596:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13782 .loc 1 5596 25 view .LVU4574 13783 0080 0C3A subs r2, r2, #12 13784 0082 1343 orrs r3, r2 13785 0084 6364 str r3, [r4, #68] 5599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13786 .loc 1 5599 9 is_stmt 1 view .LVU4575 5599:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13787 .loc 1 5599 18 is_stmt 0 view .LVU4576 13788 0086 4123 movs r3, #65 13789 0088 E35C ldrb r3, [r4, r3] 13790 008a DBB2 uxtb r3, r3 13791 .LVL1027: 5601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13792 .loc 1 5601 9 is_stmt 1 view .LVU4577 5601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13793 .loc 1 5601 12 is_stmt 0 view .LVU4578 13794 008c 002F cmp r7, #0 13795 008e 03D0 beq .L825 5601:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13796 .loc 1 5601 45 discriminator 1 view .LVU4579 13797 0090 8022 movs r2, #128 13798 0092 5204 lsls r2, r2, #17 13799 0094 9742 cmp r7, r2 13800 0096 3DD1 bne .L823 13801 .L825: 5603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13802 .loc 1 5603 11 is_stmt 1 view .LVU4580 5603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13803 .loc 1 5603 14 is_stmt 0 view .LVU4581 13804 0098 212B cmp r3, #33 13805 009a 2CD0 beq .L826 5603:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13806 .loc 1 5603 51 discriminator 1 view .LVU4582 13807 009c 292B cmp r3, #41 13808 009e 2AD0 beq .L826 5607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13809 .loc 1 5607 16 is_stmt 1 view .LVU4583 5607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13810 .loc 1 5607 19 is_stmt 0 view .LVU4584 13811 00a0 222B cmp r3, #34 13812 00a2 01D0 beq .L829 5607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13813 .loc 1 5607 56 discriminator 1 view .LVU4585 13814 00a4 2A2B cmp r3, #42 13815 00a6 28D1 bne .L828 13816 .L829: 5609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13817 .loc 1 5609 13 is_stmt 1 view .LVU4586 5609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13818 .loc 1 5609 33 is_stmt 0 view .LVU4587 13819 00a8 2223 movs r3, #34 13820 .LVL1028: 5609:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13821 .loc 1 5609 33 view .LVU4588 ARM GAS /tmp/ccuRhBPx.s page 447 13822 00aa 2363 str r3, [r4, #48] 13823 00ac 25E0 b .L828 13824 .LVL1029: 13825 .L832: 5545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13826 .loc 1 5545 26 view .LVU4589 13827 00ae 0122 movs r2, #1 13828 00b0 D7E7 b .L818 13829 .LVL1030: 13830 .L820: 5564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13831 .loc 1 5564 9 is_stmt 1 view .LVU4590 5564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13832 .loc 1 5564 18 is_stmt 0 view .LVU4591 13833 00b2 4123 movs r3, #65 13834 00b4 E35C ldrb r3, [r4, r3] 5564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13835 .loc 1 5564 12 view .LVU4592 13836 00b6 282B cmp r3, #40 13837 00b8 07D0 beq .L839 13838 .L822: 5571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13839 .loc 1 5571 14 is_stmt 1 view .LVU4593 5571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13840 .loc 1 5571 23 is_stmt 0 view .LVU4594 13841 00ba 4123 movs r3, #65 13842 00bc E35C ldrb r3, [r4, r3] 5571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13843 .loc 1 5571 17 view .LVU4595 13844 00be 292B cmp r3, #41 13845 00c0 0CD0 beq .L840 13846 .L824: 5586:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13847 .loc 1 5586 11 is_stmt 1 view .LVU4596 13848 00c2 2368 ldr r3, [r4] 13849 00c4 1022 movs r2, #16 13850 00c6 DA61 str r2, [r3, #28] 13851 00c8 24E0 b .L823 13852 .L839: 5564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13853 .loc 1 5564 51 is_stmt 0 discriminator 1 view .LVU4597 13854 00ca 8023 movs r3, #128 13855 00cc 9B04 lsls r3, r3, #18 13856 00ce 9F42 cmp r7, r3 13857 00d0 F3D1 bne .L822 5569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13858 .loc 1 5569 11 is_stmt 1 view .LVU4598 13859 00d2 2900 movs r1, r5 13860 00d4 2000 movs r0, r4 13861 00d6 FFF7FEFF bl I2C_ITListenCplt 13862 .LVL1031: 13863 00da 1BE0 b .L823 13864 .L840: 5571:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 13865 .loc 1 5571 64 is_stmt 0 discriminator 1 view .LVU4599 13866 00dc 134B ldr r3, .L842 13867 00de 9F42 cmp r7, r3 ARM GAS /tmp/ccuRhBPx.s page 448 13868 00e0 EFD0 beq .L824 5574:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13869 .loc 1 5574 11 is_stmt 1 view .LVU4600 13870 00e2 2368 ldr r3, [r4] 13871 00e4 1022 movs r2, #16 13872 00e6 DA61 str r2, [r3, #28] 5577:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13873 .loc 1 5577 11 view .LVU4601 13874 00e8 2000 movs r0, r4 13875 00ea FFF7FEFF bl I2C_Flush_TXDR 13876 .LVL1032: 5581:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13877 .loc 1 5581 11 view .LVU4602 13878 00ee 2000 movs r0, r4 13879 00f0 FFF7FEFF bl I2C_ITSlaveSeqCplt 13880 .LVL1033: 13881 00f4 0EE0 b .L823 13882 .LVL1034: 13883 .L826: 5605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13884 .loc 1 5605 13 view .LVU4603 5605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13885 .loc 1 5605 33 is_stmt 0 view .LVU4604 13886 00f6 2123 movs r3, #33 13887 .LVL1035: 5605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13888 .loc 1 5605 33 view .LVU4605 13889 00f8 2363 str r3, [r4, #48] 13890 .L828: 5617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13891 .loc 1 5617 11 is_stmt 1 view .LVU4606 5617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13892 .loc 1 5617 33 is_stmt 0 view .LVU4607 13893 00fa 616C ldr r1, [r4, #68] 5617:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13894 .loc 1 5617 11 view .LVU4608 13895 00fc 2000 movs r0, r4 13896 00fe FFF7FEFF bl I2C_ITError 13897 .LVL1036: 13898 0102 07E0 b .L823 13899 .LVL1037: 13900 .L817: 5624:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13901 .loc 1 5624 7 is_stmt 1 view .LVU4609 13902 0104 2368 ldr r3, [r4] 13903 0106 1022 movs r2, #16 13904 0108 DA61 str r2, [r3, #28] 13905 010a 03E0 b .L823 13906 .L815: 5627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13907 .loc 1 5627 8 view .LVU4610 5627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13908 .loc 1 5627 11 is_stmt 0 view .LVU4611 13909 010c 2B07 lsls r3, r5, #28 13910 010e 01D5 bpl .L823 5627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13911 .loc 1 5627 62 discriminator 1 view .LVU4612 ARM GAS /tmp/ccuRhBPx.s page 449 13912 0110 3607 lsls r6, r6, #28 13913 0112 04D4 bmi .L841 13914 .LVL1038: 13915 .L823: 5635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13916 .loc 1 5635 3 is_stmt 1 view .LVU4613 5638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13917 .loc 1 5638 3 view .LVU4614 5638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13918 .loc 1 5638 3 view .LVU4615 13919 0114 4023 movs r3, #64 13920 0116 0022 movs r2, #0 13921 0118 E254 strb r2, [r4, r3] 5638:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13922 .loc 1 5638 3 view .LVU4616 5640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13923 .loc 1 5640 3 view .LVU4617 5640:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13924 .loc 1 5640 10 is_stmt 0 view .LVU4618 13925 011a 0020 movs r0, #0 13926 .L813: 5641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13927 .loc 1 5641 1 view .LVU4619 13928 @ sp needed 13929 .LVL1039: 13930 .LVL1040: 13931 .LVL1041: 5641:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13932 .loc 1 5641 1 view .LVU4620 13933 011c F8BD pop {r3, r4, r5, r6, r7, pc} 13934 .LVL1042: 13935 .L841: 5630:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 13936 .loc 1 5630 5 is_stmt 1 view .LVU4621 13937 011e 2900 movs r1, r5 13938 0120 2000 movs r0, r4 13939 0122 FFF7FEFF bl I2C_ITAddrCplt 13940 .LVL1043: 13941 0126 F5E7 b .L823 13942 .LVL1044: 13943 .L830: 5518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13944 .loc 1 5518 3 is_stmt 0 discriminator 1 view .LVU4622 13945 0128 0220 movs r0, #2 13946 .LVL1045: 5518:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13947 .loc 1 5518 3 discriminator 1 view .LVU4623 13948 012a F7E7 b .L813 13949 .L843: 13950 .align 2 13951 .L842: 13952 012c 0000FFFF .word -65536 13953 .cfi_endproc 13954 .LFE94: 13956 .section .text.I2C_Master_ISR_DMA,"ax",%progbits 13957 .align 1 13958 .syntax unified ARM GAS /tmp/ccuRhBPx.s page 450 13959 .code 16 13960 .thumb_func 13962 I2C_Master_ISR_DMA: 13963 .LVL1046: 13964 .LFB92: 5233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; 13965 .loc 1 5233 1 is_stmt 1 view -0 13966 .cfi_startproc 13967 @ args = 0, pretend = 0, frame = 0 13968 @ frame_needed = 0, uses_anonymous_args = 0 5233:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint16_t devaddress; 13969 .loc 1 5233 1 is_stmt 0 view .LVU4625 13970 0000 10B5 push {r4, lr} 13971 .cfi_def_cfa_offset 8 13972 .cfi_offset 4, -8 13973 .cfi_offset 14, -4 13974 0002 82B0 sub sp, sp, #8 13975 .cfi_def_cfa_offset 16 13976 0004 0400 movs r4, r0 5234:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t xfermode; 13977 .loc 1 5234 3 is_stmt 1 view .LVU4626 5235:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13978 .loc 1 5235 3 view .LVU4627 5238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13979 .loc 1 5238 3 view .LVU4628 5238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13980 .loc 1 5238 3 view .LVU4629 13981 0006 4023 movs r3, #64 13982 0008 C35C ldrb r3, [r0, r3] 13983 000a 012B cmp r3, #1 13984 000c 00D1 bne .LCB13125 13985 000e 91E0 b .L857 @long jump 13986 .LCB13125: 5238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13987 .loc 1 5238 3 discriminator 2 view .LVU4630 13988 0010 0123 movs r3, #1 13989 0012 4020 movs r0, #64 13990 .LVL1047: 5238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13991 .loc 1 5238 3 is_stmt 0 discriminator 2 view .LVU4631 13992 0014 2354 strb r3, [r4, r0] 5238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 13993 .loc 1 5238 3 is_stmt 1 discriminator 2 view .LVU4632 5240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13994 .loc 1 5240 3 view .LVU4633 5240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13995 .loc 1 5240 8 is_stmt 0 view .LVU4634 13996 0016 0809 lsrs r0, r1, #4 5240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13997 .loc 1 5240 6 view .LVU4635 13998 0018 0342 tst r3, r0 13999 001a 01D0 beq .L846 5240:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14000 .loc 1 5240 55 discriminator 1 view .LVU4636 14001 001c D306 lsls r3, r2, #27 14002 001e 2FD4 bmi .L867 14003 .L846: ARM GAS /tmp/ccuRhBPx.s page 451 5257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14004 .loc 1 5257 8 is_stmt 1 view .LVU4637 5257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14005 .loc 1 5257 11 is_stmt 0 view .LVU4638 14006 0020 0B06 lsls r3, r1, #24 14007 0022 60D5 bpl .L848 5257:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14008 .loc 1 5257 61 discriminator 1 view .LVU4639 14009 0024 5306 lsls r3, r2, #25 14010 0026 5ED5 bpl .L848 5261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14011 .loc 1 5261 5 is_stmt 1 view .LVU4640 14012 0028 2268 ldr r2, [r4] 14013 .LVL1048: 5261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14014 .loc 1 5261 5 is_stmt 0 view .LVU4641 14015 002a 1368 ldr r3, [r2] 14016 002c 4021 movs r1, #64 14017 .LVL1049: 5261:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14018 .loc 1 5261 5 view .LVU4642 14019 002e 8B43 bics r3, r1 14020 0030 1360 str r3, [r2] 5263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14021 .loc 1 5263 5 is_stmt 1 view .LVU4643 5263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14022 .loc 1 5263 13 is_stmt 0 view .LVU4644 14023 0032 638D ldrh r3, [r4, #42] 14024 0034 9BB2 uxth r3, r3 5263:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14025 .loc 1 5263 8 view .LVU4645 14026 0036 002B cmp r3, #0 14027 0038 48D0 beq .L849 5266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14028 .loc 1 5266 7 is_stmt 1 view .LVU4646 5266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14029 .loc 1 5266 35 is_stmt 0 view .LVU4647 14030 003a 2368 ldr r3, [r4] 5266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14031 .loc 1 5266 45 view .LVU4648 14032 003c 5968 ldr r1, [r3, #4] 5266:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14033 .loc 1 5266 18 view .LVU4649 14034 003e 8905 lsls r1, r1, #22 14035 0040 890D lsrs r1, r1, #22 14036 .LVL1050: 5269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14037 .loc 1 5269 7 is_stmt 1 view .LVU4650 5269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14038 .loc 1 5269 15 is_stmt 0 view .LVU4651 14039 0042 638D ldrh r3, [r4, #42] 14040 0044 9BB2 uxth r3, r3 5269:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14041 .loc 1 5269 10 view .LVU4652 14042 0046 FF2B cmp r3, #255 14043 0048 2ED9 bls .L850 5271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; ARM GAS /tmp/ccuRhBPx.s page 452 14044 .loc 1 5271 9 is_stmt 1 view .LVU4653 5271:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 14045 .loc 1 5271 24 is_stmt 0 view .LVU4654 14046 004a FF23 movs r3, #255 14047 004c 2385 strh r3, [r4, #40] 5272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14048 .loc 1 5272 9 is_stmt 1 view .LVU4655 14049 .LVL1051: 5272:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14050 .loc 1 5272 18 is_stmt 0 view .LVU4656 14051 004e 8023 movs r3, #128 14052 0050 5B04 lsls r3, r3, #17 14053 .LVL1052: 14054 .L851: 5288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14055 .loc 1 5288 7 is_stmt 1 view .LVU4657 5288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14056 .loc 1 5288 57 is_stmt 0 view .LVU4658 14057 0052 228D ldrh r2, [r4, #40] 5288:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14058 .loc 1 5288 7 view .LVU4659 14059 0054 D2B2 uxtb r2, r2 14060 0056 0020 movs r0, #0 14061 0058 0090 str r0, [sp] 14062 005a 2000 movs r0, r4 14063 005c FFF7FEFF bl I2C_TransferConfig 14064 .LVL1053: 5291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14065 .loc 1 5291 7 is_stmt 1 view .LVU4660 5291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14066 .loc 1 5291 11 is_stmt 0 view .LVU4661 14067 0060 638D ldrh r3, [r4, #42] 5291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14068 .loc 1 5291 30 view .LVU4662 14069 0062 228D ldrh r2, [r4, #40] 5291:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14070 .loc 1 5291 23 view .LVU4663 14071 0064 9B1A subs r3, r3, r2 14072 0066 9BB2 uxth r3, r3 14073 0068 6385 strh r3, [r4, #42] 5294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14074 .loc 1 5294 7 is_stmt 1 view .LVU4664 5294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14075 .loc 1 5294 15 is_stmt 0 view .LVU4665 14076 006a 4123 movs r3, #65 14077 006c E35C ldrb r3, [r4, r3] 5294:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14078 .loc 1 5294 10 view .LVU4666 14079 006e 222B cmp r3, #34 14080 0070 25D0 beq .L868 5300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14081 .loc 1 5300 9 is_stmt 1 view .LVU4667 5300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14082 .loc 1 5300 13 is_stmt 0 view .LVU4668 14083 0072 2268 ldr r2, [r4] 5300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14084 .loc 1 5300 23 view .LVU4669 ARM GAS /tmp/ccuRhBPx.s page 453 14085 0074 1168 ldr r1, [r2] 5300:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14086 .loc 1 5300 29 view .LVU4670 14087 0076 8023 movs r3, #128 14088 0078 DB01 lsls r3, r3, #7 14089 007a 0B43 orrs r3, r1 14090 007c 1360 str r3, [r2] 14091 007e 0DE0 b .L847 14092 .LVL1054: 14093 .L867: 5244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14094 .loc 1 5244 5 is_stmt 1 view .LVU4671 14095 0080 2368 ldr r3, [r4] 14096 0082 1022 movs r2, #16 14097 .LVL1055: 5244:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14098 .loc 1 5244 5 is_stmt 0 view .LVU4672 14099 0084 DA61 str r2, [r3, #28] 5247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14100 .loc 1 5247 5 is_stmt 1 view .LVU4673 5247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14101 .loc 1 5247 9 is_stmt 0 view .LVU4674 14102 0086 636C ldr r3, [r4, #68] 5247:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14103 .loc 1 5247 21 view .LVU4675 14104 0088 0C3A subs r2, r2, #12 14105 008a 1343 orrs r3, r2 14106 008c 6364 str r3, [r4, #68] 5252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14107 .loc 1 5252 5 is_stmt 1 view .LVU4676 14108 008e 2021 movs r1, #32 14109 .LVL1056: 5252:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14110 .loc 1 5252 5 is_stmt 0 view .LVU4677 14111 0090 2000 movs r0, r4 14112 0092 FFF7FEFF bl I2C_Enable_IRQ 14113 .LVL1057: 5255:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14114 .loc 1 5255 5 is_stmt 1 view .LVU4678 14115 0096 2000 movs r0, r4 14116 0098 FFF7FEFF bl I2C_Flush_TXDR 14117 .LVL1058: 14118 .L847: 5355:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14119 .loc 1 5355 3 view .LVU4679 5358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14120 .loc 1 5358 3 view .LVU4680 5358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14121 .loc 1 5358 3 view .LVU4681 14122 009c 4023 movs r3, #64 14123 009e 0022 movs r2, #0 14124 00a0 E254 strb r2, [r4, r3] 5358:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14125 .loc 1 5358 3 view .LVU4682 5360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14126 .loc 1 5360 3 view .LVU4683 5360:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } ARM GAS /tmp/ccuRhBPx.s page 454 14127 .loc 1 5360 10 is_stmt 0 view .LVU4684 14128 00a2 0020 movs r0, #0 14129 .L845: 5361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14130 .loc 1 5361 1 view .LVU4685 14131 00a4 02B0 add sp, sp, #8 14132 @ sp needed 14133 .LVL1059: 5361:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14134 .loc 1 5361 1 view .LVU4686 14135 00a6 10BD pop {r4, pc} 14136 .LVL1060: 14137 .L850: 5276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 14138 .loc 1 5276 9 is_stmt 1 view .LVU4687 5276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 14139 .loc 1 5276 30 is_stmt 0 view .LVU4688 14140 00a8 638D ldrh r3, [r4, #42] 5276:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 14141 .loc 1 5276 24 view .LVU4689 14142 00aa 2385 strh r3, [r4, #40] 5277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14143 .loc 1 5277 9 is_stmt 1 view .LVU4690 5277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14144 .loc 1 5277 17 is_stmt 0 view .LVU4691 14145 00ac E26A ldr r2, [r4, #44] 5277:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14146 .loc 1 5277 12 view .LVU4692 14147 00ae 224B ldr r3, .L869 14148 00b0 9A42 cmp r2, r3 14149 00b2 01D0 beq .L858 5279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14150 .loc 1 5279 11 is_stmt 1 view .LVU4693 5279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14151 .loc 1 5279 20 is_stmt 0 view .LVU4694 14152 00b4 E36A ldr r3, [r4, #44] 14153 .LVL1061: 5279:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14154 .loc 1 5279 20 view .LVU4695 14155 00b6 CCE7 b .L851 14156 .LVL1062: 14157 .L858: 5283:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14158 .loc 1 5283 20 view .LVU4696 14159 00b8 8023 movs r3, #128 14160 00ba 9B04 lsls r3, r3, #18 14161 00bc C9E7 b .L851 14162 .LVL1063: 14163 .L868: 5296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14164 .loc 1 5296 9 is_stmt 1 view .LVU4697 5296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14165 .loc 1 5296 13 is_stmt 0 view .LVU4698 14166 00be 2268 ldr r2, [r4] 5296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14167 .loc 1 5296 23 view .LVU4699 14168 00c0 1168 ldr r1, [r2] ARM GAS /tmp/ccuRhBPx.s page 455 5296:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14169 .loc 1 5296 29 view .LVU4700 14170 00c2 8023 movs r3, #128 14171 00c4 1B02 lsls r3, r3, #8 14172 00c6 0B43 orrs r3, r1 14173 00c8 1360 str r3, [r2] 14174 00ca E7E7 b .L847 14175 .LVL1064: 14176 .L849: 5306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14177 .loc 1 5306 7 is_stmt 1 view .LVU4701 5306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14178 .loc 1 5306 11 is_stmt 0 view .LVU4702 14179 00cc 2368 ldr r3, [r4] 14180 00ce 5B68 ldr r3, [r3, #4] 5306:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14181 .loc 1 5306 10 view .LVU4703 14182 00d0 9B01 lsls r3, r3, #6 14183 00d2 03D4 bmi .L853 5309:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14184 .loc 1 5309 9 is_stmt 1 view .LVU4704 14185 00d4 2000 movs r0, r4 14186 00d6 FFF7FEFF bl I2C_ITMasterSeqCplt 14187 .LVL1065: 14188 00da DFE7 b .L847 14189 .L853: 5315:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14190 .loc 1 5315 9 view .LVU4705 14191 00dc 4021 movs r1, #64 14192 00de 2000 movs r0, r4 14193 00e0 FFF7FEFF bl I2C_ITError 14194 .LVL1066: 14195 00e4 DAE7 b .L847 14196 .LVL1067: 14197 .L848: 5319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14198 .loc 1 5319 8 view .LVU4706 5319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14199 .loc 1 5319 11 is_stmt 0 view .LVU4707 14200 00e6 4B06 lsls r3, r1, #25 14201 00e8 1CD5 bpl .L854 5319:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14202 .loc 1 5319 60 discriminator 1 view .LVU4708 14203 00ea 5306 lsls r3, r2, #25 14204 00ec 1AD5 bpl .L854 5322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14205 .loc 1 5322 5 is_stmt 1 view .LVU4709 5322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14206 .loc 1 5322 13 is_stmt 0 view .LVU4710 14207 00ee 638D ldrh r3, [r4, #42] 14208 00f0 9BB2 uxth r3, r3 5322:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14209 .loc 1 5322 8 view .LVU4711 14210 00f2 002B cmp r3, #0 14211 00f4 11D1 bne .L855 5324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14212 .loc 1 5324 7 is_stmt 1 view .LVU4712 ARM GAS /tmp/ccuRhBPx.s page 456 5324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14213 .loc 1 5324 11 is_stmt 0 view .LVU4713 14214 00f6 2268 ldr r2, [r4] 14215 .LVL1068: 5324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14216 .loc 1 5324 11 view .LVU4714 14217 00f8 5368 ldr r3, [r2, #4] 5324:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14218 .loc 1 5324 10 view .LVU4715 14219 00fa 9B01 lsls r3, r3, #6 14220 00fc CED4 bmi .L847 5327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14221 .loc 1 5327 9 is_stmt 1 view .LVU4716 5327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14222 .loc 1 5327 17 is_stmt 0 view .LVU4717 14223 00fe E16A ldr r1, [r4, #44] 14224 .LVL1069: 5327:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14225 .loc 1 5327 12 view .LVU4718 14226 0100 0D4B ldr r3, .L869 14227 0102 9942 cmp r1, r3 14228 0104 05D1 bne .L856 5330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14229 .loc 1 5330 11 is_stmt 1 view .LVU4719 5330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14230 .loc 1 5330 25 is_stmt 0 view .LVU4720 14231 0106 5168 ldr r1, [r2, #4] 5330:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14232 .loc 1 5330 31 view .LVU4721 14233 0108 8023 movs r3, #128 14234 010a DB01 lsls r3, r3, #7 14235 010c 0B43 orrs r3, r1 14236 010e 5360 str r3, [r2, #4] 14237 0110 C4E7 b .L847 14238 .L856: 5335:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14239 .loc 1 5335 11 is_stmt 1 view .LVU4722 14240 0112 2000 movs r0, r4 14241 0114 FFF7FEFF bl I2C_ITMasterSeqCplt 14242 .LVL1070: 14243 0118 C0E7 b .L847 14244 .LVL1071: 14245 .L855: 5343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14246 .loc 1 5343 7 view .LVU4723 14247 011a 4021 movs r1, #64 14248 .LVL1072: 5343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14249 .loc 1 5343 7 is_stmt 0 view .LVU4724 14250 011c 2000 movs r0, r4 14251 011e FFF7FEFF bl I2C_ITError 14252 .LVL1073: 5343:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14253 .loc 1 5343 7 view .LVU4725 14254 0122 BBE7 b .L847 14255 .LVL1074: 14256 .L854: ARM GAS /tmp/ccuRhBPx.s page 457 5346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14257 .loc 1 5346 8 is_stmt 1 view .LVU4726 5346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14258 .loc 1 5346 11 is_stmt 0 view .LVU4727 14259 0124 8B06 lsls r3, r1, #26 14260 0126 B9D5 bpl .L847 5346:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14261 .loc 1 5346 63 discriminator 1 view .LVU4728 14262 0128 9206 lsls r2, r2, #26 14263 012a B7D5 bpl .L847 14264 .LVL1075: 5350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14265 .loc 1 5350 5 is_stmt 1 view .LVU4729 14266 012c 2000 movs r0, r4 14267 012e FFF7FEFF bl I2C_ITMasterCplt 14268 .LVL1076: 5350:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14269 .loc 1 5350 5 is_stmt 0 view .LVU4730 14270 0132 B3E7 b .L847 14271 .LVL1077: 14272 .L857: 5238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14273 .loc 1 5238 3 discriminator 1 view .LVU4731 14274 0134 0220 movs r0, #2 14275 .LVL1078: 5238:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14276 .loc 1 5238 3 discriminator 1 view .LVU4732 14277 0136 B5E7 b .L845 14278 .L870: 14279 .align 2 14280 .L869: 14281 0138 0000FFFF .word -65536 14282 .cfi_endproc 14283 .LFE92: 14285 .section .text.I2C_DMAError,"ax",%progbits 14286 .align 1 14287 .syntax unified 14288 .code 16 14289 .thumb_func 14291 I2C_DMAError: 14292 .LVL1079: 14293 .LFB110: 6685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14294 .loc 1 6685 1 is_stmt 1 view -0 14295 .cfi_startproc 14296 @ args = 0, pretend = 0, frame = 0 14297 @ frame_needed = 0, uses_anonymous_args = 0 6685:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14298 .loc 1 6685 1 is_stmt 0 view .LVU4734 14299 0000 10B5 push {r4, lr} 14300 .cfi_def_cfa_offset 8 14301 .cfi_offset 4, -8 14302 .cfi_offset 14, -4 6687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14303 .loc 1 6687 3 is_stmt 1 view .LVU4735 6687:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14304 .loc 1 6687 22 is_stmt 0 view .LVU4736 ARM GAS /tmp/ccuRhBPx.s page 458 14305 0002 406A ldr r0, [r0, #36] 14306 .LVL1080: 6690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14307 .loc 1 6690 3 is_stmt 1 view .LVU4737 6690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14308 .loc 1 6690 7 is_stmt 0 view .LVU4738 14309 0004 0268 ldr r2, [r0] 6690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14310 .loc 1 6690 17 view .LVU4739 14311 0006 5168 ldr r1, [r2, #4] 6690:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14312 .loc 1 6690 23 view .LVU4740 14313 0008 8023 movs r3, #128 14314 000a 1B02 lsls r3, r3, #8 14315 000c 0B43 orrs r3, r1 14316 000e 5360 str r3, [r2, #4] 6693:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14317 .loc 1 6693 3 is_stmt 1 view .LVU4741 14318 0010 1021 movs r1, #16 14319 0012 FFF7FEFF bl I2C_ITError 14320 .LVL1081: 6694:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14321 .loc 1 6694 1 is_stmt 0 view .LVU4742 14322 @ sp needed 14323 0016 10BD pop {r4, pc} 14324 .cfi_endproc 14325 .LFE110: 14327 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits 14328 .align 1 14329 .syntax unified 14330 .code 16 14331 .thumb_func 14333 I2C_DMAMasterTransmitCplt: 14334 .LVL1082: 14335 .LFB106: 6525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14336 .loc 1 6525 1 is_stmt 1 view -0 14337 .cfi_startproc 14338 @ args = 0, pretend = 0, frame = 0 14339 @ frame_needed = 0, uses_anonymous_args = 0 6525:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14340 .loc 1 6525 1 is_stmt 0 view .LVU4744 14341 0000 10B5 push {r4, lr} 14342 .cfi_def_cfa_offset 8 14343 .cfi_offset 4, -8 14344 .cfi_offset 14, -4 6527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14345 .loc 1 6527 3 is_stmt 1 view .LVU4745 6527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14346 .loc 1 6527 22 is_stmt 0 view .LVU4746 14347 0002 446A ldr r4, [r0, #36] 14348 .LVL1083: 6530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14349 .loc 1 6530 3 is_stmt 1 view .LVU4747 6530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14350 .loc 1 6530 7 is_stmt 0 view .LVU4748 14351 0004 2268 ldr r2, [r4] ARM GAS /tmp/ccuRhBPx.s page 459 6530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14352 .loc 1 6530 17 view .LVU4749 14353 0006 1368 ldr r3, [r2] 6530:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14354 .loc 1 6530 23 view .LVU4750 14355 0008 1549 ldr r1, .L879 14356 000a 0B40 ands r3, r1 14357 000c 1360 str r3, [r2] 6533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14358 .loc 1 6533 3 is_stmt 1 view .LVU4751 6533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14359 .loc 1 6533 11 is_stmt 0 view .LVU4752 14360 000e 638D ldrh r3, [r4, #42] 14361 0010 9BB2 uxth r3, r3 6533:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14362 .loc 1 6533 6 view .LVU4753 14363 0012 002B cmp r3, #0 14364 0014 16D0 beq .L878 6542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14365 .loc 1 6542 5 is_stmt 1 view .LVU4754 6542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14366 .loc 1 6542 9 is_stmt 0 view .LVU4755 14367 0016 616A ldr r1, [r4, #36] 6542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14368 .loc 1 6542 27 view .LVU4756 14369 0018 238D ldrh r3, [r4, #40] 6542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14370 .loc 1 6542 20 view .LVU4757 14371 001a C918 adds r1, r1, r3 14372 001c 6162 str r1, [r4, #36] 6545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14373 .loc 1 6545 5 is_stmt 1 view .LVU4758 6545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14374 .loc 1 6545 13 is_stmt 0 view .LVU4759 14375 001e 638D ldrh r3, [r4, #42] 14376 0020 9BB2 uxth r3, r3 6545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14377 .loc 1 6545 8 view .LVU4760 14378 0022 FF2B cmp r3, #255 14379 0024 13D9 bls .L875 6547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14380 .loc 1 6547 7 is_stmt 1 view .LVU4761 6547:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14381 .loc 1 6547 22 is_stmt 0 view .LVU4762 14382 0026 FF23 movs r3, #255 14383 0028 2385 strh r3, [r4, #40] 14384 .L876: 6555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14385 .loc 1 6555 5 is_stmt 1 view .LVU4763 6555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14386 .loc 1 6555 81 is_stmt 0 view .LVU4764 14387 002a 2268 ldr r2, [r4] 6555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14388 .loc 1 6555 76 view .LVU4765 14389 002c 2832 adds r2, r2, #40 6556:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14390 .loc 1 6556 30 view .LVU4766 ARM GAS /tmp/ccuRhBPx.s page 460 14391 002e 238D ldrh r3, [r4, #40] 6555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14392 .loc 1 6555 9 view .LVU4767 14393 0030 A06B ldr r0, [r4, #56] 14394 .LVL1084: 6555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14395 .loc 1 6555 9 view .LVU4768 14396 0032 FFF7FEFF bl HAL_DMA_Start_IT 14397 .LVL1085: 6555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14398 .loc 1 6555 8 discriminator 1 view .LVU4769 14399 0036 0028 cmp r0, #0 14400 0038 0CD0 beq .L877 6559:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14401 .loc 1 6559 7 is_stmt 1 view .LVU4770 14402 003a 1021 movs r1, #16 14403 003c 2000 movs r0, r4 14404 003e FFF7FEFF bl I2C_ITError 14405 .LVL1086: 14406 .L872: 6567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14407 .loc 1 6567 1 is_stmt 0 view .LVU4771 14408 @ sp needed 14409 .LVL1087: 6567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14410 .loc 1 6567 1 view .LVU4772 14411 0042 10BD pop {r4, pc} 14412 .LVL1088: 14413 .L878: 6536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14414 .loc 1 6536 5 is_stmt 1 view .LVU4773 14415 0044 2021 movs r1, #32 14416 0046 2000 movs r0, r4 14417 .LVL1089: 6536:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14418 .loc 1 6536 5 is_stmt 0 view .LVU4774 14419 0048 FFF7FEFF bl I2C_Enable_IRQ 14420 .LVL1090: 14421 004c F9E7 b .L872 14422 .LVL1091: 14423 .L875: 6551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14424 .loc 1 6551 7 is_stmt 1 view .LVU4775 6551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14425 .loc 1 6551 28 is_stmt 0 view .LVU4776 14426 004e 638D ldrh r3, [r4, #42] 6551:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14427 .loc 1 6551 22 view .LVU4777 14428 0050 2385 strh r3, [r4, #40] 14429 0052 EAE7 b .L876 14430 .LVL1092: 14431 .L877: 6564:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14432 .loc 1 6564 7 is_stmt 1 view .LVU4778 14433 0054 4021 movs r1, #64 14434 0056 2000 movs r0, r4 14435 0058 FFF7FEFF bl I2C_Enable_IRQ ARM GAS /tmp/ccuRhBPx.s page 461 14436 .LVL1093: 6567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14437 .loc 1 6567 1 is_stmt 0 view .LVU4779 14438 005c F1E7 b .L872 14439 .L880: 14440 005e C046 .align 2 14441 .L879: 14442 0060 FFBFFFFF .word -16385 14443 .cfi_endproc 14444 .LFE106: 14446 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits 14447 .align 1 14448 .syntax unified 14449 .code 16 14450 .thumb_func 14452 I2C_DMAMasterReceiveCplt: 14453 .LVL1094: 14454 .LFB108: 6605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14455 .loc 1 6605 1 is_stmt 1 view -0 14456 .cfi_startproc 14457 @ args = 0, pretend = 0, frame = 0 14458 @ frame_needed = 0, uses_anonymous_args = 0 6605:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14459 .loc 1 6605 1 is_stmt 0 view .LVU4781 14460 0000 10B5 push {r4, lr} 14461 .cfi_def_cfa_offset 8 14462 .cfi_offset 4, -8 14463 .cfi_offset 14, -4 6607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14464 .loc 1 6607 3 is_stmt 1 view .LVU4782 6607:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14465 .loc 1 6607 22 is_stmt 0 view .LVU4783 14466 0002 446A ldr r4, [r0, #36] 14467 .LVL1095: 6610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14468 .loc 1 6610 3 is_stmt 1 view .LVU4784 6610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14469 .loc 1 6610 7 is_stmt 0 view .LVU4785 14470 0004 2268 ldr r2, [r4] 6610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14471 .loc 1 6610 17 view .LVU4786 14472 0006 1368 ldr r3, [r2] 6610:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14473 .loc 1 6610 23 view .LVU4787 14474 0008 1549 ldr r1, .L888 14475 000a 0B40 ands r3, r1 14476 000c 1360 str r3, [r2] 6613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14477 .loc 1 6613 3 is_stmt 1 view .LVU4788 6613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14478 .loc 1 6613 11 is_stmt 0 view .LVU4789 14479 000e 638D ldrh r3, [r4, #42] 14480 0010 9BB2 uxth r3, r3 6613:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14481 .loc 1 6613 6 view .LVU4790 14482 0012 002B cmp r3, #0 ARM GAS /tmp/ccuRhBPx.s page 462 14483 0014 16D0 beq .L887 6622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14484 .loc 1 6622 5 is_stmt 1 view .LVU4791 6622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14485 .loc 1 6622 9 is_stmt 0 view .LVU4792 14486 0016 626A ldr r2, [r4, #36] 6622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14487 .loc 1 6622 27 view .LVU4793 14488 0018 238D ldrh r3, [r4, #40] 6622:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14489 .loc 1 6622 20 view .LVU4794 14490 001a D218 adds r2, r2, r3 14491 001c 6262 str r2, [r4, #36] 6625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14492 .loc 1 6625 5 is_stmt 1 view .LVU4795 6625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14493 .loc 1 6625 13 is_stmt 0 view .LVU4796 14494 001e 638D ldrh r3, [r4, #42] 14495 0020 9BB2 uxth r3, r3 6625:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14496 .loc 1 6625 8 view .LVU4797 14497 0022 FF2B cmp r3, #255 14498 0024 13D9 bls .L884 6627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14499 .loc 1 6627 7 is_stmt 1 view .LVU4798 6627:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14500 .loc 1 6627 22 is_stmt 0 view .LVU4799 14501 0026 FF23 movs r3, #255 14502 0028 2385 strh r3, [r4, #40] 14503 .L885: 6635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14504 .loc 1 6635 5 is_stmt 1 view .LVU4800 6635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14505 .loc 1 6635 55 is_stmt 0 view .LVU4801 14506 002a 2168 ldr r1, [r4] 6635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14507 .loc 1 6635 50 view .LVU4802 14508 002c 2431 adds r1, r1, #36 6636:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14509 .loc 1 6636 30 view .LVU4803 14510 002e 238D ldrh r3, [r4, #40] 6635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14511 .loc 1 6635 9 view .LVU4804 14512 0030 E06B ldr r0, [r4, #60] 14513 .LVL1096: 6635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14514 .loc 1 6635 9 view .LVU4805 14515 0032 FFF7FEFF bl HAL_DMA_Start_IT 14516 .LVL1097: 6635:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14517 .loc 1 6635 8 discriminator 1 view .LVU4806 14518 0036 0028 cmp r0, #0 14519 0038 0CD0 beq .L886 6639:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14520 .loc 1 6639 7 is_stmt 1 view .LVU4807 14521 003a 1021 movs r1, #16 14522 003c 2000 movs r0, r4 ARM GAS /tmp/ccuRhBPx.s page 463 14523 003e FFF7FEFF bl I2C_ITError 14524 .LVL1098: 14525 .L881: 6647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14526 .loc 1 6647 1 is_stmt 0 view .LVU4808 14527 @ sp needed 14528 .LVL1099: 6647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14529 .loc 1 6647 1 view .LVU4809 14530 0042 10BD pop {r4, pc} 14531 .LVL1100: 14532 .L887: 6616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14533 .loc 1 6616 5 is_stmt 1 view .LVU4810 14534 0044 2021 movs r1, #32 14535 0046 2000 movs r0, r4 14536 .LVL1101: 6616:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14537 .loc 1 6616 5 is_stmt 0 view .LVU4811 14538 0048 FFF7FEFF bl I2C_Enable_IRQ 14539 .LVL1102: 14540 004c F9E7 b .L881 14541 .LVL1103: 14542 .L884: 6631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14543 .loc 1 6631 7 is_stmt 1 view .LVU4812 6631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14544 .loc 1 6631 28 is_stmt 0 view .LVU4813 14545 004e 638D ldrh r3, [r4, #42] 6631:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14546 .loc 1 6631 22 view .LVU4814 14547 0050 2385 strh r3, [r4, #40] 14548 0052 EAE7 b .L885 14549 .LVL1104: 14550 .L886: 6644:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14551 .loc 1 6644 7 is_stmt 1 view .LVU4815 14552 0054 4021 movs r1, #64 14553 0056 2000 movs r0, r4 14554 0058 FFF7FEFF bl I2C_Enable_IRQ 14555 .LVL1105: 6647:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14556 .loc 1 6647 1 is_stmt 0 view .LVU4816 14557 005c F1E7 b .L881 14558 .L889: 14559 005e C046 .align 2 14560 .L888: 14561 0060 FF7FFFFF .word -32769 14562 .cfi_endproc 14563 .LFE108: 14565 .section .text.I2C_Mem_ISR_IT,"ax",%progbits 14566 .align 1 14567 .syntax unified 14568 .code 16 14569 .thumb_func 14571 I2C_Mem_ISR_IT: 14572 .LVL1106: ARM GAS /tmp/ccuRhBPx.s page 464 14573 .LFB90: 4955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 14574 .loc 1 4955 1 is_stmt 1 view -0 14575 .cfi_startproc 14576 @ args = 0, pretend = 0, frame = 0 14577 @ frame_needed = 0, uses_anonymous_args = 0 4955:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 14578 .loc 1 4955 1 is_stmt 0 view .LVU4818 14579 0000 70B5 push {r4, r5, r6, lr} 14580 .cfi_def_cfa_offset 16 14581 .cfi_offset 4, -16 14582 .cfi_offset 5, -12 14583 .cfi_offset 6, -8 14584 .cfi_offset 14, -4 14585 0002 82B0 sub sp, sp, #8 14586 .cfi_def_cfa_offset 24 14587 0004 0400 movs r4, r0 14588 0006 0D00 movs r5, r1 14589 0008 1600 movs r6, r2 4956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 14590 .loc 1 4956 3 is_stmt 1 view .LVU4819 14591 .LVL1107: 4957:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14592 .loc 1 4957 3 view .LVU4820 4960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14593 .loc 1 4960 3 view .LVU4821 4960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14594 .loc 1 4960 3 view .LVU4822 14595 000a 4023 movs r3, #64 14596 000c C35C ldrb r3, [r0, r3] 14597 000e 012B cmp r3, #1 14598 0010 00D1 bne .LCB13694 14599 0012 AAE0 b .L903 @long jump 14600 .LCB13694: 4960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14601 .loc 1 4960 3 discriminator 2 view .LVU4823 14602 0014 0123 movs r3, #1 14603 0016 4022 movs r2, #64 14604 .LVL1108: 4960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14605 .loc 1 4960 3 is_stmt 0 discriminator 2 view .LVU4824 14606 0018 8354 strb r3, [r0, r2] 4960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14607 .loc 1 4960 3 is_stmt 1 discriminator 2 view .LVU4825 4962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14608 .loc 1 4962 3 view .LVU4826 4962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14609 .loc 1 4962 8 is_stmt 0 view .LVU4827 14610 001a 0A09 lsrs r2, r1, #4 4962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14611 .loc 1 4962 6 view .LVU4828 14612 001c 1342 tst r3, r2 14613 001e 01D0 beq .L892 4962:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14614 .loc 1 4962 58 discriminator 1 view .LVU4829 14615 0020 F306 lsls r3, r6, #27 14616 0022 1ED4 bmi .L916 ARM GAS /tmp/ccuRhBPx.s page 465 14617 .L892: 4976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 14618 .loc 1 4976 8 is_stmt 1 view .LVU4830 4976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 14619 .loc 1 4976 11 is_stmt 0 view .LVU4831 14620 0024 6B07 lsls r3, r5, #29 14621 0026 26D5 bpl .L894 4976:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 14622 .loc 1 4976 65 discriminator 1 view .LVU4832 14623 0028 7307 lsls r3, r6, #29 14624 002a 24D5 bpl .L894 4980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14625 .loc 1 4980 5 is_stmt 1 view .LVU4833 4980:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14626 .loc 1 4980 16 is_stmt 0 view .LVU4834 14627 002c 0423 movs r3, #4 14628 002e 9D43 bics r5, r3 14629 .LVL1109: 4983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14630 .loc 1 4983 5 is_stmt 1 view .LVU4835 4983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14631 .loc 1 4983 36 is_stmt 0 view .LVU4836 14632 0030 2368 ldr r3, [r4] 4983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14633 .loc 1 4983 46 view .LVU4837 14634 0032 5A6A ldr r2, [r3, #36] 4983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14635 .loc 1 4983 10 view .LVU4838 14636 0034 636A ldr r3, [r4, #36] 4983:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14637 .loc 1 4983 21 view .LVU4839 14638 0036 1A70 strb r2, [r3] 4986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14639 .loc 1 4986 5 is_stmt 1 view .LVU4840 4986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14640 .loc 1 4986 9 is_stmt 0 view .LVU4841 14641 0038 636A ldr r3, [r4, #36] 4986:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14642 .loc 1 4986 19 view .LVU4842 14643 003a 0133 adds r3, r3, #1 14644 003c 6362 str r3, [r4, #36] 4988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 14645 .loc 1 4988 5 is_stmt 1 view .LVU4843 4988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 14646 .loc 1 4988 9 is_stmt 0 view .LVU4844 14647 003e 238D ldrh r3, [r4, #40] 4988:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 14648 .loc 1 4988 19 view .LVU4845 14649 0040 013B subs r3, r3, #1 14650 0042 2385 strh r3, [r4, #40] 4989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14651 .loc 1 4989 5 is_stmt 1 view .LVU4846 4989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14652 .loc 1 4989 9 is_stmt 0 view .LVU4847 14653 0044 638D ldrh r3, [r4, #42] 4989:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14654 .loc 1 4989 20 view .LVU4848 ARM GAS /tmp/ccuRhBPx.s page 466 14655 0046 013B subs r3, r3, #1 14656 0048 9BB2 uxth r3, r3 14657 004a 6385 strh r3, [r4, #42] 14658 .LVL1110: 14659 .L893: 5067:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14660 .loc 1 5067 3 is_stmt 1 view .LVU4849 5069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14661 .loc 1 5069 3 view .LVU4850 5069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14662 .loc 1 5069 6 is_stmt 0 view .LVU4851 14663 004c AB06 lsls r3, r5, #26 14664 004e 02D5 bpl .L902 5069:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14665 .loc 1 5069 61 discriminator 1 view .LVU4852 14666 0050 B606 lsls r6, r6, #26 14667 0052 00D5 bpl .LCB13766 14668 0054 84E0 b .L917 @long jump 14669 .LCB13766: 14670 .LVL1111: 14671 .L902: 5077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14672 .loc 1 5077 3 is_stmt 1 view .LVU4853 5077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14673 .loc 1 5077 3 view .LVU4854 14674 0056 4023 movs r3, #64 14675 0058 0022 movs r2, #0 14676 005a E254 strb r2, [r4, r3] 5077:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14677 .loc 1 5077 3 view .LVU4855 5079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14678 .loc 1 5079 3 view .LVU4856 5079:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14679 .loc 1 5079 10 is_stmt 0 view .LVU4857 14680 005c 0020 movs r0, #0 14681 .L891: 5080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14682 .loc 1 5080 1 view .LVU4858 14683 005e 02B0 add sp, sp, #8 14684 @ sp needed 14685 .LVL1112: 14686 .LVL1113: 5080:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14687 .loc 1 5080 1 view .LVU4859 14688 0060 70BD pop {r4, r5, r6, pc} 14689 .LVL1114: 14690 .L916: 4966:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14691 .loc 1 4966 5 is_stmt 1 view .LVU4860 14692 0062 0368 ldr r3, [r0] 14693 0064 1022 movs r2, #16 14694 0066 DA61 str r2, [r3, #28] 4971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14695 .loc 1 4971 5 view .LVU4861 4971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14696 .loc 1 4971 9 is_stmt 0 view .LVU4862 14697 0068 436C ldr r3, [r0, #68] ARM GAS /tmp/ccuRhBPx.s page 467 4971:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14698 .loc 1 4971 21 view .LVU4863 14699 006a 0C3A subs r2, r2, #12 14700 006c 1343 orrs r3, r2 14701 006e 4364 str r3, [r0, #68] 4974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14702 .loc 1 4974 5 is_stmt 1 view .LVU4864 14703 0070 FFF7FEFF bl I2C_Flush_TXDR 14704 .LVL1115: 4974:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14705 .loc 1 4974 5 is_stmt 0 view .LVU4865 14706 0074 EAE7 b .L893 14707 .LVL1116: 14708 .L894: 4991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14709 .loc 1 4991 8 is_stmt 1 view .LVU4866 4991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14710 .loc 1 4991 11 is_stmt 0 view .LVU4867 14711 0076 AB07 lsls r3, r5, #30 14712 0078 1AD5 bpl .L895 4991:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14713 .loc 1 4991 65 discriminator 1 view .LVU4868 14714 007a B307 lsls r3, r6, #30 14715 007c 18D5 bpl .L895 4994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14716 .loc 1 4994 5 is_stmt 1 view .LVU4869 4994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14717 .loc 1 4994 13 is_stmt 0 view .LVU4870 14718 007e 236D ldr r3, [r4, #80] 4994:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14719 .loc 1 4994 8 view .LVU4871 14720 0080 0133 adds r3, r3, #1 14721 0082 06D0 beq .L918 5008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14722 .loc 1 5008 7 is_stmt 1 view .LVU4872 5008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14723 .loc 1 5008 11 is_stmt 0 view .LVU4873 14724 0084 2368 ldr r3, [r4] 5008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14725 .loc 1 5008 34 view .LVU4874 14726 0086 226D ldr r2, [r4, #80] 5008:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14727 .loc 1 5008 28 view .LVU4875 14728 0088 9A62 str r2, [r3, #40] 5011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14729 .loc 1 5011 7 is_stmt 1 view .LVU4876 5011:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14730 .loc 1 5011 24 is_stmt 0 view .LVU4877 14731 008a 0123 movs r3, #1 14732 008c 5B42 rsbs r3, r3, #0 14733 008e 2365 str r3, [r4, #80] 14734 0090 DCE7 b .L893 14735 .L918: 4997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14736 .loc 1 4997 7 is_stmt 1 view .LVU4878 4997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14737 .loc 1 4997 35 is_stmt 0 view .LVU4879 ARM GAS /tmp/ccuRhBPx.s page 468 14738 0092 626A ldr r2, [r4, #36] 4997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14739 .loc 1 4997 11 view .LVU4880 14740 0094 2368 ldr r3, [r4] 4997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14741 .loc 1 4997 30 view .LVU4881 14742 0096 1278 ldrb r2, [r2] 4997:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14743 .loc 1 4997 28 view .LVU4882 14744 0098 9A62 str r2, [r3, #40] 5000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14745 .loc 1 5000 7 is_stmt 1 view .LVU4883 5000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14746 .loc 1 5000 11 is_stmt 0 view .LVU4884 14747 009a 636A ldr r3, [r4, #36] 5000:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14748 .loc 1 5000 21 view .LVU4885 14749 009c 0133 adds r3, r3, #1 14750 009e 6362 str r3, [r4, #36] 5002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 14751 .loc 1 5002 7 is_stmt 1 view .LVU4886 5002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 14752 .loc 1 5002 11 is_stmt 0 view .LVU4887 14753 00a0 238D ldrh r3, [r4, #40] 5002:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** hi2c->XferCount--; 14754 .loc 1 5002 21 view .LVU4888 14755 00a2 013B subs r3, r3, #1 14756 00a4 2385 strh r3, [r4, #40] 5003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14757 .loc 1 5003 7 is_stmt 1 view .LVU4889 5003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14758 .loc 1 5003 11 is_stmt 0 view .LVU4890 14759 00a6 638D ldrh r3, [r4, #42] 5003:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14760 .loc 1 5003 22 view .LVU4891 14761 00a8 013B subs r3, r3, #1 14762 00aa 9BB2 uxth r3, r3 14763 00ac 6385 strh r3, [r4, #42] 14764 00ae CDE7 b .L893 14765 .L895: 5014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14766 .loc 1 5014 8 is_stmt 1 view .LVU4892 5014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14767 .loc 1 5014 11 is_stmt 0 view .LVU4893 14768 00b0 2B06 lsls r3, r5, #24 14769 00b2 2CD5 bpl .L897 5014:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14770 .loc 1 5014 64 discriminator 1 view .LVU4894 14771 00b4 7306 lsls r3, r6, #25 14772 00b6 2AD5 bpl .L897 5017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14773 .loc 1 5017 5 is_stmt 1 view .LVU4895 5017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14774 .loc 1 5017 14 is_stmt 0 view .LVU4896 14775 00b8 638D ldrh r3, [r4, #42] 14776 00ba 9BB2 uxth r3, r3 5017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { ARM GAS /tmp/ccuRhBPx.s page 469 14777 .loc 1 5017 8 view .LVU4897 14778 00bc 002B cmp r3, #0 14779 00be 21D0 beq .L898 5017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14780 .loc 1 5017 41 discriminator 1 view .LVU4898 14781 00c0 238D ldrh r3, [r4, #40] 5017:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14782 .loc 1 5017 33 discriminator 1 view .LVU4899 14783 00c2 002B cmp r3, #0 14784 00c4 1ED1 bne .L898 5019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14785 .loc 1 5019 7 is_stmt 1 view .LVU4900 5019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14786 .loc 1 5019 15 is_stmt 0 view .LVU4901 14787 00c6 638D ldrh r3, [r4, #42] 14788 00c8 9BB2 uxth r3, r3 5019:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14789 .loc 1 5019 10 view .LVU4902 14790 00ca FF2B cmp r3, #255 14791 00cc 0CD9 bls .L899 5021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14792 .loc 1 5021 9 is_stmt 1 view .LVU4903 5021:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14793 .loc 1 5021 24 is_stmt 0 view .LVU4904 14794 00ce FF23 movs r3, #255 14795 00d0 2385 strh r3, [r4, #40] 5022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14796 .loc 1 5022 9 is_stmt 1 view .LVU4905 5022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14797 .loc 1 5022 48 is_stmt 0 view .LVU4906 14798 00d2 E16C ldr r1, [r4, #76] 14799 .LVL1117: 5022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14800 .loc 1 5022 9 view .LVU4907 14801 00d4 7F3B subs r3, r3, #127 14802 00d6 89B2 uxth r1, r1 14803 00d8 0022 movs r2, #0 14804 00da 0092 str r2, [sp] 14805 00dc 5B04 lsls r3, r3, #17 14806 00de FF32 adds r2, r2, #255 14807 00e0 2000 movs r0, r4 14808 .LVL1118: 5022:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14809 .loc 1 5022 9 view .LVU4908 14810 00e2 FFF7FEFF bl I2C_TransferConfig 14811 .LVL1119: 14812 00e6 B1E7 b .L893 14813 .LVL1120: 14814 .L899: 5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14815 .loc 1 5027 9 is_stmt 1 view .LVU4909 5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14816 .loc 1 5027 30 is_stmt 0 view .LVU4910 14817 00e8 628D ldrh r2, [r4, #42] 14818 00ea 92B2 uxth r2, r2 5027:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14819 .loc 1 5027 24 view .LVU4911 ARM GAS /tmp/ccuRhBPx.s page 470 14820 00ec 2285 strh r2, [r4, #40] 5028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14821 .loc 1 5028 9 is_stmt 1 view .LVU4912 5028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14822 .loc 1 5028 48 is_stmt 0 view .LVU4913 14823 00ee E16C ldr r1, [r4, #76] 14824 .LVL1121: 5028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14825 .loc 1 5028 9 view .LVU4914 14826 00f0 8023 movs r3, #128 14827 00f2 D2B2 uxtb r2, r2 14828 00f4 89B2 uxth r1, r1 14829 00f6 0020 movs r0, #0 14830 .LVL1122: 5028:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14831 .loc 1 5028 9 view .LVU4915 14832 00f8 0090 str r0, [sp] 14833 00fa 9B04 lsls r3, r3, #18 14834 00fc 2000 movs r0, r4 14835 00fe FFF7FEFF bl I2C_TransferConfig 14836 .LVL1123: 14837 0102 A3E7 b .L893 14838 .LVL1124: 14839 .L898: 5036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14840 .loc 1 5036 7 is_stmt 1 view .LVU4916 14841 0104 4021 movs r1, #64 14842 .LVL1125: 5036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14843 .loc 1 5036 7 is_stmt 0 view .LVU4917 14844 0106 2000 movs r0, r4 14845 .LVL1126: 5036:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14846 .loc 1 5036 7 view .LVU4918 14847 0108 FFF7FEFF bl I2C_ITError 14848 .LVL1127: 14849 010c 9EE7 b .L893 14850 .LVL1128: 14851 .L897: 5039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14852 .loc 1 5039 8 is_stmt 1 view .LVU4919 5039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14853 .loc 1 5039 11 is_stmt 0 view .LVU4920 14854 010e 6B06 lsls r3, r5, #25 14855 0110 9CD5 bpl .L893 5039:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14856 .loc 1 5039 63 discriminator 1 view .LVU4921 14857 0112 7306 lsls r3, r6, #25 14858 0114 00D4 bmi .LCB13968 14859 0116 99E7 b .L893 @long jump 14860 .LCB13968: 5042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14861 .loc 1 5042 5 is_stmt 1 view .LVU4922 5042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14862 .loc 1 5042 13 is_stmt 0 view .LVU4923 14863 0118 4123 movs r3, #65 14864 011a E35C ldrb r3, [r4, r3] ARM GAS /tmp/ccuRhBPx.s page 471 5042:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14865 .loc 1 5042 8 view .LVU4924 14866 011c 222B cmp r3, #34 14867 011e 10D0 beq .L904 4956:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 14868 .loc 1 4956 12 view .LVU4925 14869 0120 1348 ldr r0, .L919 14870 .LVL1129: 14871 .L900: 5047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14872 .loc 1 5047 5 is_stmt 1 view .LVU4926 5047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14873 .loc 1 5047 13 is_stmt 0 view .LVU4927 14874 0122 638D ldrh r3, [r4, #42] 14875 0124 9BB2 uxth r3, r3 5047:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 14876 .loc 1 5047 8 view .LVU4928 14877 0126 FF2B cmp r3, #255 14878 0128 0DD9 bls .L901 5049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14879 .loc 1 5049 7 is_stmt 1 view .LVU4929 5049:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14880 .loc 1 5049 22 is_stmt 0 view .LVU4930 14881 012a FF23 movs r3, #255 14882 012c 2385 strh r3, [r4, #40] 5052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14883 .loc 1 5052 7 is_stmt 1 view .LVU4931 5052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14884 .loc 1 5052 46 is_stmt 0 view .LVU4932 14885 012e E16C ldr r1, [r4, #76] 14886 .LVL1130: 5052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14887 .loc 1 5052 7 view .LVU4933 14888 0130 7F3B subs r3, r3, #127 14889 0132 89B2 uxth r1, r1 14890 0134 0090 str r0, [sp] 14891 0136 5B04 lsls r3, r3, #17 14892 0138 FF22 movs r2, #255 14893 013a 2000 movs r0, r4 14894 .LVL1131: 5052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14895 .loc 1 5052 7 view .LVU4934 14896 013c FFF7FEFF bl I2C_TransferConfig 14897 .LVL1132: 5052:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14898 .loc 1 5052 7 view .LVU4935 14899 0140 84E7 b .L893 14900 .LVL1133: 14901 .L904: 5044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14902 .loc 1 5044 17 view .LVU4936 14903 0142 0C48 ldr r0, .L919+4 14904 .LVL1134: 5044:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14905 .loc 1 5044 17 view .LVU4937 14906 0144 EDE7 b .L900 14907 .LVL1135: ARM GAS /tmp/ccuRhBPx.s page 472 14908 .L901: 5057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14909 .loc 1 5057 7 is_stmt 1 view .LVU4938 5057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14910 .loc 1 5057 28 is_stmt 0 view .LVU4939 14911 0146 628D ldrh r2, [r4, #42] 14912 0148 92B2 uxth r2, r2 5057:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14913 .loc 1 5057 22 view .LVU4940 14914 014a 2285 strh r2, [r4, #40] 5060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14915 .loc 1 5060 7 is_stmt 1 view .LVU4941 5060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14916 .loc 1 5060 46 is_stmt 0 view .LVU4942 14917 014c E16C ldr r1, [r4, #76] 14918 .LVL1136: 5060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14919 .loc 1 5060 7 view .LVU4943 14920 014e 8023 movs r3, #128 14921 0150 D2B2 uxtb r2, r2 14922 0152 89B2 uxth r1, r1 14923 0154 0090 str r0, [sp] 14924 0156 9B04 lsls r3, r3, #18 14925 0158 2000 movs r0, r4 14926 .LVL1137: 5060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14927 .loc 1 5060 7 view .LVU4944 14928 015a FFF7FEFF bl I2C_TransferConfig 14929 .LVL1138: 5060:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14930 .loc 1 5060 7 view .LVU4945 14931 015e 75E7 b .L893 14932 .LVL1139: 14933 .L917: 5073:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 14934 .loc 1 5073 5 is_stmt 1 view .LVU4946 14935 0160 2900 movs r1, r5 14936 0162 2000 movs r0, r4 14937 0164 FFF7FEFF bl I2C_ITMasterCplt 14938 .LVL1140: 14939 0168 75E7 b .L902 14940 .LVL1141: 14941 .L903: 4960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14942 .loc 1 4960 3 is_stmt 0 discriminator 1 view .LVU4947 14943 016a 0220 movs r0, #2 14944 .LVL1142: 4960:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14945 .loc 1 4960 3 discriminator 1 view .LVU4948 14946 016c 77E7 b .L891 14947 .L920: 14948 016e C046 .align 2 14949 .L919: 14950 0170 00200080 .word -2147475456 14951 0174 00240080 .word -2147474432 14952 .cfi_endproc 14953 .LFE90: ARM GAS /tmp/ccuRhBPx.s page 473 14955 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits 14956 .align 1 14957 .global HAL_I2C_ER_IRQHandler 14958 .syntax unified 14959 .code 16 14960 .thumb_func 14962 HAL_I2C_ER_IRQHandler: 14963 .LVL1143: 14964 .LFB75: 4526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 14965 .loc 1 4526 1 is_stmt 1 view -0 14966 .cfi_startproc 14967 @ args = 0, pretend = 0, frame = 0 14968 @ frame_needed = 0, uses_anonymous_args = 0 4526:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 14969 .loc 1 4526 1 is_stmt 0 view .LVU4950 14970 0000 70B5 push {r4, r5, r6, lr} 14971 .cfi_def_cfa_offset 16 14972 .cfi_offset 4, -16 14973 .cfi_offset 5, -12 14974 .cfi_offset 6, -8 14975 .cfi_offset 14, -4 4527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14976 .loc 1 4527 3 is_stmt 1 view .LVU4951 4527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14977 .loc 1 4527 24 is_stmt 0 view .LVU4952 14978 0002 0268 ldr r2, [r0] 4527:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14979 .loc 1 4527 12 view .LVU4953 14980 0004 9369 ldr r3, [r2, #24] 14981 .LVL1144: 4528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; 14982 .loc 1 4528 3 is_stmt 1 view .LVU4954 4528:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** uint32_t tmperror; 14983 .loc 1 4528 12 is_stmt 0 view .LVU4955 14984 0006 1168 ldr r1, [r2] 14985 .LVL1145: 4529:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14986 .loc 1 4529 3 is_stmt 1 view .LVU4956 4532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14987 .loc 1 4532 3 view .LVU4957 4532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14988 .loc 1 4532 6 is_stmt 0 view .LVU4958 14989 0008 DC05 lsls r4, r3, #23 14990 000a 08D5 bpl .L922 4532:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14991 .loc 1 4532 57 discriminator 1 view .LVU4959 14992 000c 0C06 lsls r4, r1, #24 14993 000e 06D5 bpl .L922 4535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14994 .loc 1 4535 5 is_stmt 1 view .LVU4960 4535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14995 .loc 1 4535 9 is_stmt 0 view .LVU4961 14996 0010 446C ldr r4, [r0, #68] 4535:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 14997 .loc 1 4535 21 view .LVU4962 14998 0012 0125 movs r5, #1 ARM GAS /tmp/ccuRhBPx.s page 474 14999 0014 2C43 orrs r4, r5 15000 0016 4464 str r4, [r0, #68] 4538:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15001 .loc 1 4538 5 is_stmt 1 view .LVU4963 15002 0018 8024 movs r4, #128 15003 001a 6400 lsls r4, r4, #1 15004 001c D461 str r4, [r2, #28] 15005 .L922: 4542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 15006 .loc 1 4542 3 view .LVU4964 4542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 15007 .loc 1 4542 6 is_stmt 0 view .LVU4965 15008 001e 5A05 lsls r2, r3, #21 15009 0020 09D5 bpl .L923 4542:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 15010 .loc 1 4542 56 discriminator 1 view .LVU4966 15011 0022 0A06 lsls r2, r1, #24 15012 0024 07D5 bpl .L923 4545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15013 .loc 1 4545 5 is_stmt 1 view .LVU4967 4545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15014 .loc 1 4545 9 is_stmt 0 view .LVU4968 15015 0026 426C ldr r2, [r0, #68] 4545:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15016 .loc 1 4545 21 view .LVU4969 15017 0028 0824 movs r4, #8 15018 002a 2243 orrs r2, r4 15019 002c 4264 str r2, [r0, #68] 4548:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15020 .loc 1 4548 5 is_stmt 1 view .LVU4970 15021 002e 0268 ldr r2, [r0] 15022 0030 8024 movs r4, #128 15023 0032 E400 lsls r4, r4, #3 15024 0034 D461 str r4, [r2, #28] 15025 .L923: 4552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 15026 .loc 1 4552 3 view .LVU4971 4552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 15027 .loc 1 4552 6 is_stmt 0 view .LVU4972 15028 0036 9B05 lsls r3, r3, #22 15029 0038 09D5 bpl .L924 15030 .LVL1146: 4552:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 15031 .loc 1 4552 57 discriminator 1 view .LVU4973 15032 003a 0906 lsls r1, r1, #24 15033 003c 07D5 bpl .L924 15034 .LVL1147: 4555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15035 .loc 1 4555 5 is_stmt 1 view .LVU4974 4555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15036 .loc 1 4555 9 is_stmt 0 view .LVU4975 15037 003e 436C ldr r3, [r0, #68] 4555:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15038 .loc 1 4555 21 view .LVU4976 15039 0040 0222 movs r2, #2 15040 0042 1343 orrs r3, r2 15041 0044 4364 str r3, [r0, #68] ARM GAS /tmp/ccuRhBPx.s page 475 4558:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15042 .loc 1 4558 5 is_stmt 1 view .LVU4977 15043 0046 0368 ldr r3, [r0] 15044 0048 FF32 adds r2, r2, #255 15045 004a FF32 adds r2, r2, #255 15046 004c DA61 str r2, [r3, #28] 15047 .L924: 4562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15048 .loc 1 4562 3 view .LVU4978 4562:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15049 .loc 1 4562 12 is_stmt 0 view .LVU4979 15050 004e 416C ldr r1, [r0, #68] 15051 .LVL1148: 4565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 15052 .loc 1 4565 3 is_stmt 1 view .LVU4980 4565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 15053 .loc 1 4565 17 is_stmt 0 view .LVU4981 15054 0050 0B23 movs r3, #11 4565:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 15055 .loc 1 4565 6 view .LVU4982 15056 0052 0B42 tst r3, r1 15057 0054 00D1 bne .L932 15058 .LVL1149: 15059 .L921: 4569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15060 .loc 1 4569 1 view .LVU4983 15061 @ sp needed 15062 0056 70BD pop {r4, r5, r6, pc} 15063 .LVL1150: 15064 .L932: 4567:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15065 .loc 1 4567 5 is_stmt 1 view .LVU4984 15066 0058 FFF7FEFF bl I2C_ITError 15067 .LVL1151: 4569:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15068 .loc 1 4569 1 is_stmt 0 view .LVU4985 15069 005c FBE7 b .L921 15070 .cfi_endproc 15071 .LFE75: 15073 .section .text.I2C_DMAAbort,"ax",%progbits 15074 .align 1 15075 .syntax unified 15076 .code 16 15077 .thumb_func 15079 I2C_DMAAbort: 15080 .LVL1152: 15081 .LFB111: 6704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 15082 .loc 1 6704 1 is_stmt 1 view -0 15083 .cfi_startproc 15084 @ args = 0, pretend = 0, frame = 0 15085 @ frame_needed = 0, uses_anonymous_args = 0 6704:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 15086 .loc 1 6704 1 is_stmt 0 view .LVU4987 15087 0000 10B5 push {r4, lr} 15088 .cfi_def_cfa_offset 8 15089 .cfi_offset 4, -8 ARM GAS /tmp/ccuRhBPx.s page 476 15090 .cfi_offset 14, -4 6706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15091 .loc 1 6706 3 is_stmt 1 view .LVU4988 6706:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15092 .loc 1 6706 22 is_stmt 0 view .LVU4989 15093 0002 406A ldr r0, [r0, #36] 15094 .LVL1153: 6709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 15095 .loc 1 6709 3 is_stmt 1 view .LVU4990 6709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 15096 .loc 1 6709 11 is_stmt 0 view .LVU4991 15097 0004 836B ldr r3, [r0, #56] 6709:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 15098 .loc 1 6709 6 view .LVU4992 15099 0006 002B cmp r3, #0 15100 0008 01D0 beq .L934 6711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15101 .loc 1 6711 5 is_stmt 1 view .LVU4993 6711:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15102 .loc 1 6711 37 is_stmt 0 view .LVU4994 15103 000a 0022 movs r2, #0 15104 000c 5A63 str r2, [r3, #52] 15105 .L934: 6713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 15106 .loc 1 6713 3 is_stmt 1 view .LVU4995 6713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 15107 .loc 1 6713 11 is_stmt 0 view .LVU4996 15108 000e C36B ldr r3, [r0, #60] 6713:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** { 15109 .loc 1 6713 6 view .LVU4997 15110 0010 002B cmp r3, #0 15111 0012 01D0 beq .L935 6715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15112 .loc 1 6715 5 is_stmt 1 view .LVU4998 6715:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15113 .loc 1 6715 37 is_stmt 0 view .LVU4999 15114 0014 0022 movs r2, #0 15115 0016 5A63 str r2, [r3, #52] 15116 .L935: 6718:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15117 .loc 1 6718 3 is_stmt 1 view .LVU5000 15118 0018 FFF7FEFF bl I2C_TreatErrorCallback 15119 .LVL1154: 6719:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15120 .loc 1 6719 1 is_stmt 0 view .LVU5001 15121 @ sp needed 15122 001c 10BD pop {r4, pc} 15123 .cfi_endproc 15124 .LFE111: 15126 .section .text.HAL_I2C_GetState,"ax",%progbits 15127 .align 1 15128 .global HAL_I2C_GetState 15129 .syntax unified 15130 .code 16 15131 .thumb_func 15133 HAL_I2C_GetState: 15134 .LVL1155: ARM GAS /tmp/ccuRhBPx.s page 477 15135 .LFB86: 4760:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** /* Return I2C handle state */ 15136 .loc 1 4760 1 is_stmt 1 view -0 15137 .cfi_startproc 15138 @ args = 0, pretend = 0, frame = 0 15139 @ frame_needed = 0, uses_anonymous_args = 0 15140 @ link register save eliminated. 4762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15141 .loc 1 4762 3 view .LVU5003 4762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15142 .loc 1 4762 14 is_stmt 0 view .LVU5004 15143 0000 4123 movs r3, #65 15144 0002 C05C ldrb r0, [r0, r3] 15145 .LVL1156: 4762:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15146 .loc 1 4762 14 view .LVU5005 15147 0004 C0B2 uxtb r0, r0 4763:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15148 .loc 1 4763 1 view .LVU5006 15149 @ sp needed 15150 0006 7047 bx lr 15151 .cfi_endproc 15152 .LFE86: 15154 .section .text.HAL_I2C_GetMode,"ax",%progbits 15155 .align 1 15156 .global HAL_I2C_GetMode 15157 .syntax unified 15158 .code 16 15159 .thumb_func 15161 HAL_I2C_GetMode: 15162 .LVL1157: 15163 .LFB87: 4772:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->Mode; 15164 .loc 1 4772 1 is_stmt 1 view -0 15165 .cfi_startproc 15166 @ args = 0, pretend = 0, frame = 0 15167 @ frame_needed = 0, uses_anonymous_args = 0 15168 @ link register save eliminated. 4773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15169 .loc 1 4773 3 view .LVU5008 4773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15170 .loc 1 4773 14 is_stmt 0 view .LVU5009 15171 0000 4223 movs r3, #66 15172 0002 C05C ldrb r0, [r0, r3] 15173 .LVL1158: 4773:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15174 .loc 1 4773 14 view .LVU5010 15175 0004 C0B2 uxtb r0, r0 4774:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15176 .loc 1 4774 1 view .LVU5011 15177 @ sp needed 15178 0006 7047 bx lr 15179 .cfi_endproc 15180 .LFE87: 15182 .section .text.HAL_I2C_GetError,"ax",%progbits 15183 .align 1 15184 .global HAL_I2C_GetError ARM GAS /tmp/ccuRhBPx.s page 478 15185 .syntax unified 15186 .code 16 15187 .thumb_func 15189 HAL_I2C_GetError: 15190 .LVL1159: 15191 .LFB88: 4783:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** return hi2c->ErrorCode; 15192 .loc 1 4783 1 is_stmt 1 view -0 15193 .cfi_startproc 15194 @ args = 0, pretend = 0, frame = 0 15195 @ frame_needed = 0, uses_anonymous_args = 0 15196 @ link register save eliminated. 4784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15197 .loc 1 4784 3 view .LVU5013 4784:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** } 15198 .loc 1 4784 14 is_stmt 0 view .LVU5014 15199 0000 406C ldr r0, [r0, #68] 15200 .LVL1160: 4785:Drivers/STM32F0xx_HAL_Driver/Src/stm32f0xx_hal_i2c.c **** 15201 .loc 1 4785 1 view .LVU5015 15202 @ sp needed 15203 0002 7047 bx lr 15204 .cfi_endproc 15205 .LFE88: 15207 .text 15208 .Letext0: 15209 .file 2 "/home/chiangni/.config/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/ 15210 .file 3 "/home/chiangni/.config/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/ 15211 .file 4 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f042x6.h" 15212 .file 5 "Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h" 15213 .file 6 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h" 15214 .file 7 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h" 15215 .file 8 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_i2c.h" 15216 .file 9 "Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h" ARM GAS /tmp/ccuRhBPx.s page 479 DEFINED SYMBOLS *ABS*:00000000 stm32f0xx_hal_i2c.c /tmp/ccuRhBPx.s:19 .text.I2C_Flush_TXDR:00000000 $t /tmp/ccuRhBPx.s:24 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR /tmp/ccuRhBPx.s:64 .text.I2C_TransferConfig:00000000 $t /tmp/ccuRhBPx.s:69 .text.I2C_TransferConfig:00000000 I2C_TransferConfig /tmp/ccuRhBPx.s:127 .text.I2C_TransferConfig:00000030 $d /tmp/ccuRhBPx.s:132 .text.I2C_Enable_IRQ:00000000 $t /tmp/ccuRhBPx.s:137 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ /tmp/ccuRhBPx.s:322 .text.I2C_Enable_IRQ:00000090 $d /tmp/ccuRhBPx.s:13962 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA /tmp/ccuRhBPx.s:13641 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA /tmp/ccuRhBPx.s:13252 .text.I2C_Mem_ISR_DMA:00000000 I2C_Mem_ISR_DMA /tmp/ccuRhBPx.s:329 .text.I2C_Disable_IRQ:00000000 $t /tmp/ccuRhBPx.s:334 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ /tmp/ccuRhBPx.s:475 .text.I2C_ConvertOtherXferOptions:00000000 $t /tmp/ccuRhBPx.s:480 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions /tmp/ccuRhBPx.s:525 .text.I2C_IsErrorOccurred:00000000 $t /tmp/ccuRhBPx.s:530 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred /tmp/ccuRhBPx.s:847 .text.I2C_IsErrorOccurred:00000114 $d /tmp/ccuRhBPx.s:852 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t /tmp/ccuRhBPx.s:857 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout /tmp/ccuRhBPx.s:963 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t /tmp/ccuRhBPx.s:968 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout /tmp/ccuRhBPx.s:1084 .text.I2C_RequestMemoryWrite:00000000 $t /tmp/ccuRhBPx.s:1089 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite /tmp/ccuRhBPx.s:1209 .text.I2C_RequestMemoryWrite:00000074 $d /tmp/ccuRhBPx.s:1214 .text.I2C_RequestMemoryRead:00000000 $t /tmp/ccuRhBPx.s:1219 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead /tmp/ccuRhBPx.s:1335 .text.I2C_RequestMemoryRead:00000070 $d /tmp/ccuRhBPx.s:1340 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t /tmp/ccuRhBPx.s:1345 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout /tmp/ccuRhBPx.s:1451 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t /tmp/ccuRhBPx.s:1456 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout /tmp/ccuRhBPx.s:1625 .text.I2C_WaitOnRXNEFlagUntilTimeout:000000a0 $d /tmp/ccuRhBPx.s:1630 .text.HAL_I2C_MspInit:00000000 $t /tmp/ccuRhBPx.s:1636 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit /tmp/ccuRhBPx.s:1652 .text.HAL_I2C_Init:00000000 $t /tmp/ccuRhBPx.s:1658 .text.HAL_I2C_Init:00000000 HAL_I2C_Init /tmp/ccuRhBPx.s:1867 .text.HAL_I2C_Init:000000c0 $d /tmp/ccuRhBPx.s:1874 .text.HAL_I2C_MspDeInit:00000000 $t /tmp/ccuRhBPx.s:1880 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit /tmp/ccuRhBPx.s:1896 .text.HAL_I2C_DeInit:00000000 $t /tmp/ccuRhBPx.s:1902 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit /tmp/ccuRhBPx.s:1974 .text.HAL_I2C_Master_Transmit:00000000 $t /tmp/ccuRhBPx.s:1980 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit /tmp/ccuRhBPx.s:2304 .text.HAL_I2C_Master_Transmit:0000016c $d /tmp/ccuRhBPx.s:2310 .text.HAL_I2C_Master_Receive:00000000 $t /tmp/ccuRhBPx.s:2316 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive /tmp/ccuRhBPx.s:2640 .text.HAL_I2C_Master_Receive:0000016c $d /tmp/ccuRhBPx.s:2646 .text.HAL_I2C_Slave_Transmit:00000000 $t /tmp/ccuRhBPx.s:2652 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit /tmp/ccuRhBPx.s:3104 .text.HAL_I2C_Slave_Transmit:000001e4 $d /tmp/ccuRhBPx.s:3109 .text.HAL_I2C_Slave_Receive:00000000 $t /tmp/ccuRhBPx.s:3115 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive /tmp/ccuRhBPx.s:3501 .text.HAL_I2C_Slave_Receive:0000018c $d /tmp/ccuRhBPx.s:3506 .text.HAL_I2C_Master_Transmit_IT:00000000 $t ARM GAS /tmp/ccuRhBPx.s page 480 /tmp/ccuRhBPx.s:3512 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT /tmp/ccuRhBPx.s:3669 .text.HAL_I2C_Master_Transmit_IT:00000088 $d /tmp/ccuRhBPx.s:12860 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT /tmp/ccuRhBPx.s:3676 .text.HAL_I2C_Master_Receive_IT:00000000 $t /tmp/ccuRhBPx.s:3682 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT /tmp/ccuRhBPx.s:3839 .text.HAL_I2C_Master_Receive_IT:00000088 $d /tmp/ccuRhBPx.s:3846 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t /tmp/ccuRhBPx.s:3852 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT /tmp/ccuRhBPx.s:4001 .text.HAL_I2C_Slave_Transmit_IT:00000080 $d /tmp/ccuRhBPx.s:12240 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT /tmp/ccuRhBPx.s:4009 .text.HAL_I2C_Slave_Receive_IT:00000000 $t /tmp/ccuRhBPx.s:4015 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT /tmp/ccuRhBPx.s:4125 .text.HAL_I2C_Slave_Receive_IT:00000058 $d /tmp/ccuRhBPx.s:4133 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t /tmp/ccuRhBPx.s:4139 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA /tmp/ccuRhBPx.s:4479 .text.HAL_I2C_Master_Transmit_DMA:0000013c $d /tmp/ccuRhBPx.s:14333 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt /tmp/ccuRhBPx.s:14291 .text.I2C_DMAError:00000000 I2C_DMAError /tmp/ccuRhBPx.s:4489 .text.HAL_I2C_Master_Receive_DMA:00000000 $t /tmp/ccuRhBPx.s:4495 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA /tmp/ccuRhBPx.s:4832 .text.HAL_I2C_Master_Receive_DMA:00000138 $d /tmp/ccuRhBPx.s:14452 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt /tmp/ccuRhBPx.s:4842 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t /tmp/ccuRhBPx.s:4848 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA /tmp/ccuRhBPx.s:5174 .text.HAL_I2C_Slave_Transmit_DMA:00000130 $d /tmp/ccuRhBPx.s:10947 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt /tmp/ccuRhBPx.s:5183 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t /tmp/ccuRhBPx.s:5189 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA /tmp/ccuRhBPx.s:5440 .text.HAL_I2C_Slave_Receive_DMA:000000e4 $d /tmp/ccuRhBPx.s:11007 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt /tmp/ccuRhBPx.s:5449 .text.HAL_I2C_Mem_Write:00000000 $t /tmp/ccuRhBPx.s:5455 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write /tmp/ccuRhBPx.s:5829 .text.HAL_I2C_Mem_Write:0000019c $d /tmp/ccuRhBPx.s:5834 .text.HAL_I2C_Mem_Read:00000000 $t /tmp/ccuRhBPx.s:5840 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read /tmp/ccuRhBPx.s:6216 .text.HAL_I2C_Mem_Read:000001a0 $d /tmp/ccuRhBPx.s:6222 .text.HAL_I2C_Mem_Write_IT:00000000 $t /tmp/ccuRhBPx.s:6228 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT /tmp/ccuRhBPx.s:6433 .text.HAL_I2C_Mem_Write_IT:000000c4 $d /tmp/ccuRhBPx.s:14571 .text.I2C_Mem_ISR_IT:00000000 I2C_Mem_ISR_IT /tmp/ccuRhBPx.s:6440 .text.HAL_I2C_Mem_Read_IT:00000000 $t /tmp/ccuRhBPx.s:6446 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT /tmp/ccuRhBPx.s:6650 .text.HAL_I2C_Mem_Read_IT:000000c4 $d /tmp/ccuRhBPx.s:6657 .text.HAL_I2C_Mem_Write_DMA:00000000 $t /tmp/ccuRhBPx.s:6663 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA /tmp/ccuRhBPx.s:6995 .text.HAL_I2C_Mem_Write_DMA:00000144 $d /tmp/ccuRhBPx.s:7004 .text.HAL_I2C_Mem_Read_DMA:00000000 $t /tmp/ccuRhBPx.s:7010 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA /tmp/ccuRhBPx.s:7342 .text.HAL_I2C_Mem_Read_DMA:00000144 $d /tmp/ccuRhBPx.s:7351 .text.HAL_I2C_IsDeviceReady:00000000 $t /tmp/ccuRhBPx.s:7357 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady /tmp/ccuRhBPx.s:7733 .text.HAL_I2C_IsDeviceReady:00000184 $d /tmp/ccuRhBPx.s:7739 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t /tmp/ccuRhBPx.s:7745 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT /tmp/ccuRhBPx.s:7951 .text.HAL_I2C_Master_Seq_Transmit_IT:000000b0 $d /tmp/ccuRhBPx.s:7957 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t /tmp/ccuRhBPx.s:7963 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA ARM GAS /tmp/ccuRhBPx.s page 481 /tmp/ccuRhBPx.s:8328 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000015c $d /tmp/ccuRhBPx.s:8337 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t /tmp/ccuRhBPx.s:8343 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT /tmp/ccuRhBPx.s:8549 .text.HAL_I2C_Master_Seq_Receive_IT:000000b0 $d /tmp/ccuRhBPx.s:8555 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t /tmp/ccuRhBPx.s:8561 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA /tmp/ccuRhBPx.s:8926 .text.HAL_I2C_Master_Seq_Receive_DMA:0000015c $d /tmp/ccuRhBPx.s:8935 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t /tmp/ccuRhBPx.s:8941 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT /tmp/ccuRhBPx.s:9171 .text.HAL_I2C_Slave_Seq_Transmit_IT:000000d0 $d /tmp/ccuRhBPx.s:15079 .text.I2C_DMAAbort:00000000 I2C_DMAAbort /tmp/ccuRhBPx.s:9179 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t /tmp/ccuRhBPx.s:9185 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA /tmp/ccuRhBPx.s:9603 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000190 $d /tmp/ccuRhBPx.s:9614 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t /tmp/ccuRhBPx.s:9620 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT /tmp/ccuRhBPx.s:9850 .text.HAL_I2C_Slave_Seq_Receive_IT:000000d0 $d /tmp/ccuRhBPx.s:9859 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t /tmp/ccuRhBPx.s:9865 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA /tmp/ccuRhBPx.s:10278 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000018c $d /tmp/ccuRhBPx.s:10289 .text.HAL_I2C_EnableListen_IT:00000000 $t /tmp/ccuRhBPx.s:10295 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT /tmp/ccuRhBPx.s:10344 .text.HAL_I2C_EnableListen_IT:00000024 $d /tmp/ccuRhBPx.s:10349 .text.HAL_I2C_DisableListen_IT:00000000 $t /tmp/ccuRhBPx.s:10355 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT /tmp/ccuRhBPx.s:10427 .text.HAL_I2C_Master_Abort_IT:00000000 $t /tmp/ccuRhBPx.s:10433 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT /tmp/ccuRhBPx.s:10564 .text.HAL_I2C_Master_Abort_IT:0000007c $d /tmp/ccuRhBPx.s:10569 .text.HAL_I2C_EV_IRQHandler:00000000 $t /tmp/ccuRhBPx.s:10575 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler /tmp/ccuRhBPx.s:10614 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t /tmp/ccuRhBPx.s:10620 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback /tmp/ccuRhBPx.s:10636 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t /tmp/ccuRhBPx.s:10642 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback /tmp/ccuRhBPx.s:10658 .text.I2C_ITMasterSeqCplt:00000000 $t /tmp/ccuRhBPx.s:10663 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt /tmp/ccuRhBPx.s:10755 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t /tmp/ccuRhBPx.s:10761 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback /tmp/ccuRhBPx.s:10777 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t /tmp/ccuRhBPx.s:10783 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback /tmp/ccuRhBPx.s:10799 .text.I2C_ITSlaveSeqCplt:00000000 $t /tmp/ccuRhBPx.s:10804 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt /tmp/ccuRhBPx.s:10936 .text.I2C_ITSlaveSeqCplt:0000007c $d /tmp/ccuRhBPx.s:10942 .text.I2C_DMASlaveTransmitCplt:00000000 $t /tmp/ccuRhBPx.s:10997 .text.I2C_DMASlaveTransmitCplt:00000024 $d /tmp/ccuRhBPx.s:11002 .text.I2C_DMASlaveReceiveCplt:00000000 $t /tmp/ccuRhBPx.s:11065 .text.I2C_DMASlaveReceiveCplt:00000028 $d /tmp/ccuRhBPx.s:11071 .text.HAL_I2C_AddrCallback:00000000 $t /tmp/ccuRhBPx.s:11077 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback /tmp/ccuRhBPx.s:11095 .text.I2C_ITAddrCplt:00000000 $t /tmp/ccuRhBPx.s:11100 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt /tmp/ccuRhBPx.s:11279 .text.HAL_I2C_ListenCpltCallback:00000000 $t /tmp/ccuRhBPx.s:11285 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback /tmp/ccuRhBPx.s:11301 .text.I2C_ITListenCplt:00000000 $t /tmp/ccuRhBPx.s:11306 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt /tmp/ccuRhBPx.s:11413 .text.I2C_ITListenCplt:00000060 $d /tmp/ccuRhBPx.s:11419 .text.HAL_I2C_MemTxCpltCallback:00000000 $t ARM GAS /tmp/ccuRhBPx.s page 482 /tmp/ccuRhBPx.s:11425 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback /tmp/ccuRhBPx.s:11441 .text.HAL_I2C_MemRxCpltCallback:00000000 $t /tmp/ccuRhBPx.s:11447 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback /tmp/ccuRhBPx.s:11463 .text.HAL_I2C_ErrorCallback:00000000 $t /tmp/ccuRhBPx.s:11469 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback /tmp/ccuRhBPx.s:11485 .text.HAL_I2C_AbortCpltCallback:00000000 $t /tmp/ccuRhBPx.s:11491 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback /tmp/ccuRhBPx.s:11507 .text.I2C_TreatErrorCallback:00000000 $t /tmp/ccuRhBPx.s:11512 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback /tmp/ccuRhBPx.s:11572 .text.I2C_ITError:00000000 $t /tmp/ccuRhBPx.s:11577 .text.I2C_ITError:00000000 I2C_ITError /tmp/ccuRhBPx.s:11869 .text.I2C_ITError:0000011c $d /tmp/ccuRhBPx.s:11879 .text.I2C_ITSlaveCplt:00000000 $t /tmp/ccuRhBPx.s:11884 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt /tmp/ccuRhBPx.s:12225 .text.I2C_ITSlaveCplt:00000150 $d /tmp/ccuRhBPx.s:12235 .text.I2C_Slave_ISR_IT:00000000 $t /tmp/ccuRhBPx.s:12561 .text.I2C_Slave_ISR_IT:00000148 $d /tmp/ccuRhBPx.s:12566 .text.I2C_ITMasterCplt:00000000 $t /tmp/ccuRhBPx.s:12571 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt /tmp/ccuRhBPx.s:12849 .text.I2C_ITMasterCplt:00000110 $d /tmp/ccuRhBPx.s:12855 .text.I2C_Master_ISR_IT:00000000 $t /tmp/ccuRhBPx.s:13242 .text.I2C_Master_ISR_IT:00000174 $d /tmp/ccuRhBPx.s:13247 .text.I2C_Mem_ISR_DMA:00000000 $t /tmp/ccuRhBPx.s:13630 .text.I2C_Mem_ISR_DMA:00000184 $d /tmp/ccuRhBPx.s:13636 .text.I2C_Slave_ISR_DMA:00000000 $t /tmp/ccuRhBPx.s:13952 .text.I2C_Slave_ISR_DMA:0000012c $d /tmp/ccuRhBPx.s:13957 .text.I2C_Master_ISR_DMA:00000000 $t /tmp/ccuRhBPx.s:14281 .text.I2C_Master_ISR_DMA:00000138 $d /tmp/ccuRhBPx.s:14286 .text.I2C_DMAError:00000000 $t /tmp/ccuRhBPx.s:14328 .text.I2C_DMAMasterTransmitCplt:00000000 $t /tmp/ccuRhBPx.s:14442 .text.I2C_DMAMasterTransmitCplt:00000060 $d /tmp/ccuRhBPx.s:14447 .text.I2C_DMAMasterReceiveCplt:00000000 $t /tmp/ccuRhBPx.s:14561 .text.I2C_DMAMasterReceiveCplt:00000060 $d /tmp/ccuRhBPx.s:14566 .text.I2C_Mem_ISR_IT:00000000 $t /tmp/ccuRhBPx.s:14950 .text.I2C_Mem_ISR_IT:00000170 $d /tmp/ccuRhBPx.s:14956 .text.HAL_I2C_ER_IRQHandler:00000000 $t /tmp/ccuRhBPx.s:14962 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler /tmp/ccuRhBPx.s:15074 .text.I2C_DMAAbort:00000000 $t /tmp/ccuRhBPx.s:15127 .text.HAL_I2C_GetState:00000000 $t /tmp/ccuRhBPx.s:15133 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState /tmp/ccuRhBPx.s:15155 .text.HAL_I2C_GetMode:00000000 $t /tmp/ccuRhBPx.s:15161 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode /tmp/ccuRhBPx.s:15183 .text.HAL_I2C_GetError:00000000 $t /tmp/ccuRhBPx.s:15189 .text.HAL_I2C_GetError:00000000 HAL_I2C_GetError UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort_IT HAL_DMA_GetState