ARM GAS /tmp/ccJ8PJrU.s page 1 1 .cpu cortex-m4 2 .arch armv7e-m 3 .fpu fpv4-sp-d16 4 .eabi_attribute 27, 1 5 .eabi_attribute 28, 1 6 .eabi_attribute 20, 1 7 .eabi_attribute 21, 1 8 .eabi_attribute 23, 3 9 .eabi_attribute 24, 1 10 .eabi_attribute 25, 1 11 .eabi_attribute 26, 1 12 .eabi_attribute 30, 1 13 .eabi_attribute 34, 1 14 .eabi_attribute 18, 4 15 .file "stm32f3xx_hal_i2c.c" 16 .text 17 .Ltext0: 18 .cfi_sections .debug_frame 19 .file 1 "Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c" 20 .section .text.I2C_Flush_TXDR,"ax",%progbits 21 .align 1 22 .syntax unified 23 .thumb 24 .thumb_func 26 I2C_Flush_TXDR: 27 .LVL0: 28 .LFB188: 1:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ****************************************************************************** 3:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @file stm32f3xx_hal_i2c.c 4:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @author MCD Application Team 5:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C HAL module driver. 6:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral: 8:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + IO operation functions 10:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * + Peripheral State and Errors functions 11:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * 12:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ****************************************************************************** 13:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @attention 14:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * 15:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * Copyright (c) 2016 STMicroelectronics. 16:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * All rights reserved. 17:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * 18:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This software is licensed under terms that can be found in the LICENSE file 19:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in the root directory of this software component. 20:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 21:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * 22:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ****************************************************************************** 23:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim 24:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ============================================================================== 25:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### How to use this driver ##### 26:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ============================================================================== 27:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 28:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The I2C HAL driver can be used as follows: 29:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 30:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example: ARM GAS /tmp/ccJ8PJrU.s page 2 31:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef hi2c; 32:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 33:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API: 34:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) Enable the I2Cx interface clock 35:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) I2C pins configuration 36:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs 37:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain 38:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process 39:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority 40:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel 41:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process 42:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for 43:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the transmit or receive channel 44:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using 45:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the DMA handle parameters 46:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx channel 47:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle 48:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on 49:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the DMA Tx or Rx channel 50:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 51:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres 52:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure 53:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 54:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level H 55:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API. 56:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 57:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceRead 58:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 59:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver : 60:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 61:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Polling mode IO operation *** 62:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ================================= 63:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 64:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using HAL_I2C_Master_Transmit( 65:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using HAL_I2C_Master_Receive() 66:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Transmit() 67:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Receive() 68:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 69:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Polling mode IO MEM operation *** 70:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ===================================== 71:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 72:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using HAL_I2C_Mem_W 73:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using HAL_I2C_Mem_ 74:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 75:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 76:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode IO operation *** 77:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =================================== 78:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 79:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Trans 80:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can 81:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() 82:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Receiv 83:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can 84:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 85:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Transmi 86:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can 87:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() ARM GAS /tmp/ccJ8PJrU.s page 3 88:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Receive_ 89:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can 90:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 91:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 92:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 93:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Abort a master or memory I2C process communication with Interrupt using HAL_I2C_Master_Ab 94:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 95:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 96:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 97:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 98:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 99:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation *** 101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ========================================================== 102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition 104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** when a direction change during transfer 105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer 107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Option field values are defined through I2C_XFEROPTIONS and are listed below: 108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfac 109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** no sequential mode 110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con 111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and data to transfer without a final stop condition 112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a 113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** start condition, address and data to transfer without a final stop cond 114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** an then permit a call the same master sequential interface several time 115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (like HAL_I2C_Master_Seq_Transmit_IT() then HAL_I2C_Master_Seq_Transmit 116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA() then HAL_I2C_Master_Seq_Transmit_D 117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart 118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th 119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfer 120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases 121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart 122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th 123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfer 124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases 125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a re 126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** after several call of the same master sequential interface several time 127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (link with option I2C_FIRST_AND_NEXT_FRAME). 128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Usage can, transfer several bytes one by one using 129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT 130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT 131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA 132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA 133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** with option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME. 134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit 135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Receive sequence permit to call the opposite interface Receive or Tra 136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio 137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c 138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** each call of the same master sequential 139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** interface. 140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave 141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** each bytes using 142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT 143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT 144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA ARM GAS /tmp/ccJ8PJrU.s page 4 145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA 146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** with option I2C_FIRST_FRAME then I2C_OTHER_FRAME. 147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to 148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** generation of STOP condition. 149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Different sequential I2C interfaces are listed below: 151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using 152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT() or using HAL_I2C_Master_Seq_Transmit_DMA() 153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is execut 154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_MasterTxCpltC 155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using 156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Seq_Receive_IT() or using HAL_I2C_Master_Seq_Receive_DMA() 157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed 158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Abort a master or memory IT or DMA I2C process communication with Interrupt using HAL_I2 160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT() 163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_DisableListen_IT() 164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and users can 165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code to check the Address Match Code and the transmission direction reques 166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (Write/Read). 167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and users can 168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ListenCpltCallback() 169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using 170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Transmit_IT() or using HAL_I2C_Slave_Seq_Transmit_DMA() 171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is execute 172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCa 173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using 174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Receive_IT() or using HAL_I2C_Slave_Seq_Receive_DMA() 175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed a 176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Interrupt mode IO MEM operation *** 183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ======================================= 184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address 186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Write_IT() 187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can 188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback() 189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address 190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Read_IT() 191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can 192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback() 193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** DMA mode IO operation *** 197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ============================== 198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using 200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Transmit_DMA() 201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can ARM GAS /tmp/ccJ8PJrU.s page 5 202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() 203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using 204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Master_Receive_DMA() 205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can 206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using 208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Transmit_DMA() 209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can 210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() 211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using 212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Slave_Receive_DMA() 213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can 214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Abort a master or memory I2C process communication with Interrupt using HAL_I2C_Master_Ab 218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** DMA mode IO MEM operation *** 224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ================================= 225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using 227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Write_DMA() 228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can 229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback() 230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using 231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_Mem_Read_DMA() 232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can 233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback() 234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** I2C HAL driver macros list *** 239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ================================== 240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver. 242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE: Enable the I2C peripheral 244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE: Disable the I2C peripheral 245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode 246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not 247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag 248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt 249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt 250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *** Callback registration *** 252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ============================================= 253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1 255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks. 256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Use Functions HAL_I2C_RegisterCallback() or HAL_I2C_RegisterAddrCallback() 257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to register an interrupt callback. 258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] ARM GAS /tmp/ccJ8PJrU.s page 6 259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Function HAL_I2C_RegisterCallback() allows to register following callbacks: 260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. 261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. 262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. 263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. 264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. 265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. 266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. 267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. 268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. 269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. 270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. 271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and a pointer to the user callback function. 273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : HAL_I2C_RegisterAddrCall 275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Use function HAL_I2C_UnRegisterCallback to reset a callback to the default 277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** weak function. 278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle, 279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and the Callback ID. 280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This function allows to reset following callbacks: 281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. 282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. 283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. 284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. 285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. 286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. 287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. 288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. 289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. 290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. 291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. 292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : HAL_I2C_UnRegisterAddrCallback(). 294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** By default, after the HAL_I2C_Init() and when the state is HAL_I2C_STATE_RESET 296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions: 297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** examples HAL_I2C_MasterTxCpltCallback(), HAL_I2C_MasterRxCpltCallback(). 298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are 299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** reset to the legacy weak functions in the HAL_I2C_Init()/ HAL_I2C_DeInit() only when 300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** these callbacks are null (not registered beforehand). 301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the HAL_I2C_Init()/ HAL_I2C_DeInit() 302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state. 303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Callbacks can be registered/unregistered in HAL_I2C_STATE_READY state only. 305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered 306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** in HAL_I2C_STATE_READY or HAL_I2C_STATE_RESET state, 307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. 308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks 309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** using HAL_I2C_RegisterCallback() before calling HAL_I2C_DeInit() 310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or HAL_I2C_Init() function. 311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or 313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks 314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** are set to the corresponding weak functions. 315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 7 316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros 318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim 320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/ 323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #include "stm32f3xx_hal.h" 324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup STM32F3xx_HAL_Driver 326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C I2C 330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C HAL module driver 331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED 335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/ 337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/ 338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define 340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */ 343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */ 344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */ 345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */ 346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */ 347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */ 348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */ 349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */ 350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */ 351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */ 352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U 354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define SLAVE_ADDR_SHIFT 7U 355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define SLAVE_ADDR_MSK 0x06U 356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */ 358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | \ 359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_STATE_BUSY_RX) & \ 360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY)))) 361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Mask State define, keep only RX and TX bits */ 362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE)) 363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Default Value */ 364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) 366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Master Busy TX, combinaison of State LSB and Mode enum */ 367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) 369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Master Busy RX, combinaison of State LSB and Mode enum */ 370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) 372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Slave Busy TX, combinaison of State LSB and Mode enum */ ARM GAS /tmp/ccJ8PJrU.s page 8 373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) 375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Slave Busy RX, combinaison of State LSB and Mode enum */ 376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) 378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Memory Busy TX, combinaison of State LSB and Mode enum */ 379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) 381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*!< Memory Busy RX, combinaison of State LSB and Mode enum */ 382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */ 385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with 386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ 387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with 388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ 389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /*!< Bit field can be combinated with @ref I2 390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and @ref I2C_XFER_RX_IT */ 391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /*!< Bit definition to manage addition of glo 393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and NACK treatment */ 394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /*!< Bit definition to manage only STOP evene 395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /*!< Bit definition to manage only Reload of 396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */ 398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U) 399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} 401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private macros ------------------------------------------------------------*/ 404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup I2C_Private_Macro 405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Macro to get remaining data to transfer on DMA side */ 408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) __HAL_DMA_GET_COUNTER(__HANDLE__) 409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} 411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/ 414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/ 415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions 417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle DMA transfer */ 420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma); 421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma); 422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma); 423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma); 424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma); 425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma); 426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); ARM GAS /tmp/ccJ8PJrU.s page 9 430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c); 431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c); 432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode); 436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart); 441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart); 444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */ 446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources); 448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources); 450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources); 452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources); 454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources); 456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources); 458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */ 460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart); 462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart); 464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart); 466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart); 468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart); 470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */ 472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to treat different error callback */ 476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c); 477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to flush TXDR register */ 479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c); 480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */ 482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Request); 484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Private function to Convert Specific options */ 486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c); ARM GAS /tmp/ccJ8PJrU.s page 10 487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} 489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/ 492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions 494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions 498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initialization and Configuration functions 499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * 500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim 501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================================================== 502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### Initialization and de-initialization functions ##### 503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================================================== 504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and 505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** deinitialize the I2Cx peripheral: 506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures 508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). 509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with 511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the selected configuration: 512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Clock Timing 513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 1 514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Addressing mode (Master, Slave) 515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Dual Addressing mode 516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 2 517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Own Address 2 Mask 518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) General call mode 519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Nostretch mode 520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration 522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** of the selected I2Cx peripheral. 523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim 525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters 530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle. 531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */ 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c == NULL) 539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ ARM GAS /tmp/ccJ8PJrU.s page 11 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET) 554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Allocate lock resource and initialize it */ 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED; 557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the I2C Callback settings */ 560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback 561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback 562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback 563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback 564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback 565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback 570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL) 572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ 574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c); 578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c); 581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the selected I2C peripheral */ 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ 590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */ 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; 592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ 594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */ 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; 596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */ 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) 599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); ARM GAS /tmp/ccJ8PJrU.s page 12 601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */ 603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); 605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/ 608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */ 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** SET_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10); 612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear the I2C ADD10 bit */ 616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10); 617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); 620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ 622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */ 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; 624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */ 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \ 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/ 630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */ 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); 632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the selected I2C peripheral */ 634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c); 635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral. 646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) 651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */ 653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c == NULL) 654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 13 658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */ 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL) 668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ 670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c); 674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c); 677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Release Lock */ 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Initialize the I2C MSP. 692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file 703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP. 708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) 713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ ARM GAS /tmp/ccJ8PJrU.s page 14 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file 719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Register a User I2C Callback 725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * To be used instead of the weak predefined callback 726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note The HAL_I2C_RegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_RES 727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * to register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID. 728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered 731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values: 732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pCallback pointer to the Callback function 744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb 747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback) 748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (pCallback == NULL) 752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID) 762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback; 765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback; 769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : ARM GAS /tmp/ccJ8PJrU.s page 15 772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback; 773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback; 777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback; 781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback; 785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback; 789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback; 793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback; 797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default : 808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID) 819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default : ARM GAS /tmp/ccJ8PJrU.s page 16 829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status; 847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Unregister an I2C Callback 851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback 852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note The HAL_I2C_UnRegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_R 853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * to un-register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID. 854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered 857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values: 858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values: 859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal 873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID) 879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb 882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb ARM GAS /tmp/ccJ8PJrU.s page 17 886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba 890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba 894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac 898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default : 925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** switch (CallbackID) 936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit ARM GAS /tmp/ccJ8PJrU.s page 18 943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** default : 946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status; 964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback 968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback 969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function 972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC 975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (pCallback == NULL) 979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = pCallback; 989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status; ARM GAS /tmp/ccJ8PJrU.s page 19 1000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback 1004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal 1005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) 1010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 1014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ 1016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update the error code */ 1020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 1021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return error status */ 1023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 1024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status; 1027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} 1033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions 1036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Data transfers functions 1037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * 1038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim 1039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================================================== 1040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### IO operation functions ##### 1041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================================================== 1042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 1043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data 1044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transfers. 1045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) There are two modes of transfer: 1047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode. 1048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The status of all data processing is returned by the same function 1049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** after finishing transfer. 1050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts 1051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup. 1052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** The end of the data processing will be indicated through the 1053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when 1054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** using DMA mode. 1055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) Blocking mode functions are : ARM GAS /tmp/ccJ8PJrU.s page 20 1057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit() 1058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive() 1059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit() 1060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive() 1061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write() 1062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read() 1063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady() 1064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are : 1066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT() 1067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT() 1068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT() 1069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT() 1070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT() 1071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT() 1072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT() 1073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT() 1074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT() 1075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT() 1076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT() 1077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT() 1078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT() 1079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are : 1081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA() 1082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA() 1083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA() 1084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA() 1085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA() 1086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA() 1087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA() 1088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA() 1089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA() 1090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA() 1091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode: 1093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback() 1094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback() 1095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback() 1096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback() 1097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback() 1098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback() 1099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback() 1100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback() 1101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback() 1102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback() 1103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim 1105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 1106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode. 1110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface ARM GAS /tmp/ccJ8PJrU.s page 21 1114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 1117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD 1120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 1124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 1146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */ 1161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 1166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 1169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ ARM GAS /tmp/ccJ8PJrU.s page 22 1171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode, 1173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 1178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, 1180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 1195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 1198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 23 1228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 1230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode. 1251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 1258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa 1261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 1264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccJ8PJrU.s page 24 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 1286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 1288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U; 1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 1315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 1318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 25 1342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 1350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode. 1371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 1376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout) 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t tmpXferCount; 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef error; 1384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; ARM GAS /tmp/ccJ8PJrU.s page 26 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 1406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 1412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */ 1414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 1419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 1421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */ 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If 10bit addressing mode is selected */ 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 1440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 1448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */ 1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 27 1456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */ 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) 1459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 1484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 1486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until AF flag is set */ 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error = I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart); 1490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (error != HAL_OK) 1492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */ 1494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 1495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0 */ 1496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpXferCount = hi2c->XferCount; 1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 1499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset ErrorCode to NONE */ 1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ ARM GAS /tmp/ccJ8PJrU.s page 28 1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear AF flag */ 1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 1517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP flag */ 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode 1558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 1563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout) 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 1569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 29 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 1592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */ 1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */ 1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) 1609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */ 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) 1625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ ARM GAS /tmp/ccJ8PJrU.s page 30 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 1631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 1634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 1644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 1647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP flag */ 1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 1666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 31 1684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt 1687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size) 1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 1699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 1732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */ 1736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; ARM GAS /tmp/ccJ8PJrU.s page 32 1741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 1744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode, 1746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, 1751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 1760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 1763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt 1777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t * 1786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size) 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 1789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ ARM GAS /tmp/ccJ8PJrU.s page 33 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U; 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 1822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ 1824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 1831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 1834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 1837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt 1848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) ARM GAS /tmp/ccJ8PJrU.s page 34 1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 1877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */ 1879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 1884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 1887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 1895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 1898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 1901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt ARM GAS /tmp/ccJ8PJrU.s page 35 1912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 1917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 1945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 1948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 1951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 1953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 1955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 1961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA 1962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 1964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 1967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 1968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status ARM GAS /tmp/ccJ8PJrU.s page 36 1969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 1970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size) 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 1976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 1982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 1996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */ 2011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 2016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 2020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 37 2026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 2028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 2039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 2058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART 2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), 2060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 2061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 38 2083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 2098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, I2C_AUTOEND_MODE, 2100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 2101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 2110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA 2125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 2134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size) 2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) ARM GAS /tmp/ccJ8PJrU.s page 39 2140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U; 2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 2176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 2186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 2187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 40 2197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 2206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART * 2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 2208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 2245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current ARM GAS /tmp/ccJ8PJrU.s page 41 2254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 2256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 2257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 2260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA 2272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 2305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */ 2307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ ARM GAS /tmp/ccJ8PJrU.s page 42 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 2312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 2315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 2318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 2323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, 2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 2334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 2335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 43 2368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA 2408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 44 2425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 2443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 2453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 2454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ ARM GAS /tmp/ccJ8PJrU.s page 45 2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address 2512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 2517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 2521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre 2524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti 2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 46 2539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 2558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL 2561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 2572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 2577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do 2580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 2592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 2595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 47 2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 2628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address 2649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface ARM GAS /tmp/ccJ8PJrU.s page 48 2653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 2654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 2658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres 2661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim 2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 2695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_ 2698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 2705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U; 2709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, ARM GAS /tmp/ccJ8PJrU.s page 49 2710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do 2720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) 2723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 2729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 2732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 2735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U; 2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 2748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ ARM GAS /tmp/ccJ8PJrU.s page 50 2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres 2787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 2792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 2798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ ARM GAS /tmp/ccJ8PJrU.s page 51 2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0U; 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 2830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 2833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */ 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 2836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */ 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 2839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 2841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 2845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 2848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_W 2851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 2861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre 2875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 2880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address ARM GAS /tmp/ccJ8PJrU.s page 52 2881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd 2886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 2917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 2919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 2920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */ 2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 2923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */ 2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 2926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 2928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 2932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 2935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_ ARM GAS /tmp/ccJ8PJrU.s page 53 2938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 2945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 2948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 2953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 2955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 2961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address 2962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 2964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 2967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 2969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 2970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 2971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 2972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA 2973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 2978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 2991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); ARM GAS /tmp/ccJ8PJrU.s page 54 2995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 3006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 3018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */ 3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 3021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */ 3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 3024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 3026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 3030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 3033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 3049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 3050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else ARM GAS /tmp/ccJ8PJrU.s page 55 3052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 3069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START 3070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 3079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 3099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 3107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address. 3108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains ARM GAS /tmp/ccJ8PJrU.s page 56 3109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 3110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 3113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 3114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 3115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be read 3116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 3117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 3118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 3119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 3124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 3125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 3152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 3164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address */ ARM GAS /tmp/ccJ8PJrU.s page 57 3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 3167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */ 3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 3170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 3172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 3176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 3179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 3195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 3196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_STAR 3216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ ARM GAS /tmp/ccJ8PJrU.s page 58 3223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 3225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 3245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 3253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Checks if target device is ready for communication. 3254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This function is used with Memory devices 3255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 3257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Trials Number of trials 3260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 3261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 3262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 3263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria 3264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout) 3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 3267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL; 3269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp1; 3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp2; 3272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 59 3280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do 3287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Start */ 3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress); 3290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 3292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/ 3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 3294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET)) 3299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 3301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 3303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */ 3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET) 3323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 3331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Device is ready */ 3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ ARM GAS /tmp/ccJ8PJrU.s page 60 3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 3340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/ 3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Trials */ 3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Trials++; 3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials); 3359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 3378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte 3379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 3382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 3385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 3386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 3388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 3389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; ARM GAS /tmp/ccJ8PJrU.s page 61 3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 3395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 3397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \ 3427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 3428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */ 3430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 3432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 3435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 3439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */ 3443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 62 3451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 3479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 3484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 3492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA. 3493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 3496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 3499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 3500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 3502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 3503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin 3504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; ARM GAS /tmp/ccJ8PJrU.s page 63 3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 3510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \ 3542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 3543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Preload TX register */ 3545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 3547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 3550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 3554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */ 3558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else ARM GAS /tmp/ccJ8PJrU.s page 64 3565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, 3592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 3593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ ARM GAS /tmp/ccJ8PJrU.s page 65 3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 3635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 3657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 3675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 66 3679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 3681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 3689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter 3690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 3693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 3696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 3697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 3699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 3700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8 3701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 3707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 67 3736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */ 3738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 3768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 3776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA 3777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 3780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 3783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 3784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 3786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 3787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; ARM GAS /tmp/ccJ8PJrU.s page 68 3793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** do not generate Restart Condition */ 3826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; ARM GAS /tmp/ccJ8PJrU.s page 69 3850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 3860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 3861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 3896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ ARM GAS /tmp/ccJ8PJrU.s page 70 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Slave Address */ 3918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 3920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 3921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 3928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 3929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* possible to enable all of these */ 3930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 3936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 3938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 3940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 3944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 3945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 3948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 3949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 3950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 3952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 3953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 3954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions) 3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 3957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp; 3958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 3960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 3963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 71 3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 3972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 3977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */ 3981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 3985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 3987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 3993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */ 3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 3996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 3999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 4020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 72 4021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 4032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 4034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 4036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 4045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 4049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 4050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 4052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t 4054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions) 4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp; 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 4076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ ARM GAS /tmp/ccJ8PJrU.s page 73 4078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */ 4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */ 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */ 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 4129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 74 4135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 4149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 4152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 4159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 4160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset XferSize */ 4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0; 4183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; ARM GAS /tmp/ccJ8PJrU.s page 75 4192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 4201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 4212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 4216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 4220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 4233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 4234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 4236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si 4238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions) 4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp; 4242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) ARM GAS /tmp/ccJ8PJrU.s page 76 4249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */ 4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */ 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 4304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ ARM GAS /tmp/ccJ8PJrU.s page 77 4306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 4316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 4320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param pData Pointer to data buffer 4333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Amount of data to be sent 4334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 4336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 4338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t XferOptions) 4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp; 4342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ ARM GAS /tmp/ccJ8PJrU.s page 78 4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable associated Interrupts */ 4366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */ 4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */ 4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 4413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable Address Acknowledge */ ARM GAS /tmp/ccJ8PJrU.s page 79 4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare transfer parameters */ 4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 4433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the DMA error callback */ 4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 4436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, 4443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 4444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset XferSize */ 4466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 0; 4467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C state */ 4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update I2C error code */ 4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 80 4477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 4485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 4496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 4500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 4504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt. 4513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 4516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) 4518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 4520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the Address Match interrupt */ 4525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 4528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 4532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 81 4534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt. 4537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C 4539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 4540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) 4542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp; 4545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */ 4547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 4548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; 4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 4551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 4554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable the Address Match interrupt */ 4556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 4559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_BUSY; 4563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Abort a master or memory I2C IT or DMA process communication with Interrupt. 4568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 4571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 4572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 4573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) 4575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 4577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmp_mode == HAL_I2C_MODE_MASTER) || (tmp_mode == HAL_I2C_MODE_MEM)) 4579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 4584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 4585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 4588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 4590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 82 4591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 4593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */ 4597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */ 4600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT; 4601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */ 4603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe 4604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP); 4605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** process unlock */ 4612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 4613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 4615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 4617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong usage of abort function */ 4619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */ 4620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} 4626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks 4629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 4630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request. 4634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) /* Derogation MISRAC2012-Rule-8.13 */ 4639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 4641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/ 4645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferISR != NULL) 4646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources); ARM GAS /tmp/ccJ8PJrU.s page 83 4648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request. 4653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) 4658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror; 4662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/ 4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \ 4665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; 4668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear BERR flag */ 4670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 4671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ 4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \ 4675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; 4678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear OVR flag */ 4680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 4681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ 4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \ 4685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; 4688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ARLO flag */ 4690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 4691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 4694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 4695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */ 4697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_ 4698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror); 4700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback. ARM GAS /tmp/ccJ8PJrU.s page 84 4705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) 4710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file 4716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback. 4721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) 4726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file 4732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback. 4736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) 4741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file 4747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback. 4752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) 4757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, ARM GAS /tmp/ccJ8PJrU.s page 85 4762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file 4763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Slave Address Match callback. 4768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE 4771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code 4772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM 4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(TransferDirection); 4779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(AddrMatchCode); 4780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file 4783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Listen Complete callback. 4788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) 4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file 4799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback. 4804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) 4809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file 4815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** ARM GAS /tmp/ccJ8PJrU.s page 86 4819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback. 4820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) 4825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file 4831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C error callback. 4836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) 4841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file 4847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C abort callback. 4852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 4855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) 4857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(hi2c); 4860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file 4863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} 4868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions 4871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions 4872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * 4873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @verbatim 4874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================================================== 4875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions ##### ARM GAS /tmp/ccJ8PJrU.s page 87 4876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** =============================================================================== 4877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** [..] 4878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral 4879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** and the data flow. 4880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** @endverbatim 4882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 4883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Return the I2C handle state. 4887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL state 4890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c) 4892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return I2C handle state */ 4894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->State; 4895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode. 4899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for I2C module 4901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL mode 4902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c) 4904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->Mode; 4906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Return the I2C error code. 4910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval I2C Error Code 4913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c) 4915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->ErrorCode; 4917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} 4921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @} 4925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions 4928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @{ 4929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 4932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt. ARM GAS /tmp/ccJ8PJrU.s page 88 4933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 4935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 4938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 4939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 4940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources) 4941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress; 4943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 4949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 4950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */ 4955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 4956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 4960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 4963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 4964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 4966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 4967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 4970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 4972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 4973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 4975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 4976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) == RESET) && \ 4978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 4979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))) 4980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 4983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 4986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 4989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 89 4990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 4991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 4992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ 4995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 4996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 4998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 5000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */ 5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 5005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U; 5007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 5013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 5020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 5021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 5025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 5032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 5046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) ARM GAS /tmp/ccJ8PJrU.s page 90 5047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 5053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 5054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */ 5056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 5057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 5068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 5075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */ 5081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 5082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 5088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with Interrupt. 5092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 5094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 5097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources) 5100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 5102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 91 5104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 5108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */ 5114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 5122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 5123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 5125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 5126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 5131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 5132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 5134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 5135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 5137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Memaddress == 0xFFFFFFFFU) 5140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 5143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 5145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 5146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 5148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 5149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write LSB part of Memory Address */ 5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress; 5154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */ 5156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 5157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ 5160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) ARM GAS /tmp/ccJ8PJrU.s page 92 5161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 5163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */ 5167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 5168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U; 5170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 5177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 5193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 5199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 5200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ; 5204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */ 5209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 5210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U; 5212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 93 5218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 5221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */ 5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 5229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 5234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */ 5240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 5241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 5247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt. 5251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 5253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 5256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources) 5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */ 5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if STOPF is set */ 5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags); 5272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 5274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) ARM GAS /tmp/ccJ8PJrU.s page 94 5275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 5278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0*/ 5279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 5288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 5290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 5295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 5310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 5324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 5325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 5327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ ARM GAS /tmp/ccJ8PJrU.s page 95 5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 5333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 5335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 5336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \ 5339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 5340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \ 5346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags); 5349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 5351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */ 5354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */ 5355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if all Data have already been sent */ 5356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */ 5357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 5358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write data to TXDR */ 5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 5361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 5364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 5366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 5367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 5371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 5381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 5387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 96 5389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA. 5391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 5393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 5396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources) 5399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress; 5401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 5402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */ 5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 5417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 5421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ 5424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC interrupt */ 5427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI); 5428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Recover Slave address */ 5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 5433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */ 5438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 5439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U; 5441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 97 5446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 5454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */ 5462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 5463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 5468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 5480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ 5494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 5501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 5502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 98 5503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */ 5504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 5505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 5516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */ 5524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 5529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with DMA. 5539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 5541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 5544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources) 5547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 5549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Locked */ 5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set corresponding Error Code */ ARM GAS /tmp/ccJ8PJrU.s page 99 5560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 5564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TXIS) != RESET) && \ 5571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write LSB part of Memory Address */ 5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress; 5575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Memaddress content */ 5577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 5578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ 5580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable only Error interrupt */ 5586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 5587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */ 5594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 5595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U; 5597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 5604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) ARM GAS /tmp/ccJ8PJrU.s page 100 5617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ 5633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable only Error and NACK interrupt for data transfer */ 5639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 5640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ; 5644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */ 5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 5650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U; 5652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 5661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */ 5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 5669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update XferCount value */ 5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 101 5674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable DMA Request */ 5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Master complete process */ 5688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 5699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA. 5703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 5705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 5708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t ITSources) 5711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 5714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 5715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process locked */ 5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if STOPF is set */ 5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags); 5725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ ARM GAS /tmp/ccJ8PJrU.s page 102 5731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0 */ 5732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) || 5734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 5735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */ 5737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 5738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET) 5740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) 5742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** treatdmanack = 1U; 5744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */ 5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 5750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) 5752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U) 5754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** treatdmanack = 1U; 5756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (treatdmanack == 1U) 5761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags); 5768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM 5770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else ARM GAS /tmp/ccJ8PJrU.s page 103 5788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 5790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */ 5797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpstate = hi2c->State; 5798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 5802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN 5806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */ 5812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */ 5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \ 5826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags); 5829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 5833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 5839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques 5843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. ARM GAS /tmp/ccJ8PJrU.s page 104 5845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 5848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 5850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value 5851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 5852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 5855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart) 5856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 5858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Memory Address */ 5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TCR flag is set */ 5888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) 5889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 5894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request 5898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 5900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface ARM GAS /tmp/ccJ8PJrU.s page 105 5902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddress Internal memory address 5903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 5905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value 5906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 5907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 5910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart) 5911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 5913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send Memory Address */ 5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 5928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until TC flag is set */ 5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) 5944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Address complete process callback. 5953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 5954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 5956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 5957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 106 5959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection; 5960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t slaveaddrcode; 5961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd1code; 5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd2code; 5963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 5965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(ITFlags); 5966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */ 5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 5969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c); 5971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 5972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 5973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 5974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If 10bits addressing mode is selected */ 5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 5977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK)) 5979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = ownadd1code; 5981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount++; 5982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 5983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset Address Event counter */ 5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount = 0U; 5986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */ 5988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */ 5994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 5997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = ownadd2code; 6004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 6007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */ 6012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 6014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); ARM GAS /tmp/ccJ8PJrU.s page 107 6016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */ 6020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 6023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 6024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Slave Addr callback */ 6029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 6031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 6033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Else clear address flag only */ 6037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ADDR flag */ 6040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 6041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Master sequential complete process. 6049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 6050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c) 6053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */ 6055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */ 6058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */ 6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 6063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 6064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */ 6066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 6067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) ARM GAS /tmp/ccJ8PJrU.s page 108 6073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 6074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 6076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 6079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 6084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */ 6086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 6094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 6096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Slave sequential complete process. 6102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 6103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c) 6106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 6108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */ 6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 6113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 6114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 6116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 6119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 6121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */ 6126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 6129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 109 6130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ 6131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 6133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */ 6135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 6136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 6143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 6145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 6149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */ 6151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 6153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */ 6155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 6163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 6165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 6170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Master complete process. 6175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 6176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror; 6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 6183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t tmpreg; 6184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); ARM GAS /tmp/ccJ8PJrU.s page 110 6187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 6189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 6192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 6193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 6198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */ 6202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */ 6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) 6212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set acknowledge error code */ 6217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Fetch Last receive data if any */ 6221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)) 6222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR; 6225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg); 6226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 6229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 6232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 6233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE)) 6236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */ 6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/ccJ8PJrU.s page 111 6244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 6247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c); 6256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c); 6258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 6270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 6272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 6282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c); 6291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c); 6293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); ARM GAS /tmp/ccJ8PJrU.s page 112 6301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 6305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 6307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 6313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Slave complete process. 6318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 6319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 6325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 6326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 6328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 6333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 6334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 6336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 6337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 6342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (tmpstate == HAL_I2C_STATE_LISTEN) 6344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT | I2C_XFER_RX_IT); 6346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */ 6351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Address Acknowledge */ 6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); ARM GAS /tmp/ccJ8PJrU.s page 113 6358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 6364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx); 6371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 6374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx); 6381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Do nothing */ 6386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */ 6389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) 6390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 6392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 6393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 6396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 6398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 6399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 6401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 6404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */ 6408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 6409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ ARM GAS /tmp/ccJ8PJrU.s page 114 6415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 6416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check that I2C transfer finished */ 6418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 6419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean XferCount == 0*/ 6420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So clear Flag NACKF only */ 6421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 6424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 6425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 6426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */ 6428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 6429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 6431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 6433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 6436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 6451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 6452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 6458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 6467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) 6469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); ARM GAS /tmp/ccJ8PJrU.s page 115 6472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 6475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Listen complete process */ 6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 6478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 6481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */ 6483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 6495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 6497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 6511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 6513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 6526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 6528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ ARM GAS /tmp/ccJ8PJrU.s page 116 6529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Listen complete process. 6534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 6535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */ 6541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 6546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */ 6548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET) 6549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Read data from RXDR */ 6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 6552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Increment Buffer pointer */ 6554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr++; 6555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 6557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 6559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 6560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6561:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6566:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all Interrupts*/ 6567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6569:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACK Flag */ 6570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 6578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 6580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C interrupts error process. 6585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. ARM GAS /tmp/ccJ8PJrU.s page 117 6586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param ErrorCode Error code to handle. 6587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) 6590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 6592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmppreviousstate; 6594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */ 6596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U; 6599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set new error code */ 6601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode; 6602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6603:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Interrupts */ 6604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) || 6605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 6606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */ 6609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6610:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */ 6612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 6614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6617:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable all interrupts */ 6618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 6621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */ 6624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* This change will be do later */ 6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT) 6626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */ 6628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a STOPF is detected */ 6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) 6632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 6634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 6640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 118 6643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 6645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX transfer if any */ 6648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState; 6649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 6651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 6652:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 6654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6656:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6657:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) 6659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 6663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA TX */ 6668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 6669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 6672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6678:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX transfer if any */ 6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \ 6681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 6682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 6684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) 6689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6691:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 6693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Abort DMA RX */ 6698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 6699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 119 6700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ 6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 6702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6705:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Error callback treatment. 6717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 6718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c) 6721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 6723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6729:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6730:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c); 6733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); 6735:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6738:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c); 6747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #else 6748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); 6749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6754:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief I2C Tx data register flush process. 6755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 6756:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None ARM GAS /tmp/ccJ8PJrU.s page 120 6757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6758:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) 6759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 29 .loc 1 6759 1 view -0 30 .cfi_startproc 31 @ args = 0, pretend = 0, frame = 0 32 @ frame_needed = 0, uses_anonymous_args = 0 33 @ link register save eliminated. 6760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If a pending TXIS flag is set */ 6761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */ 6762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) 34 .loc 1 6762 3 view .LVU1 35 .loc 1 6762 7 is_stmt 0 view .LVU2 36 0000 0368 ldr r3, [r0] 37 0002 9A69 ldr r2, [r3, #24] 38 .loc 1 6762 6 view .LVU3 39 0004 12F0020F tst r2, #2 40 0008 01D0 beq .L2 6763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U; 41 .loc 1 6764 5 is_stmt 1 view .LVU4 42 .loc 1 6764 26 is_stmt 0 view .LVU5 43 000a 0022 movs r2, #0 44 000c 9A62 str r2, [r3, #40] 45 .L2: 6765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6766:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register if not empty */ 6768:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) 46 .loc 1 6768 3 is_stmt 1 view .LVU6 47 .loc 1 6768 7 is_stmt 0 view .LVU7 48 000e 0368 ldr r3, [r0] 49 0010 9A69 ldr r2, [r3, #24] 50 .loc 1 6768 6 view .LVU8 51 0012 12F0010F tst r2, #1 52 0016 03D1 bne .L1 6769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); 53 .loc 1 6770 5 is_stmt 1 view .LVU9 54 0018 9A69 ldr r2, [r3, #24] 55 001a 42F00102 orr r2, r2, #1 56 001e 9A61 str r2, [r3, #24] 57 .L1: 6771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 58 .loc 1 6772 1 is_stmt 0 view .LVU10 59 0020 7047 bx lr 60 .cfi_endproc 61 .LFE188: 63 .section .text.I2C_TransferConfig,"ax",%progbits 64 .align 1 65 .syntax unified 66 .thumb 67 .thumb_func 69 I2C_TransferConfig: 70 .LVL1: 71 .LFB200: ARM GAS /tmp/ccJ8PJrU.s page 121 6773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6774:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback. 6776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle 6777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma) 6780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6781:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6783:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 6785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6786:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupt */ 6791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6796:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Buffer pointer */ 6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 6811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */ 6819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback. 6827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle 6828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ ARM GAS /tmp/ccJ8PJrU.s page 122 6830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) 6831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 6837:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 6839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6845:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6854:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback. 6856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle 6857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6858:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma) 6860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 6865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6867:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupt */ 6871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Buffer pointer */ 6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6879:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6881:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6882:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Errata workaround 170323 */ 6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 6884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = 1U; 6886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 123 6887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6897:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable the DMA channel */ 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, 6899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6903:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */ 6907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback. 6915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle 6916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6918:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma) 6919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \ 6925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 6926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable DMA Request */ 6928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6929:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 6934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C communication error callback. ARM GAS /tmp/ccJ8PJrU.s page 124 6944:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle 6945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6947:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma) 6948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6951:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable Acknowledge */ 6953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6954:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief DMA I2C communication abort callback 6962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure). 6963:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hdma DMA handle. 6964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 6965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) 6967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset AbortCpltCallback */ 6972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6983:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 6986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. It waits 6987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * until a flag is no longer in the specified status. 6988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 6990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check. 6991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Status The actual Flag status (SET or RESET). 6992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 6993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value 6994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 6995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 6996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 6997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart) 6998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 7000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 125 7001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */ 7002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 7005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */ 7008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 7009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 7011:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)) 7013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 7019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 7021:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 7026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7028:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 7029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag. 7030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7031:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 7032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 7033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value 7034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 7035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 7036:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 7037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart) 7038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 7040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */ 7042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 7045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7046:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */ 7048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 7049:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 7051:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)) 7053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 126 7058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 7059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7060:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 7062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7064:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 7067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 7070:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. 7071:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 7073:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 7074:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value 7075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 7076:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 7077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 7078:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart) 7079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 7081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */ 7083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 7086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */ 7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 7090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)) 7092:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7097:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 7098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 7101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_OK; 7105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 7108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. 7109:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 7111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 7112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value 7113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 7114:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ ARM GAS /tmp/ccJ8PJrU.s page 127 7115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 7116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Tickstart) 7117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 7119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) && (status == HAL_OK)) 7121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an error is detected */ 7123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 7126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7127:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a STOPF is detected */ 7129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) && (status == HAL_OK)) 7130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an RXNE is pending */ 7132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Store Last receive data if any */ 7133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U)) 7134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return HAL_OK */ 7136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */ 7137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_OK; 7138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check a no-acknowledge have been detected */ 7141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 7142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 7144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 7145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7146:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 7147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 7148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 7150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 7151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 7156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 7159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7160:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 7161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */ 7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) && (status == HAL_OK)) 7168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)) 7170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; ARM GAS /tmp/ccJ8PJrU.s page 128 7172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7174:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 7175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 7178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status; 7182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 7185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief This function handles errors detection during an I2C Communication. 7186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 7188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Timeout Timeout duration 7189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Tickstart Tick start value 7190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval HAL status 7191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 7192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Ti 7193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 7195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 7196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t error_code = 0; 7197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 7198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp1; 7199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 7200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF)) 7202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear NACKF Flag */ 7204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 7205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Wait until STOP Flag is set or timeout occurred */ 7207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */ 7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) 7209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */ 7211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 7212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 7214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP); 7216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = hi2c->Mode; 7217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case of I2C still busy, try to regenerate a STOP manually */ 7219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \ 7220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 7221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 7222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Generate Stop */ 7224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 7225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Update Tick with new reference */ 7227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tickstart = HAL_GetTick(); 7228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 129 7229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 7231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check for the Timeout */ 7233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF) 7234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_TIMEOUT; 7236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 7238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** break; 7240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* In case STOP Flag is detected, clear it */ 7247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (status == HAL_OK) 7248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7249:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear STOP Flag */ 7250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 7251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7252:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_AF; 7254:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 7256:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Refresh Content of Status register */ 7259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** itflag = hi2c->Instance->ISR; 7260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Then verify if an additional errors occurs */ 7262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if a Bus error occurred */ 7263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR)) 7264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR; 7266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear BERR flag */ 7268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 7269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 7271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an Over-Run/Under-Run error occurred */ 7274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR)) 7275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_OVR; 7277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear OVR flag */ 7279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 7280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 7282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check if an Arbitration Loss error occurred */ 7285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO)) ARM GAS /tmp/ccJ8PJrU.s page 130 7286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_ARLO; 7288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear ARLO flag */ 7290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 7291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** status = HAL_ERROR; 7293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (status != HAL_OK) 7296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Flush TX register */ 7298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 7299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 7301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 7302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= error_code; 7304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Process Unlocked */ 7308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7309:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7310:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return status; 7312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 7315:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar 7316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 7317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed. 7318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed. 7319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter must be a value between 0 and 255. 7320:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation. 7321:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values: 7322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode . 7323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode. 7324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode. 7325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation. 7326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * This parameter can be one of the following values: 7327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition. 7328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0). 7329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request. 7330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. 7331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 7332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 7333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 7334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t Request) 7335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 72 .loc 1 7335 1 is_stmt 1 view -0 73 .cfi_startproc 74 @ args = 4, pretend = 0, frame = 0 75 @ frame_needed = 0, uses_anonymous_args = 0 76 @ link register save eliminated. 77 .loc 1 7335 1 is_stmt 0 view .LVU12 78 0000 10B4 push {r4} ARM GAS /tmp/ccJ8PJrU.s page 131 79 .cfi_def_cfa_offset 4 80 .cfi_offset 4, -4 81 0002 019C ldr r4, [sp, #4] 7336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 7337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 82 .loc 1 7337 3 is_stmt 1 view .LVU13 7338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode)); 83 .loc 1 7338 3 view .LVU14 7339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request)); 84 .loc 1 7339 3 view .LVU15 7340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 7342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ 85 .loc 1 7342 3 view .LVU16 86 .loc 1 7342 52 is_stmt 0 view .LVU17 87 0004 C1F30901 ubfx r1, r1, #0, #10 88 .LVL2: 89 .loc 1 7342 68 view .LVU18 90 0008 41EA0241 orr r1, r1, r2, lsl #16 7343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 91 .loc 1 7343 88 view .LVU19 92 000c 1943 orrs r1, r1, r3 7342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 93 .loc 1 7342 19 view .LVU20 94 000e 2143 orrs r1, r1, r4 7342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 95 .loc 1 7342 12 view .LVU21 96 0010 21F00041 bic r1, r1, #-2147483648 97 .LVL3: 7344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U)); 7345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* update CR2 register */ 7347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, \ 98 .loc 1 7347 3 is_stmt 1 view .LVU22 99 0014 0268 ldr r2, [r0] 100 .LVL4: 101 .loc 1 7347 3 is_stmt 0 view .LVU23 102 0016 5368 ldr r3, [r2, #4] 103 .LVL5: 104 .loc 1 7347 3 view .LVU24 105 0018 640D lsrs r4, r4, #21 106 001a 04F48064 and r4, r4, #1024 107 001e 44F07F74 orr r4, r4, #66846720 108 0022 44F45834 orr r4, r4, #221184 109 0026 44F47F74 orr r4, r4, #1020 110 002a 44F00304 orr r4, r4, #3 111 002e 23EA0403 bic r3, r3, r4 112 0032 0B43 orrs r3, r3, r1 113 0034 5360 str r3, [r2, #4] 7348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \ 7349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \ 7350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), tmp); 7351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 114 .loc 1 7351 1 view .LVU25 115 0036 5DF8044B ldr r4, [sp], #4 116 .cfi_restore 4 117 .cfi_def_cfa_offset 0 ARM GAS /tmp/ccJ8PJrU.s page 132 118 .LVL6: 119 .loc 1 7351 1 view .LVU26 120 003a 7047 bx lr 121 .cfi_endproc 122 .LFE200: 124 .section .text.I2C_Enable_IRQ,"ax",%progbits 125 .align 1 126 .syntax unified 127 .thumb 128 .thumb_func 130 I2C_Enable_IRQ: 131 .LVL7: 132 .LFB201: 7352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 7354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts. 7355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 7357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 7358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 7359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 7360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 7361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 133 .loc 1 7361 1 is_stmt 1 view -0 134 .cfi_startproc 135 @ args = 0, pretend = 0, frame = 0 136 @ frame_needed = 0, uses_anonymous_args = 0 137 @ link register save eliminated. 7362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpisr = 0U; 138 .loc 1 7362 3 view .LVU28 7363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Master_ISR_DMA) && \ 139 .loc 1 7364 3 view .LVU29 140 .loc 1 7364 12 is_stmt 0 view .LVU30 141 0000 436B ldr r3, [r0, #52] 142 .loc 1 7364 6 view .LVU31 143 0002 234A ldr r2, .L24 144 0004 9342 cmp r3, r2 145 0006 1FD0 beq .L7 146 .loc 1 7364 45 discriminator 1 view .LVU32 147 0008 224A ldr r2, .L24+4 148 000a 9342 cmp r3, r2 149 000c 1CD0 beq .L7 7365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \ 150 .loc 1 7365 44 view .LVU33 151 000e 224A ldr r2, .L24+8 152 0010 9342 cmp r3, r2 153 0012 19D0 beq .L7 7366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->XferISR != I2C_Mem_ISR_DMA)) 7367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 154 .loc 1 7368 5 is_stmt 1 view .LVU34 155 .loc 1 7368 8 is_stmt 0 view .LVU35 156 0014 11F4004F tst r1, #32768 157 0018 11D1 bne .L18 7362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 158 .loc 1 7362 12 view .LVU36 ARM GAS /tmp/ccJ8PJrU.s page 133 159 001a 0023 movs r3, #0 160 .L8: 161 .LVL8: 7369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 7371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 162 .loc 1 7374 5 is_stmt 1 view .LVU37 163 .loc 1 7374 8 is_stmt 0 view .LVU38 164 001c 11F0010F tst r1, #1 165 0020 01D0 beq .L9 7375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 7377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; 166 .loc 1 7377 7 is_stmt 1 view .LVU39 167 .loc 1 7377 14 is_stmt 0 view .LVU40 168 0022 43F0F203 orr r3, r3, #242 169 .LVL9: 170 .L9: 7378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7379:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 171 .loc 1 7380 5 is_stmt 1 view .LVU41 172 .loc 1 7380 8 is_stmt 0 view .LVU42 173 0026 11F0020F tst r1, #2 174 002a 01D0 beq .L10 7381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 7383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; 175 .loc 1 7383 7 is_stmt 1 view .LVU43 176 .loc 1 7383 14 is_stmt 0 view .LVU44 177 002c 43F0F403 orr r3, r3, #244 178 .LVL10: 179 .L10: 7384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 180 .loc 1 7386 5 is_stmt 1 view .LVU45 181 .loc 1 7386 8 is_stmt 0 view .LVU46 182 0030 1029 cmp r1, #16 183 0032 06D0 beq .L20 184 .L11: 7387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 185 .loc 1 7392 5 is_stmt 1 view .LVU47 186 .loc 1 7392 8 is_stmt 0 view .LVU48 187 0034 2029 cmp r1, #32 188 0036 1BD1 bne .L12 7393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */ 7395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; ARM GAS /tmp/ccJ8PJrU.s page 134 189 .loc 1 7395 7 is_stmt 1 view .LVU49 190 .loc 1 7395 14 is_stmt 0 view .LVU50 191 0038 43F02003 orr r3, r3, #32 192 .LVL11: 193 .loc 1 7395 14 view .LVU51 194 003c 18E0 b .L12 195 .LVL12: 196 .L18: 7371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 197 .loc 1 7371 14 view .LVU52 198 003e B823 movs r3, #184 199 0040 ECE7 b .L8 200 .LVL13: 201 .L20: 7389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 202 .loc 1 7389 7 is_stmt 1 view .LVU53 7389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 203 .loc 1 7389 14 is_stmt 0 view .LVU54 204 0042 43F09003 orr r3, r3, #144 205 .LVL14: 7389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 206 .loc 1 7389 14 view .LVU55 207 0046 F5E7 b .L11 208 .LVL15: 209 .L7: 7396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 7400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 210 .loc 1 7401 5 is_stmt 1 view .LVU56 211 .loc 1 7401 8 is_stmt 0 view .LVU57 212 0048 11F4004F tst r1, #32768 213 004c 15D1 bne .L19 7362:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 214 .loc 1 7362 12 view .LVU58 215 004e 0023 movs r3, #0 216 .L13: 217 .LVL16: 7402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 7404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7407:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 218 .loc 1 7407 5 is_stmt 1 view .LVU59 219 .loc 1 7407 8 is_stmt 0 view .LVU60 220 0050 11F0010F tst r1, #1 221 0054 01D0 beq .L14 7408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 7410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; 222 .loc 1 7410 7 is_stmt 1 view .LVU61 223 .loc 1 7410 14 is_stmt 0 view .LVU62 224 0056 43F0F203 orr r3, r3, #242 225 .LVL17: ARM GAS /tmp/ccJ8PJrU.s page 135 226 .L14: 7411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 227 .loc 1 7413 5 is_stmt 1 view .LVU63 228 .loc 1 7413 8 is_stmt 0 view .LVU64 229 005a 11F0020F tst r1, #2 230 005e 01D0 beq .L15 7414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 7416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; 231 .loc 1 7416 7 is_stmt 1 view .LVU65 232 .loc 1 7416 14 is_stmt 0 view .LVU66 233 0060 43F0F403 orr r3, r3, #244 234 .LVL18: 235 .L15: 7417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7419:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 236 .loc 1 7419 5 is_stmt 1 view .LVU67 237 .loc 1 7419 8 is_stmt 0 view .LVU68 238 0064 1029 cmp r1, #16 239 0066 0AD0 beq .L21 240 .L16: 7420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 241 .loc 1 7425 5 is_stmt 1 view .LVU69 242 .loc 1 7425 8 is_stmt 0 view .LVU70 243 0068 2029 cmp r1, #32 244 006a 0BD0 beq .L22 245 .L17: 7426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */ 7428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI); 7429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 246 .loc 1 7431 5 is_stmt 1 view .LVU71 247 .loc 1 7431 8 is_stmt 0 view .LVU72 248 006c 4029 cmp r1, #64 249 006e 0CD0 beq .L23 250 .L12: 7432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */ 7434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 7435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable interrupts only at the end */ 7439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */ 7440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* all interrupts requested done */ 7441:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr); 251 .loc 1 7441 3 is_stmt 1 view .LVU73 ARM GAS /tmp/ccJ8PJrU.s page 136 252 0070 0168 ldr r1, [r0] 253 .LVL19: 254 .loc 1 7441 3 is_stmt 0 view .LVU74 255 0072 0A68 ldr r2, [r1] 256 0074 1343 orrs r3, r3, r2 257 .LVL20: 258 .loc 1 7441 3 view .LVU75 259 0076 0B60 str r3, [r1] 7442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 260 .loc 1 7442 1 view .LVU76 261 0078 7047 bx lr 262 .LVL21: 263 .L19: 7404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 264 .loc 1 7404 14 view .LVU77 265 007a B823 movs r3, #184 266 007c E8E7 b .L13 267 .LVL22: 268 .L21: 7422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 269 .loc 1 7422 7 is_stmt 1 view .LVU78 7422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 270 .loc 1 7422 14 is_stmt 0 view .LVU79 271 007e 43F09003 orr r3, r3, #144 272 .LVL23: 7422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 273 .loc 1 7422 14 view .LVU80 274 0082 F1E7 b .L16 275 .L22: 7428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 276 .loc 1 7428 7 is_stmt 1 view .LVU81 7428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 277 .loc 1 7428 14 is_stmt 0 view .LVU82 278 0084 43F06003 orr r3, r3, #96 279 .LVL24: 7428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 280 .loc 1 7428 14 view .LVU83 281 0088 F0E7 b .L17 282 .L23: 7434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 283 .loc 1 7434 7 is_stmt 1 view .LVU84 7434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 284 .loc 1 7434 14 is_stmt 0 view .LVU85 285 008a 43F04003 orr r3, r3, #64 286 .LVL25: 7434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 287 .loc 1 7434 14 view .LVU86 288 008e EFE7 b .L12 289 .L25: 290 .align 2 291 .L24: 292 0090 00000000 .word I2C_Master_ISR_DMA 293 0094 00000000 .word I2C_Slave_ISR_DMA 294 0098 00000000 .word I2C_Mem_ISR_DMA 295 .cfi_endproc 296 .LFE201: 298 .section .text.I2C_Disable_IRQ,"ax",%progbits ARM GAS /tmp/ccJ8PJrU.s page 137 299 .align 1 300 .syntax unified 301 .thumb 302 .thumb_func 304 I2C_Disable_IRQ: 305 .LVL26: 306 .LFB202: 7443:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 7445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts. 7446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * the configuration information for the specified I2C. 7448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 7449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 7450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 7451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 7452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 307 .loc 1 7452 1 is_stmt 1 view -0 308 .cfi_startproc 309 @ args = 0, pretend = 0, frame = 0 310 @ frame_needed = 0, uses_anonymous_args = 0 311 @ link register save eliminated. 7453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpisr = 0U; 312 .loc 1 7453 3 view .LVU88 7454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 313 .loc 1 7455 3 view .LVU89 314 .loc 1 7455 6 is_stmt 0 view .LVU90 315 0000 11F0010F tst r1, #1 316 0004 09D0 beq .L33 7456:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC and TXI interrupts */ 7458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI; 317 .loc 1 7458 5 is_stmt 1 view .LVU91 318 .LVL27: 7459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 319 .loc 1 7460 5 view .LVU92 320 .loc 1 7460 24 is_stmt 0 view .LVU93 321 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 322 .loc 1 7460 8 view .LVU94 323 000a 03F02803 and r3, r3, #40 324 000e 282B cmp r3, #40 325 0010 01D0 beq .L36 7461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 7463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 326 .loc 1 7463 14 view .LVU95 327 0012 F223 movs r3, #242 328 0014 02E0 b .L27 329 .L36: 7458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 330 .loc 1 7458 12 view .LVU96 331 0016 4223 movs r3, #66 332 0018 00E0 b .L27 333 .LVL28: 334 .L33: ARM GAS /tmp/ccJ8PJrU.s page 138 7453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 335 .loc 1 7453 12 view .LVU97 336 001a 0023 movs r3, #0 337 .LVL29: 338 .L27: 7464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 339 .loc 1 7467 3 is_stmt 1 view .LVU98 340 .loc 1 7467 6 is_stmt 0 view .LVU99 341 001c 11F0020F tst r1, #2 342 0020 09D0 beq .L28 7468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable TC and RXI interrupts */ 7470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI; 343 .loc 1 7470 5 is_stmt 1 view .LVU100 344 .loc 1 7470 12 is_stmt 0 view .LVU101 345 0022 43F0440C orr ip, r3, #68 346 .LVL30: 7471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 347 .loc 1 7472 5 is_stmt 1 view .LVU102 348 .loc 1 7472 24 is_stmt 0 view .LVU103 349 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 350 .loc 1 7472 8 view .LVU104 351 002a 02F02802 and r2, r2, #40 352 002e 282A cmp r2, #40 353 0030 10D0 beq .L35 7473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 7475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 354 .loc 1 7475 7 is_stmt 1 view .LVU105 355 .loc 1 7475 14 is_stmt 0 view .LVU106 356 0032 43F0F403 orr r3, r3, #244 357 .LVL31: 358 .L28: 7476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7479:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 359 .loc 1 7479 3 is_stmt 1 view .LVU107 360 .loc 1 7479 6 is_stmt 0 view .LVU108 361 0036 11F4004F tst r1, #32768 362 003a 0DD1 bne .L37 363 .L29: 7480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */ 7482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 364 .loc 1 7485 3 is_stmt 1 view .LVU109 365 .loc 1 7485 6 is_stmt 0 view .LVU110 366 003c 1029 cmp r1, #16 367 003e 0ED0 beq .L38 368 .L30: ARM GAS /tmp/ccJ8PJrU.s page 139 7486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 369 .loc 1 7491 3 is_stmt 1 view .LVU111 370 .loc 1 7491 6 is_stmt 0 view .LVU112 371 0040 2029 cmp r1, #32 372 0042 0FD0 beq .L39 373 .L31: 7492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable STOP interrupts */ 7494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 7495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 374 .loc 1 7497 3 is_stmt 1 view .LVU113 375 .loc 1 7497 6 is_stmt 0 view .LVU114 376 0044 4029 cmp r1, #64 377 0046 10D0 beq .L40 378 .L32: 7498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Enable TC interrupts */ 7500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 7501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Disable interrupts only at the end */ 7504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */ 7505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* all disable interrupts request are not done */ 7506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr); 379 .loc 1 7506 3 is_stmt 1 view .LVU115 380 0048 0168 ldr r1, [r0] 381 .LVL32: 382 .loc 1 7506 3 is_stmt 0 view .LVU116 383 004a 0A68 ldr r2, [r1] 384 004c 22EA0303 bic r3, r2, r3 385 .LVL33: 386 .loc 1 7506 3 view .LVU117 387 0050 0B60 str r3, [r1] 7507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 388 .loc 1 7507 1 view .LVU118 389 0052 7047 bx lr 390 .LVL34: 391 .L35: 7470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 392 .loc 1 7470 12 view .LVU119 393 0054 6346 mov r3, ip 394 0056 EEE7 b .L28 395 .LVL35: 396 .L37: 7482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 397 .loc 1 7482 5 is_stmt 1 view .LVU120 7482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 398 .loc 1 7482 12 is_stmt 0 view .LVU121 399 0058 43F0B803 orr r3, r3, #184 400 .LVL36: ARM GAS /tmp/ccJ8PJrU.s page 140 7482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 401 .loc 1 7482 12 view .LVU122 402 005c EEE7 b .L29 403 .L38: 7488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 404 .loc 1 7488 5 is_stmt 1 view .LVU123 7488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 405 .loc 1 7488 12 is_stmt 0 view .LVU124 406 005e 43F09003 orr r3, r3, #144 407 .LVL37: 7488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 408 .loc 1 7488 12 view .LVU125 409 0062 EDE7 b .L30 410 .L39: 7494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 411 .loc 1 7494 5 is_stmt 1 view .LVU126 7494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 412 .loc 1 7494 12 is_stmt 0 view .LVU127 413 0064 43F02003 orr r3, r3, #32 414 .LVL38: 7494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 415 .loc 1 7494 12 view .LVU128 416 0068 ECE7 b .L31 417 .L40: 7500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 418 .loc 1 7500 5 is_stmt 1 view .LVU129 7500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 419 .loc 1 7500 12 is_stmt 0 view .LVU130 420 006a 43F04003 orr r3, r3, #64 421 .LVL39: 7500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 422 .loc 1 7500 12 view .LVU131 423 006e EBE7 b .L32 424 .cfi_endproc 425 .LFE202: 427 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits 428 .align 1 429 .syntax unified 430 .thumb 431 .thumb_func 433 I2C_ConvertOtherXferOptions: 434 .LVL40: 435 .LFB203: 7508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 7510:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions. 7511:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @param hi2c I2C handle. 7512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** * @retval None 7513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** */ 7514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) 7515:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 436 .loc 1 7515 1 is_stmt 1 view -0 437 .cfi_startproc 438 @ args = 0, pretend = 0, frame = 0 439 @ frame_needed = 0, uses_anonymous_args = 0 440 @ link register save eliminated. 7516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */ ARM GAS /tmp/ccJ8PJrU.s page 141 7517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 7518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */ 7519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME) 441 .loc 1 7519 3 view .LVU133 442 .loc 1 7519 11 is_stmt 0 view .LVU134 443 0000 C36A ldr r3, [r0, #44] 444 .loc 1 7519 6 view .LVU135 445 0002 AA2B cmp r3, #170 446 0004 04D0 beq .L44 7520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME; 7522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7523:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */ 7524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 7525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */ 7526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */ 7527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) 447 .loc 1 7527 8 is_stmt 1 view .LVU136 448 .loc 1 7527 16 is_stmt 0 view .LVU137 449 0006 C36A ldr r3, [r0, #44] 450 .loc 1 7527 11 view .LVU138 451 0008 B3F52A4F cmp r3, #43520 452 000c 03D0 beq .L45 453 .L41: 7528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; 7530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** else 7532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Nothing to do */ 7534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 454 .loc 1 7535 1 view .LVU139 455 000e 7047 bx lr 456 .L44: 7521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 457 .loc 1 7521 5 is_stmt 1 view .LVU140 7521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 458 .loc 1 7521 23 is_stmt 0 view .LVU141 459 0010 0023 movs r3, #0 460 0012 C362 str r3, [r0, #44] 461 0014 7047 bx lr 462 .L45: 7529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 463 .loc 1 7529 5 is_stmt 1 view .LVU142 7529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 464 .loc 1 7529 23 is_stmt 0 view .LVU143 465 0016 4FF00073 mov r3, #33554432 466 001a C362 str r3, [r0, #44] 7534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 467 .loc 1 7534 3 is_stmt 1 view .LVU144 468 .loc 1 7535 1 is_stmt 0 view .LVU145 469 001c F7E7 b .L41 470 .cfi_endproc 471 .LFE203: 473 .section .text.I2C_IsErrorOccurred,"ax",%progbits 474 .align 1 ARM GAS /tmp/ccJ8PJrU.s page 142 475 .syntax unified 476 .thumb 477 .thumb_func 479 I2C_IsErrorOccurred: 480 .LVL41: 481 .LFB199: 7193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 482 .loc 1 7193 1 is_stmt 1 view -0 483 .cfi_startproc 484 @ args = 0, pretend = 0, frame = 0 485 @ frame_needed = 0, uses_anonymous_args = 0 7193:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 486 .loc 1 7193 1 is_stmt 0 view .LVU147 487 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 488 .cfi_def_cfa_offset 24 489 .cfi_offset 4, -24 490 .cfi_offset 5, -20 491 .cfi_offset 6, -16 492 .cfi_offset 7, -12 493 .cfi_offset 8, -8 494 .cfi_offset 14, -4 495 0004 0446 mov r4, r0 7194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 496 .loc 1 7194 3 is_stmt 1 view .LVU148 497 .LVL42: 7195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t error_code = 0; 498 .loc 1 7195 3 view .LVU149 7195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t error_code = 0; 499 .loc 1 7195 27 is_stmt 0 view .LVU150 500 0006 0368 ldr r3, [r0] 7195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t error_code = 0; 501 .loc 1 7195 12 view .LVU151 502 0008 9E69 ldr r6, [r3, #24] 503 .LVL43: 7196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 504 .loc 1 7196 3 is_stmt 1 view .LVU152 7197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmp1; 505 .loc 1 7197 3 view .LVU153 7198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 506 .loc 1 7198 3 view .LVU154 7199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 507 .loc 1 7199 3 view .LVU155 7201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 508 .loc 1 7201 3 view .LVU156 7201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 509 .loc 1 7201 6 is_stmt 0 view .LVU157 510 000a 16F01006 ands r6, r6, #16 511 .LVL44: 7201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 512 .loc 1 7201 6 view .LVU158 513 000e 7CD0 beq .L63 514 0010 0D46 mov r5, r1 515 0012 9046 mov r8, r2 7204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 516 .loc 1 7204 5 is_stmt 1 view .LVU159 517 0014 1022 movs r2, #16 518 .LVL45: ARM GAS /tmp/ccJ8PJrU.s page 143 7204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 519 .loc 1 7204 5 is_stmt 0 view .LVU160 520 0016 DA61 str r2, [r3, #28] 7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 521 .loc 1 7208 5 is_stmt 1 view .LVU161 7196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 522 .loc 1 7196 12 is_stmt 0 view .LVU162 523 0018 0026 movs r6, #0 7194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 524 .loc 1 7194 21 view .LVU163 525 001a 3746 mov r7, r6 526 .LVL46: 527 .L49: 7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 528 .loc 1 7208 64 is_stmt 1 view .LVU164 7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 529 .loc 1 7208 13 is_stmt 0 view .LVU165 530 001c 2368 ldr r3, [r4] 531 001e 9869 ldr r0, [r3, #24] 7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 532 .loc 1 7208 64 view .LVU166 533 0020 10F0200F tst r0, #32 534 0024 30D1 bne .L55 7208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 535 .loc 1 7208 64 discriminator 1 view .LVU167 536 0026 7FBB cbnz r7, .L55 7211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 537 .loc 1 7211 7 is_stmt 1 view .LVU168 7211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 538 .loc 1 7211 10 is_stmt 0 view .LVU169 539 0028 B5F1FF3F cmp r5, #-1 540 002c F6D0 beq .L49 7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 541 .loc 1 7213 9 is_stmt 1 view .LVU170 7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 542 .loc 1 7213 15 is_stmt 0 view .LVU171 543 002e FFF7FEFF bl HAL_GetTick 544 .LVL47: 7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 545 .loc 1 7213 29 discriminator 1 view .LVU172 546 0032 A0EB0800 sub r0, r0, r8 7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 547 .loc 1 7213 12 discriminator 1 view .LVU173 548 0036 A842 cmp r0, r5 549 0038 01D8 bhi .L50 7213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 550 .loc 1 7213 53 discriminator 1 view .LVU174 551 003a 002D cmp r5, #0 552 003c EED1 bne .L49 553 .L50: 7215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = hi2c->Mode; 554 .loc 1 7215 11 is_stmt 1 view .LVU175 7215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = hi2c->Mode; 555 .loc 1 7215 33 is_stmt 0 view .LVU176 556 003e 2168 ldr r1, [r4] 7215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = hi2c->Mode; 557 .loc 1 7215 43 view .LVU177 ARM GAS /tmp/ccJ8PJrU.s page 144 558 0040 4B68 ldr r3, [r1, #4] 7215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = hi2c->Mode; 559 .loc 1 7215 16 view .LVU178 560 0042 03F48043 and r3, r3, #16384 561 .LVL48: 7216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 562 .loc 1 7216 11 is_stmt 1 view .LVU179 7216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 563 .loc 1 7216 16 is_stmt 0 view .LVU180 564 0046 94F84220 ldrb r2, [r4, #66] @ zero_extendqisi2 565 004a D2B2 uxtb r2, r2 566 .LVL49: 7219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 567 .loc 1 7219 11 is_stmt 1 view .LVU181 7219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 568 .loc 1 7219 16 is_stmt 0 view .LVU182 569 004c 8869 ldr r0, [r1, #24] 7219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 570 .loc 1 7219 14 view .LVU183 571 004e 10F4004F tst r0, #32768 572 0052 02D0 beq .L53 7219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 573 .loc 1 7219 66 discriminator 1 view .LVU184 574 0054 0BB9 cbnz r3, .L53 7220:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 575 .loc 1 7220 38 view .LVU185 576 0056 202A cmp r2, #32 577 0058 0ED1 bne .L65 578 .LVL50: 579 .L53: 7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 580 .loc 1 7230 59 is_stmt 1 view .LVU186 7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 581 .loc 1 7230 18 is_stmt 0 view .LVU187 582 005a 2368 ldr r3, [r4] 583 005c 9B69 ldr r3, [r3, #24] 7230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 584 .loc 1 7230 59 view .LVU188 585 005e 13F0200F tst r3, #32 586 0062 DBD1 bne .L49 7233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 587 .loc 1 7233 13 is_stmt 1 view .LVU189 7233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 588 .loc 1 7233 18 is_stmt 0 view .LVU190 589 0064 FFF7FEFF bl HAL_GetTick 590 .LVL51: 7233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 591 .loc 1 7233 32 discriminator 1 view .LVU191 592 0068 A0EB0800 sub r0, r0, r8 7233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 593 .loc 1 7233 16 discriminator 1 view .LVU192 594 006c 1928 cmp r0, #25 595 006e F4D9 bls .L53 7235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 596 .loc 1 7235 15 is_stmt 1 view .LVU193 7235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 597 .loc 1 7235 26 is_stmt 0 view .LVU194 ARM GAS /tmp/ccJ8PJrU.s page 145 598 0070 46F02006 orr r6, r6, #32 599 .LVL52: 7237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 600 .loc 1 7237 15 is_stmt 1 view .LVU195 7239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 601 .loc 1 7239 15 view .LVU196 7237:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 602 .loc 1 7237 22 is_stmt 0 view .LVU197 603 0074 0127 movs r7, #1 7239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 604 .loc 1 7239 15 view .LVU198 605 0076 D1E7 b .L49 606 .LVL53: 607 .L65: 7224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 608 .loc 1 7224 13 is_stmt 1 view .LVU199 7224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 609 .loc 1 7224 27 is_stmt 0 view .LVU200 610 0078 4B68 ldr r3, [r1, #4] 611 .LVL54: 7224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 612 .loc 1 7224 33 view .LVU201 613 007a 43F48043 orr r3, r3, #16384 614 007e 4B60 str r3, [r1, #4] 7227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 615 .loc 1 7227 13 is_stmt 1 view .LVU202 7227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 616 .loc 1 7227 25 is_stmt 0 view .LVU203 617 0080 FFF7FEFF bl HAL_GetTick 618 .LVL55: 7227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 619 .loc 1 7227 25 view .LVU204 620 0084 8046 mov r8, r0 621 .LVL56: 7227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 622 .loc 1 7227 25 view .LVU205 623 0086 E8E7 b .L53 624 .LVL57: 625 .L55: 7247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 626 .loc 1 7247 5 is_stmt 1 view .LVU206 7247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 627 .loc 1 7247 8 is_stmt 0 view .LVU207 628 0088 0FB9 cbnz r7, .L57 7250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 629 .loc 1 7250 7 is_stmt 1 view .LVU208 630 008a 2022 movs r2, #32 631 008c DA61 str r2, [r3, #28] 632 .L57: 7253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 633 .loc 1 7253 5 view .LVU209 7253:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 634 .loc 1 7253 16 is_stmt 0 view .LVU210 635 008e 46F00406 orr r6, r6, #4 636 .LVL58: 7255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 637 .loc 1 7255 5 is_stmt 1 view .LVU211 ARM GAS /tmp/ccJ8PJrU.s page 146 7255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 638 .loc 1 7255 12 is_stmt 0 view .LVU212 639 0092 0125 movs r5, #1 640 .LVL59: 641 .L47: 7259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 642 .loc 1 7259 3 is_stmt 1 view .LVU213 7259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 643 .loc 1 7259 16 is_stmt 0 view .LVU214 644 0094 2268 ldr r2, [r4] 7259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 645 .loc 1 7259 10 view .LVU215 646 0096 9369 ldr r3, [r2, #24] 647 .LVL60: 7263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 648 .loc 1 7263 3 is_stmt 1 view .LVU216 7263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 649 .loc 1 7263 6 is_stmt 0 view .LVU217 650 0098 13F4807F tst r3, #256 651 009c 05D0 beq .L58 7265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 652 .loc 1 7265 5 is_stmt 1 view .LVU218 7265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 653 .loc 1 7265 16 is_stmt 0 view .LVU219 654 009e 46F00106 orr r6, r6, #1 655 .LVL61: 7268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 656 .loc 1 7268 5 is_stmt 1 view .LVU220 657 00a2 4FF48071 mov r1, #256 658 00a6 D161 str r1, [r2, #28] 7270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 659 .loc 1 7270 5 view .LVU221 660 .LVL62: 7270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 661 .loc 1 7270 12 is_stmt 0 view .LVU222 662 00a8 0125 movs r5, #1 663 .LVL63: 664 .L58: 7274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 665 .loc 1 7274 3 is_stmt 1 view .LVU223 7274:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 666 .loc 1 7274 6 is_stmt 0 view .LVU224 667 00aa 13F4806F tst r3, #1024 668 00ae 06D0 beq .L59 7276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 669 .loc 1 7276 5 is_stmt 1 view .LVU225 7276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 670 .loc 1 7276 16 is_stmt 0 view .LVU226 671 00b0 46F00806 orr r6, r6, #8 672 .LVL64: 7279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 673 .loc 1 7279 5 is_stmt 1 view .LVU227 674 00b4 2268 ldr r2, [r4] 675 00b6 4FF48061 mov r1, #1024 676 00ba D161 str r1, [r2, #28] 7281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 677 .loc 1 7281 5 view .LVU228 ARM GAS /tmp/ccJ8PJrU.s page 147 678 .LVL65: 7281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 679 .loc 1 7281 12 is_stmt 0 view .LVU229 680 00bc 0125 movs r5, #1 681 .LVL66: 682 .L59: 7285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 683 .loc 1 7285 3 is_stmt 1 view .LVU230 7285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 684 .loc 1 7285 6 is_stmt 0 view .LVU231 685 00be 13F4007F tst r3, #512 686 00c2 24D0 beq .L60 7287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 687 .loc 1 7287 5 is_stmt 1 view .LVU232 7287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 688 .loc 1 7287 16 is_stmt 0 view .LVU233 689 00c4 46F00206 orr r6, r6, #2 690 .LVL67: 7290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 691 .loc 1 7290 5 is_stmt 1 view .LVU234 692 00c8 2368 ldr r3, [r4] 693 .LVL68: 7290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 694 .loc 1 7290 5 is_stmt 0 view .LVU235 695 00ca 4FF40072 mov r2, #512 696 00ce DA61 str r2, [r3, #28] 7292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 697 .loc 1 7292 5 is_stmt 1 view .LVU236 698 .LVL69: 7295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 699 .loc 1 7295 3 view .LVU237 7292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 700 .loc 1 7292 12 is_stmt 0 view .LVU238 701 00d0 0125 movs r5, #1 702 .LVL70: 703 .L61: 7298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 704 .loc 1 7298 5 is_stmt 1 view .LVU239 705 00d2 2046 mov r0, r4 706 00d4 FFF7FEFF bl I2C_Flush_TXDR 707 .LVL71: 7301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 708 .loc 1 7301 5 view .LVU240 709 00d8 2268 ldr r2, [r4] 710 00da 5368 ldr r3, [r2, #4] 711 00dc 23F0FF73 bic r3, r3, #33423360 712 00e0 23F48B33 bic r3, r3, #71168 713 00e4 23F4FF73 bic r3, r3, #510 714 00e8 23F00103 bic r3, r3, #1 715 00ec 5360 str r3, [r2, #4] 7303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 716 .loc 1 7303 5 view .LVU241 7303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 717 .loc 1 7303 9 is_stmt 0 view .LVU242 718 00ee 636C ldr r3, [r4, #68] 7303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 719 .loc 1 7303 21 view .LVU243 ARM GAS /tmp/ccJ8PJrU.s page 148 720 00f0 3343 orrs r3, r3, r6 721 00f2 6364 str r3, [r4, #68] 7304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 722 .loc 1 7304 5 is_stmt 1 view .LVU244 7304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 723 .loc 1 7304 17 is_stmt 0 view .LVU245 724 00f4 2023 movs r3, #32 725 00f6 84F84130 strb r3, [r4, #65] 7305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 726 .loc 1 7305 5 is_stmt 1 view .LVU246 7305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 727 .loc 1 7305 16 is_stmt 0 view .LVU247 728 00fa 0023 movs r3, #0 729 00fc 84F84230 strb r3, [r4, #66] 7308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 730 .loc 1 7308 5 is_stmt 1 view .LVU248 7308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 731 .loc 1 7308 5 view .LVU249 732 0100 84F84030 strb r3, [r4, #64] 733 .L62: 7308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 734 .loc 1 7308 5 discriminator 1 view .LVU250 7311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 735 .loc 1 7311 3 view .LVU251 7312:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 736 .loc 1 7312 1 is_stmt 0 view .LVU252 737 0104 2846 mov r0, r5 738 0106 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 739 .LVL72: 740 .L63: 7194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 741 .loc 1 7194 21 view .LVU253 742 010a 0025 movs r5, #0 743 010c C2E7 b .L47 744 .LVL73: 745 .L60: 7295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 746 .loc 1 7295 3 is_stmt 1 view .LVU254 7295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 747 .loc 1 7295 6 is_stmt 0 view .LVU255 748 010e 002D cmp r5, #0 749 0110 F8D0 beq .L62 750 0112 DEE7 b .L61 751 .cfi_endproc 752 .LFE199: 754 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits 755 .align 1 756 .syntax unified 757 .thumb 758 .thumb_func 760 I2C_WaitOnTXISFlagUntilTimeout: 761 .LVL74: 762 .LFB196: 7038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 763 .loc 1 7038 1 is_stmt 1 view -0 764 .cfi_startproc 765 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccJ8PJrU.s page 149 766 @ frame_needed = 0, uses_anonymous_args = 0 7038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 767 .loc 1 7038 1 is_stmt 0 view .LVU257 768 0000 70B5 push {r4, r5, r6, lr} 769 .cfi_def_cfa_offset 16 770 .cfi_offset 4, -16 771 .cfi_offset 5, -12 772 .cfi_offset 6, -8 773 .cfi_offset 14, -4 774 0002 0446 mov r4, r0 775 0004 0D46 mov r5, r1 776 0006 1646 mov r6, r2 7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 777 .loc 1 7039 3 is_stmt 1 view .LVU258 778 .LVL75: 779 .L69: 7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 780 .loc 1 7039 50 view .LVU259 7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 781 .loc 1 7039 10 is_stmt 0 view .LVU260 782 0008 2368 ldr r3, [r4] 783 000a 9B69 ldr r3, [r3, #24] 7039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 784 .loc 1 7039 50 view .LVU261 785 000c 13F0020F tst r3, #2 786 0010 22D1 bne .L74 7042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 787 .loc 1 7042 5 is_stmt 1 view .LVU262 7042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 788 .loc 1 7042 9 is_stmt 0 view .LVU263 789 0012 3246 mov r2, r6 790 0014 2946 mov r1, r5 791 0016 2046 mov r0, r4 792 0018 FFF7FEFF bl I2C_IsErrorOccurred 793 .LVL76: 7042:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 794 .loc 1 7042 8 discriminator 1 view .LVU264 795 001c F0B9 cbnz r0, .L72 7048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 796 .loc 1 7048 5 is_stmt 1 view .LVU265 7048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 797 .loc 1 7048 8 is_stmt 0 view .LVU266 798 001e B5F1FF3F cmp r5, #-1 799 0022 F1D0 beq .L69 7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 800 .loc 1 7050 7 is_stmt 1 view .LVU267 7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 801 .loc 1 7050 13 is_stmt 0 view .LVU268 802 0024 FFF7FEFF bl HAL_GetTick 803 .LVL77: 7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 804 .loc 1 7050 27 discriminator 1 view .LVU269 805 0028 801B subs r0, r0, r6 7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 806 .loc 1 7050 10 discriminator 1 view .LVU270 807 002a A842 cmp r0, r5 808 002c 01D8 bhi .L70 ARM GAS /tmp/ccJ8PJrU.s page 150 7050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 809 .loc 1 7050 51 discriminator 1 view .LVU271 810 002e 002D cmp r5, #0 811 0030 EAD1 bne .L69 812 .L70: 7052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 813 .loc 1 7052 9 is_stmt 1 view .LVU272 7052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 814 .loc 1 7052 14 is_stmt 0 view .LVU273 815 0032 2368 ldr r3, [r4] 816 0034 9B69 ldr r3, [r3, #24] 7052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 817 .loc 1 7052 12 view .LVU274 818 0036 13F0020F tst r3, #2 819 003a E5D1 bne .L69 7054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 820 .loc 1 7054 11 is_stmt 1 view .LVU275 7054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 821 .loc 1 7054 15 is_stmt 0 view .LVU276 822 003c 636C ldr r3, [r4, #68] 7054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 823 .loc 1 7054 27 view .LVU277 824 003e 43F02003 orr r3, r3, #32 825 0042 6364 str r3, [r4, #68] 7055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 826 .loc 1 7055 11 is_stmt 1 view .LVU278 7055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 827 .loc 1 7055 23 is_stmt 0 view .LVU279 828 0044 2023 movs r3, #32 829 0046 84F84130 strb r3, [r4, #65] 7056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 830 .loc 1 7056 11 is_stmt 1 view .LVU280 7056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 831 .loc 1 7056 22 is_stmt 0 view .LVU281 832 004a 0023 movs r3, #0 833 004c 84F84230 strb r3, [r4, #66] 7059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 834 .loc 1 7059 11 is_stmt 1 view .LVU282 7059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 835 .loc 1 7059 11 view .LVU283 836 0050 84F84030 strb r3, [r4, #64] 7059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 837 .loc 1 7059 11 view .LVU284 7061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 838 .loc 1 7061 11 view .LVU285 7061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 839 .loc 1 7061 18 is_stmt 0 view .LVU286 840 0054 0120 movs r0, #1 841 0056 00E0 b .L68 842 .L74: 7066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 843 .loc 1 7066 10 view .LVU287 844 0058 0020 movs r0, #0 845 .L68: 7067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 846 .loc 1 7067 1 view .LVU288 847 005a 70BD pop {r4, r5, r6, pc} ARM GAS /tmp/ccJ8PJrU.s page 151 848 .LVL78: 849 .L72: 7044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 850 .loc 1 7044 14 view .LVU289 851 005c 0120 movs r0, #1 852 005e FCE7 b .L68 853 .cfi_endproc 854 .LFE196: 856 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits 857 .align 1 858 .syntax unified 859 .thumb 860 .thumb_func 862 I2C_WaitOnFlagUntilTimeout: 863 .LVL79: 864 .LFB195: 6998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 865 .loc 1 6998 1 is_stmt 1 view -0 866 .cfi_startproc 867 @ args = 4, pretend = 0, frame = 0 868 @ frame_needed = 0, uses_anonymous_args = 0 6998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 869 .loc 1 6998 1 is_stmt 0 view .LVU291 870 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 871 .cfi_def_cfa_offset 32 872 .cfi_offset 3, -32 873 .cfi_offset 4, -28 874 .cfi_offset 5, -24 875 .cfi_offset 6, -20 876 .cfi_offset 7, -16 877 .cfi_offset 8, -12 878 .cfi_offset 9, -8 879 .cfi_offset 14, -4 880 0004 0546 mov r5, r0 881 0006 8846 mov r8, r1 882 0008 1746 mov r7, r2 883 000a 1E46 mov r6, r3 884 000c DDF82090 ldr r9, [sp, #32] 6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 885 .loc 1 6999 3 is_stmt 1 view .LVU292 886 .LVL80: 887 .L78: 6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 888 .loc 1 6999 41 view .LVU293 6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 889 .loc 1 6999 10 is_stmt 0 view .LVU294 890 0010 2B68 ldr r3, [r5] 891 0012 9C69 ldr r4, [r3, #24] 892 0014 38EA0404 bics r4, r8, r4 893 0018 0CBF ite eq 894 001a 0123 moveq r3, #1 895 001c 0023 movne r3, #0 6999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 896 .loc 1 6999 41 view .LVU295 897 001e BB42 cmp r3, r7 898 0020 27D1 bne .L83 7002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 152 899 .loc 1 7002 5 is_stmt 1 view .LVU296 7002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 900 .loc 1 7002 9 is_stmt 0 view .LVU297 901 0022 4A46 mov r2, r9 902 0024 3146 mov r1, r6 903 0026 2846 mov r0, r5 904 0028 FFF7FEFF bl I2C_IsErrorOccurred 905 .LVL81: 7002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 906 .loc 1 7002 8 discriminator 1 view .LVU298 907 002c 20BB cbnz r0, .L81 7008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 908 .loc 1 7008 5 is_stmt 1 view .LVU299 7008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 909 .loc 1 7008 8 is_stmt 0 view .LVU300 910 002e B6F1FF3F cmp r6, #-1 911 0032 EDD0 beq .L78 7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 912 .loc 1 7010 7 is_stmt 1 view .LVU301 7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 913 .loc 1 7010 13 is_stmt 0 view .LVU302 914 0034 FFF7FEFF bl HAL_GetTick 915 .LVL82: 7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 916 .loc 1 7010 27 discriminator 1 view .LVU303 917 0038 A0EB0900 sub r0, r0, r9 7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 918 .loc 1 7010 10 discriminator 1 view .LVU304 919 003c B042 cmp r0, r6 920 003e 01D8 bhi .L79 7010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 921 .loc 1 7010 51 discriminator 1 view .LVU305 922 0040 002E cmp r6, #0 923 0042 E5D1 bne .L78 924 .L79: 7012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 925 .loc 1 7012 9 is_stmt 1 view .LVU306 7012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 926 .loc 1 7012 14 is_stmt 0 view .LVU307 927 0044 2B68 ldr r3, [r5] 928 0046 9B69 ldr r3, [r3, #24] 929 0048 38EA0303 bics r3, r8, r3 930 004c 0CBF ite eq 931 004e 0123 moveq r3, #1 932 0050 0023 movne r3, #0 7012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 933 .loc 1 7012 12 view .LVU308 934 0052 BB42 cmp r3, r7 935 0054 DCD1 bne .L78 7014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 936 .loc 1 7014 11 is_stmt 1 view .LVU309 7014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 937 .loc 1 7014 15 is_stmt 0 view .LVU310 938 0056 6B6C ldr r3, [r5, #68] 7014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 939 .loc 1 7014 27 view .LVU311 940 0058 43F02003 orr r3, r3, #32 ARM GAS /tmp/ccJ8PJrU.s page 153 941 005c 6B64 str r3, [r5, #68] 7015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 942 .loc 1 7015 11 is_stmt 1 view .LVU312 7015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 943 .loc 1 7015 23 is_stmt 0 view .LVU313 944 005e 2023 movs r3, #32 945 0060 85F84130 strb r3, [r5, #65] 7016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 946 .loc 1 7016 11 is_stmt 1 view .LVU314 7016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 947 .loc 1 7016 22 is_stmt 0 view .LVU315 948 0064 0023 movs r3, #0 949 0066 85F84230 strb r3, [r5, #66] 7019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 950 .loc 1 7019 11 is_stmt 1 view .LVU316 7019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 951 .loc 1 7019 11 view .LVU317 952 006a 85F84030 strb r3, [r5, #64] 7019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 953 .loc 1 7019 11 view .LVU318 7020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 954 .loc 1 7020 11 view .LVU319 7020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 955 .loc 1 7020 18 is_stmt 0 view .LVU320 956 006e 0120 movs r0, #1 957 0070 00E0 b .L77 958 .L83: 7025:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 959 .loc 1 7025 10 view .LVU321 960 0072 0020 movs r0, #0 961 .L77: 7026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 962 .loc 1 7026 1 view .LVU322 963 0074 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 964 .LVL83: 965 .L81: 7004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 966 .loc 1 7004 14 view .LVU323 967 0078 0120 movs r0, #1 968 007a FBE7 b .L77 969 .cfi_endproc 970 .LFE195: 972 .section .text.I2C_RequestMemoryWrite,"ax",%progbits 973 .align 1 974 .syntax unified 975 .thumb 976 .thumb_func 978 I2C_RequestMemoryWrite: 979 .LVL84: 980 .LFB178: 5856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 981 .loc 1 5856 1 is_stmt 1 view -0 982 .cfi_startproc 983 @ args = 8, pretend = 0, frame = 0 984 @ frame_needed = 0, uses_anonymous_args = 0 5856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 985 .loc 1 5856 1 is_stmt 0 view .LVU325 ARM GAS /tmp/ccJ8PJrU.s page 154 986 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 987 .cfi_def_cfa_offset 24 988 .cfi_offset 4, -24 989 .cfi_offset 5, -20 990 .cfi_offset 6, -16 991 .cfi_offset 7, -12 992 .cfi_offset 8, -8 993 .cfi_offset 14, -4 994 0004 82B0 sub sp, sp, #8 995 .cfi_def_cfa_offset 32 996 0006 0446 mov r4, r0 997 0008 9046 mov r8, r2 998 000a 1D46 mov r5, r3 999 000c 089E ldr r6, [sp, #32] 1000 000e 099F ldr r7, [sp, #36] 5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1001 .loc 1 5857 3 is_stmt 1 view .LVU326 1002 0010 194B ldr r3, .L93 1003 .LVL85: 5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1004 .loc 1 5857 3 is_stmt 0 view .LVU327 1005 0012 0093 str r3, [sp] 1006 0014 4FF08073 mov r3, #16777216 1007 0018 EAB2 uxtb r2, r5 1008 .LVL86: 5857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1009 .loc 1 5857 3 view .LVU328 1010 001a FFF7FEFF bl I2C_TransferConfig 1011 .LVL87: 5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1012 .loc 1 5860 3 is_stmt 1 view .LVU329 5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1013 .loc 1 5860 7 is_stmt 0 view .LVU330 1014 001e 3A46 mov r2, r7 1015 0020 3146 mov r1, r6 1016 0022 2046 mov r0, r4 1017 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1018 .LVL88: 5860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1019 .loc 1 5860 6 discriminator 1 view .LVU331 1020 0028 F8B9 cbnz r0, .L88 5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1021 .loc 1 5866 3 is_stmt 1 view .LVU332 5866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1022 .loc 1 5866 6 is_stmt 0 view .LVU333 1023 002a 012D cmp r5, #1 1024 002c 0ED1 bne .L86 5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1025 .loc 1 5869 5 is_stmt 1 view .LVU334 5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1026 .loc 1 5869 9 is_stmt 0 view .LVU335 1027 002e 2368 ldr r3, [r4] 5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1028 .loc 1 5869 28 view .LVU336 1029 0030 5FFA88F2 uxtb r2, r8 5869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1030 .loc 1 5869 26 view .LVU337 ARM GAS /tmp/ccJ8PJrU.s page 155 1031 0034 9A62 str r2, [r3, #40] 1032 .L87: 5888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1033 .loc 1 5888 3 is_stmt 1 view .LVU338 5888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1034 .loc 1 5888 7 is_stmt 0 view .LVU339 1035 0036 0097 str r7, [sp] 1036 0038 3346 mov r3, r6 1037 003a 0022 movs r2, #0 1038 003c 8021 movs r1, #128 1039 003e 2046 mov r0, r4 1040 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1041 .LVL89: 5888:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1042 .loc 1 5888 6 discriminator 1 view .LVU340 1043 0044 A8B9 cbnz r0, .L92 1044 .L85: 5894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1045 .loc 1 5894 1 view .LVU341 1046 0046 02B0 add sp, sp, #8 1047 .cfi_remember_state 1048 .cfi_def_cfa_offset 24 1049 @ sp needed 1050 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1051 .LVL90: 1052 .L86: 1053 .cfi_restore_state 5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1054 .loc 1 5875 5 is_stmt 1 view .LVU342 5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1055 .loc 1 5875 9 is_stmt 0 view .LVU343 1056 004c 2368 ldr r3, [r4] 5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1057 .loc 1 5875 28 view .LVU344 1058 004e 4FEA1822 lsr r2, r8, #8 5875:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1059 .loc 1 5875 26 view .LVU345 1060 0052 9A62 str r2, [r3, #40] 5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1061 .loc 1 5878 5 is_stmt 1 view .LVU346 5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1062 .loc 1 5878 9 is_stmt 0 view .LVU347 1063 0054 3A46 mov r2, r7 1064 0056 3146 mov r1, r6 1065 0058 2046 mov r0, r4 1066 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1067 .LVL91: 5878:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1068 .loc 1 5878 8 discriminator 1 view .LVU348 1069 005e 30B9 cbnz r0, .L89 5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1070 .loc 1 5884 5 is_stmt 1 view .LVU349 5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1071 .loc 1 5884 9 is_stmt 0 view .LVU350 1072 0060 2368 ldr r3, [r4] 5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1073 .loc 1 5884 28 view .LVU351 ARM GAS /tmp/ccJ8PJrU.s page 156 1074 0062 5FFA88F2 uxtb r2, r8 5884:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1075 .loc 1 5884 26 view .LVU352 1076 0066 9A62 str r2, [r3, #40] 1077 0068 E5E7 b .L87 1078 .L88: 5862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1079 .loc 1 5862 12 view .LVU353 1080 006a 0120 movs r0, #1 1081 006c EBE7 b .L85 1082 .L89: 5880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1083 .loc 1 5880 14 view .LVU354 1084 006e 0120 movs r0, #1 1085 0070 E9E7 b .L85 1086 .L92: 5890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1087 .loc 1 5890 12 view .LVU355 1088 0072 0120 movs r0, #1 1089 0074 E7E7 b .L85 1090 .L94: 1091 0076 00BF .align 2 1092 .L93: 1093 0078 00200080 .word -2147475456 1094 .cfi_endproc 1095 .LFE178: 1097 .section .text.I2C_RequestMemoryRead,"ax",%progbits 1098 .align 1 1099 .syntax unified 1100 .thumb 1101 .thumb_func 1103 I2C_RequestMemoryRead: 1104 .LVL92: 1105 .LFB179: 5911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 1106 .loc 1 5911 1 is_stmt 1 view -0 1107 .cfi_startproc 1108 @ args = 8, pretend = 0, frame = 0 1109 @ frame_needed = 0, uses_anonymous_args = 0 5911:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 1110 .loc 1 5911 1 is_stmt 0 view .LVU357 1111 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1112 .cfi_def_cfa_offset 24 1113 .cfi_offset 4, -24 1114 .cfi_offset 5, -20 1115 .cfi_offset 6, -16 1116 .cfi_offset 7, -12 1117 .cfi_offset 8, -8 1118 .cfi_offset 14, -4 1119 0004 82B0 sub sp, sp, #8 1120 .cfi_def_cfa_offset 32 1121 0006 0446 mov r4, r0 1122 0008 9046 mov r8, r2 1123 000a 1D46 mov r5, r3 1124 000c 089E ldr r6, [sp, #32] 1125 000e 099F ldr r7, [sp, #36] 5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 157 1126 .loc 1 5912 3 is_stmt 1 view .LVU358 1127 0010 184B ldr r3, .L104 1128 .LVL93: 5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1129 .loc 1 5912 3 is_stmt 0 view .LVU359 1130 0012 0093 str r3, [sp] 1131 0014 0023 movs r3, #0 1132 0016 EAB2 uxtb r2, r5 1133 .LVL94: 5912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1134 .loc 1 5912 3 view .LVU360 1135 0018 FFF7FEFF bl I2C_TransferConfig 1136 .LVL95: 5915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1137 .loc 1 5915 3 is_stmt 1 view .LVU361 5915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1138 .loc 1 5915 7 is_stmt 0 view .LVU362 1139 001c 3A46 mov r2, r7 1140 001e 3146 mov r1, r6 1141 0020 2046 mov r0, r4 1142 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1143 .LVL96: 5915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1144 .loc 1 5915 6 discriminator 1 view .LVU363 1145 0026 F8B9 cbnz r0, .L99 5921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1146 .loc 1 5921 3 is_stmt 1 view .LVU364 5921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1147 .loc 1 5921 6 is_stmt 0 view .LVU365 1148 0028 012D cmp r5, #1 1149 002a 0ED1 bne .L97 5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1150 .loc 1 5924 5 is_stmt 1 view .LVU366 5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1151 .loc 1 5924 9 is_stmt 0 view .LVU367 1152 002c 2368 ldr r3, [r4] 5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1153 .loc 1 5924 28 view .LVU368 1154 002e 5FFA88F2 uxtb r2, r8 5924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1155 .loc 1 5924 26 view .LVU369 1156 0032 9A62 str r2, [r3, #40] 1157 .L98: 5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1158 .loc 1 5943 3 is_stmt 1 view .LVU370 5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1159 .loc 1 5943 7 is_stmt 0 view .LVU371 1160 0034 0097 str r7, [sp] 1161 0036 3346 mov r3, r6 1162 0038 0022 movs r2, #0 1163 003a 4021 movs r1, #64 1164 003c 2046 mov r0, r4 1165 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1166 .LVL97: 5943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1167 .loc 1 5943 6 discriminator 1 view .LVU372 1168 0042 A8B9 cbnz r0, .L103 ARM GAS /tmp/ccJ8PJrU.s page 158 1169 .L96: 5949:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1170 .loc 1 5949 1 view .LVU373 1171 0044 02B0 add sp, sp, #8 1172 .cfi_remember_state 1173 .cfi_def_cfa_offset 24 1174 @ sp needed 1175 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1176 .LVL98: 1177 .L97: 1178 .cfi_restore_state 5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1179 .loc 1 5930 5 is_stmt 1 view .LVU374 5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1180 .loc 1 5930 9 is_stmt 0 view .LVU375 1181 004a 2368 ldr r3, [r4] 5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1182 .loc 1 5930 28 view .LVU376 1183 004c 4FEA1822 lsr r2, r8, #8 5930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1184 .loc 1 5930 26 view .LVU377 1185 0050 9A62 str r2, [r3, #40] 5933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1186 .loc 1 5933 5 is_stmt 1 view .LVU378 5933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1187 .loc 1 5933 9 is_stmt 0 view .LVU379 1188 0052 3A46 mov r2, r7 1189 0054 3146 mov r1, r6 1190 0056 2046 mov r0, r4 1191 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1192 .LVL99: 5933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1193 .loc 1 5933 8 discriminator 1 view .LVU380 1194 005c 30B9 cbnz r0, .L100 5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1195 .loc 1 5939 5 is_stmt 1 view .LVU381 5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1196 .loc 1 5939 9 is_stmt 0 view .LVU382 1197 005e 2368 ldr r3, [r4] 5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1198 .loc 1 5939 28 view .LVU383 1199 0060 5FFA88F2 uxtb r2, r8 5939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1200 .loc 1 5939 26 view .LVU384 1201 0064 9A62 str r2, [r3, #40] 1202 0066 E5E7 b .L98 1203 .L99: 5917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1204 .loc 1 5917 12 view .LVU385 1205 0068 0120 movs r0, #1 1206 006a EBE7 b .L96 1207 .L100: 5935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1208 .loc 1 5935 14 view .LVU386 1209 006c 0120 movs r0, #1 1210 006e E9E7 b .L96 1211 .L103: ARM GAS /tmp/ccJ8PJrU.s page 159 5945:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1212 .loc 1 5945 12 view .LVU387 1213 0070 0120 movs r0, #1 1214 0072 E7E7 b .L96 1215 .L105: 1216 .align 2 1217 .L104: 1218 0074 00200080 .word -2147475456 1219 .cfi_endproc 1220 .LFE179: 1222 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits 1223 .align 1 1224 .syntax unified 1225 .thumb 1226 .thumb_func 1228 I2C_WaitOnSTOPFlagUntilTimeout: 1229 .LVL100: 1230 .LFB197: 7079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1231 .loc 1 7079 1 is_stmt 1 view -0 1232 .cfi_startproc 1233 @ args = 0, pretend = 0, frame = 0 1234 @ frame_needed = 0, uses_anonymous_args = 0 7079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1235 .loc 1 7079 1 is_stmt 0 view .LVU389 1236 0000 70B5 push {r4, r5, r6, lr} 1237 .cfi_def_cfa_offset 16 1238 .cfi_offset 4, -16 1239 .cfi_offset 5, -12 1240 .cfi_offset 6, -8 1241 .cfi_offset 14, -4 1242 0002 0446 mov r4, r0 1243 0004 0D46 mov r5, r1 1244 0006 1646 mov r6, r2 7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1245 .loc 1 7080 3 is_stmt 1 view .LVU390 7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1246 .loc 1 7080 9 is_stmt 0 view .LVU391 1247 0008 04E0 b .L107 1248 .LVL101: 1249 .L109: 7091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1250 .loc 1 7091 7 is_stmt 1 view .LVU392 7091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1251 .loc 1 7091 12 is_stmt 0 view .LVU393 1252 000a 2368 ldr r3, [r4] 1253 000c 9B69 ldr r3, [r3, #24] 7091:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1254 .loc 1 7091 10 view .LVU394 1255 000e 13F0200F tst r3, #32 1256 0012 12D0 beq .L113 1257 .L107: 7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1258 .loc 1 7080 51 is_stmt 1 view .LVU395 7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1259 .loc 1 7080 10 is_stmt 0 view .LVU396 1260 0014 2368 ldr r3, [r4] ARM GAS /tmp/ccJ8PJrU.s page 160 1261 0016 9B69 ldr r3, [r3, #24] 7080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1262 .loc 1 7080 51 view .LVU397 1263 0018 13F0200F tst r3, #32 1264 001c 1BD1 bne .L114 7083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1265 .loc 1 7083 5 is_stmt 1 view .LVU398 7083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1266 .loc 1 7083 9 is_stmt 0 view .LVU399 1267 001e 3246 mov r2, r6 1268 0020 2946 mov r1, r5 1269 0022 2046 mov r0, r4 1270 0024 FFF7FEFF bl I2C_IsErrorOccurred 1271 .LVL102: 7083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1272 .loc 1 7083 8 discriminator 1 view .LVU400 1273 0028 B8B9 cbnz r0, .L111 7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1274 .loc 1 7089 5 is_stmt 1 view .LVU401 7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1275 .loc 1 7089 11 is_stmt 0 view .LVU402 1276 002a FFF7FEFF bl HAL_GetTick 1277 .LVL103: 7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1278 .loc 1 7089 25 discriminator 1 view .LVU403 1279 002e 801B subs r0, r0, r6 7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1280 .loc 1 7089 8 discriminator 1 view .LVU404 1281 0030 A842 cmp r0, r5 1282 0032 EAD8 bhi .L109 7089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1283 .loc 1 7089 49 discriminator 1 view .LVU405 1284 0034 002D cmp r5, #0 1285 0036 EDD1 bne .L107 1286 0038 E7E7 b .L109 1287 .L113: 7093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1288 .loc 1 7093 9 is_stmt 1 view .LVU406 7093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1289 .loc 1 7093 13 is_stmt 0 view .LVU407 1290 003a 636C ldr r3, [r4, #68] 7093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1291 .loc 1 7093 25 view .LVU408 1292 003c 43F02003 orr r3, r3, #32 1293 0040 6364 str r3, [r4, #68] 7094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1294 .loc 1 7094 9 is_stmt 1 view .LVU409 7094:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1295 .loc 1 7094 21 is_stmt 0 view .LVU410 1296 0042 2023 movs r3, #32 1297 0044 84F84130 strb r3, [r4, #65] 7095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1298 .loc 1 7095 9 is_stmt 1 view .LVU411 7095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1299 .loc 1 7095 20 is_stmt 0 view .LVU412 1300 0048 0023 movs r3, #0 1301 004a 84F84230 strb r3, [r4, #66] ARM GAS /tmp/ccJ8PJrU.s page 161 7098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1302 .loc 1 7098 9 is_stmt 1 view .LVU413 7098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1303 .loc 1 7098 9 view .LVU414 1304 004e 84F84030 strb r3, [r4, #64] 7098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1305 .loc 1 7098 9 view .LVU415 7100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1306 .loc 1 7100 9 view .LVU416 7100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1307 .loc 1 7100 16 is_stmt 0 view .LVU417 1308 0052 0120 movs r0, #1 1309 0054 00E0 b .L108 1310 .L114: 7104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1311 .loc 1 7104 10 view .LVU418 1312 0056 0020 movs r0, #0 1313 .L108: 7105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1314 .loc 1 7105 1 view .LVU419 1315 0058 70BD pop {r4, r5, r6, pc} 1316 .LVL104: 1317 .L111: 7085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1318 .loc 1 7085 14 view .LVU420 1319 005a 0120 movs r0, #1 1320 005c FCE7 b .L108 1321 .cfi_endproc 1322 .LFE197: 1324 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits 1325 .align 1 1326 .syntax unified 1327 .thumb 1328 .thumb_func 1330 I2C_WaitOnRXNEFlagUntilTimeout: 1331 .LVL105: 1332 .LFB198: 7117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1333 .loc 1 7117 1 is_stmt 1 view -0 1334 .cfi_startproc 1335 @ args = 0, pretend = 0, frame = 0 1336 @ frame_needed = 0, uses_anonymous_args = 0 7117:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1337 .loc 1 7117 1 is_stmt 0 view .LVU422 1338 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 1339 .cfi_def_cfa_offset 24 1340 .cfi_offset 3, -24 1341 .cfi_offset 4, -20 1342 .cfi_offset 5, -16 1343 .cfi_offset 6, -12 1344 .cfi_offset 7, -8 1345 .cfi_offset 14, -4 1346 0002 0446 mov r4, r0 1347 0004 0E46 mov r6, r1 1348 0006 1746 mov r7, r2 7118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1349 .loc 1 7118 3 is_stmt 1 view .LVU423 ARM GAS /tmp/ccJ8PJrU.s page 162 1350 .LVL106: 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1351 .loc 1 7120 3 view .LVU424 7118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1352 .loc 1 7118 21 is_stmt 0 view .LVU425 1353 0008 0025 movs r5, #0 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1354 .loc 1 7120 9 view .LVU426 1355 000a 18E0 b .L116 1356 .LVL107: 1357 .L119: 7162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1358 .loc 1 7162 9 is_stmt 1 view .LVU427 7162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1359 .loc 1 7162 25 is_stmt 0 view .LVU428 1360 000c 0023 movs r3, #0 1361 000e 6364 str r3, [r4, #68] 1362 .LVL108: 1363 .L118: 7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1364 .loc 1 7167 5 is_stmt 1 view .LVU429 7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1365 .loc 1 7167 12 is_stmt 0 view .LVU430 1366 0010 FFF7FEFF bl HAL_GetTick 1367 .LVL109: 7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1368 .loc 1 7167 26 discriminator 1 view .LVU431 1369 0014 C01B subs r0, r0, r7 7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1370 .loc 1 7167 8 discriminator 1 view .LVU432 1371 0016 B042 cmp r0, r6 1372 0018 00D8 bhi .L120 7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1373 .loc 1 7167 50 discriminator 2 view .LVU433 1374 001a 86B9 cbnz r6, .L116 1375 .L120: 7167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1376 .loc 1 7167 70 discriminator 3 view .LVU434 1377 001c 7DB9 cbnz r5, .L116 7169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1378 .loc 1 7169 7 is_stmt 1 view .LVU435 7169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1379 .loc 1 7169 12 is_stmt 0 view .LVU436 1380 001e 2368 ldr r3, [r4] 1381 0020 9B69 ldr r3, [r3, #24] 7169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1382 .loc 1 7169 10 view .LVU437 1383 0022 13F0040F tst r3, #4 1384 0026 0AD1 bne .L116 7171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1385 .loc 1 7171 9 is_stmt 1 view .LVU438 7171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1386 .loc 1 7171 13 is_stmt 0 view .LVU439 1387 0028 636C ldr r3, [r4, #68] 7171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1388 .loc 1 7171 25 view .LVU440 1389 002a 43F02003 orr r3, r3, #32 ARM GAS /tmp/ccJ8PJrU.s page 163 1390 002e 6364 str r3, [r4, #68] 7172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1391 .loc 1 7172 9 is_stmt 1 view .LVU441 7172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1392 .loc 1 7172 21 is_stmt 0 view .LVU442 1393 0030 2023 movs r3, #32 1394 0032 84F84130 strb r3, [r4, #65] 7175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1395 .loc 1 7175 9 is_stmt 1 view .LVU443 7175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1396 .loc 1 7175 9 view .LVU444 1397 0036 0023 movs r3, #0 1398 0038 84F84030 strb r3, [r4, #64] 7175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1399 .loc 1 7175 9 view .LVU445 7177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1400 .loc 1 7177 9 view .LVU446 1401 .LVL110: 7177:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1402 .loc 1 7177 16 is_stmt 0 view .LVU447 1403 003c 0125 movs r5, #1 1404 .LVL111: 1405 .L116: 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1406 .loc 1 7120 61 is_stmt 1 view .LVU448 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1407 .loc 1 7120 11 is_stmt 0 view .LVU449 1408 003e 2368 ldr r3, [r4] 1409 0040 9B69 ldr r3, [r3, #24] 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1410 .loc 1 7120 61 view .LVU450 1411 0042 13F0040F tst r3, #4 1412 0046 2ED1 bne .L122 7120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1413 .loc 1 7120 61 discriminator 1 view .LVU451 1414 0048 6DBB cbnz r5, .L122 7123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1415 .loc 1 7123 5 is_stmt 1 view .LVU452 7123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1416 .loc 1 7123 9 is_stmt 0 view .LVU453 1417 004a 3A46 mov r2, r7 1418 004c 3146 mov r1, r6 1419 004e 2046 mov r0, r4 1420 0050 FFF7FEFF bl I2C_IsErrorOccurred 1421 .LVL112: 7123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1422 .loc 1 7123 8 discriminator 1 view .LVU454 1423 0054 00B1 cbz r0, .L117 7125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1424 .loc 1 7125 14 view .LVU455 1425 0056 0125 movs r5, #1 1426 .LVL113: 1427 .L117: 7129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1428 .loc 1 7129 5 is_stmt 1 view .LVU456 7129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1429 .loc 1 7129 10 is_stmt 0 view .LVU457 ARM GAS /tmp/ccJ8PJrU.s page 164 1430 0058 2368 ldr r3, [r4] 1431 005a 9A69 ldr r2, [r3, #24] 7129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1432 .loc 1 7129 8 view .LVU458 1433 005c 12F0200F tst r2, #32 1434 0060 D6D0 beq .L118 7129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1435 .loc 1 7129 59 discriminator 1 view .LVU459 1436 0062 002D cmp r5, #0 1437 0064 D4D1 bne .L118 7133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1438 .loc 1 7133 7 is_stmt 1 view .LVU460 7133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1439 .loc 1 7133 12 is_stmt 0 view .LVU461 1440 0066 9A69 ldr r2, [r3, #24] 7137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1441 .loc 1 7137 9 is_stmt 1 view .LVU462 7141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1442 .loc 1 7141 7 view .LVU463 7141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1443 .loc 1 7141 11 is_stmt 0 view .LVU464 1444 0068 9A69 ldr r2, [r3, #24] 7141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1445 .loc 1 7141 10 view .LVU465 1446 006a 12F0100F tst r2, #16 1447 006e CDD0 beq .L119 7143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 1448 .loc 1 7143 9 is_stmt 1 view .LVU466 1449 0070 1022 movs r2, #16 1450 0072 DA61 str r2, [r3, #28] 7144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1451 .loc 1 7144 9 view .LVU467 7144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1452 .loc 1 7144 25 is_stmt 0 view .LVU468 1453 0074 0423 movs r3, #4 1454 0076 6364 str r3, [r4, #68] 7147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1455 .loc 1 7147 9 is_stmt 1 view .LVU469 1456 0078 2368 ldr r3, [r4] 1457 007a 2022 movs r2, #32 1458 007c DA61 str r2, [r3, #28] 7150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1459 .loc 1 7150 9 view .LVU470 1460 007e 2168 ldr r1, [r4] 1461 0080 4B68 ldr r3, [r1, #4] 1462 0082 23F0FF73 bic r3, r3, #33423360 1463 0086 23F48B33 bic r3, r3, #71168 1464 008a 23F4FF73 bic r3, r3, #510 1465 008e 23F00103 bic r3, r3, #1 1466 0092 4B60 str r3, [r1, #4] 7152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1467 .loc 1 7152 9 view .LVU471 7152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1468 .loc 1 7152 21 is_stmt 0 view .LVU472 1469 0094 84F84120 strb r2, [r4, #65] 7153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1470 .loc 1 7153 9 is_stmt 1 view .LVU473 ARM GAS /tmp/ccJ8PJrU.s page 165 7153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1471 .loc 1 7153 20 is_stmt 0 view .LVU474 1472 0098 0023 movs r3, #0 1473 009a 84F84230 strb r3, [r4, #66] 7156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1474 .loc 1 7156 9 is_stmt 1 view .LVU475 7156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1475 .loc 1 7156 9 view .LVU476 1476 009e 84F84030 strb r3, [r4, #64] 7156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1477 .loc 1 7156 9 view .LVU477 7158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1478 .loc 1 7158 9 view .LVU478 1479 .LVL114: 7158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1480 .loc 1 7158 16 is_stmt 0 view .LVU479 1481 00a2 0125 movs r5, #1 1482 00a4 B4E7 b .L118 1483 .LVL115: 1484 .L122: 7181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1485 .loc 1 7181 3 is_stmt 1 view .LVU480 7182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1486 .loc 1 7182 1 is_stmt 0 view .LVU481 1487 00a6 2846 mov r0, r5 1488 00a8 F8BD pop {r3, r4, r5, r6, r7, pc} 7182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1489 .loc 1 7182 1 view .LVU482 1490 .cfi_endproc 1491 .LFE198: 1493 .section .text.HAL_I2C_MspInit,"ax",%progbits 1494 .align 1 1495 .weak HAL_I2C_MspInit 1496 .syntax unified 1497 .thumb 1498 .thumb_func 1500 HAL_I2C_MspInit: 1501 .LVL116: 1502 .LFB125: 697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1503 .loc 1 697 1 is_stmt 1 view -0 1504 .cfi_startproc 1505 @ args = 0, pretend = 0, frame = 0 1506 @ frame_needed = 0, uses_anonymous_args = 0 1507 @ link register save eliminated. 699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1508 .loc 1 699 3 view .LVU484 704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1509 .loc 1 704 1 is_stmt 0 view .LVU485 1510 0000 7047 bx lr 1511 .cfi_endproc 1512 .LFE125: 1514 .section .text.HAL_I2C_Init,"ax",%progbits 1515 .align 1 1516 .global HAL_I2C_Init 1517 .syntax unified 1518 .thumb ARM GAS /tmp/ccJ8PJrU.s page 166 1519 .thumb_func 1521 HAL_I2C_Init: 1522 .LVL117: 1523 .LFB123: 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1524 .loc 1 536 1 is_stmt 1 view -0 1525 .cfi_startproc 1526 @ args = 0, pretend = 0, frame = 0 1527 @ frame_needed = 0, uses_anonymous_args = 0 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1528 .loc 1 538 3 view .LVU487 538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1529 .loc 1 538 6 is_stmt 0 view .LVU488 1530 0000 0028 cmp r0, #0 1531 0002 5FD0 beq .L134 536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1532 .loc 1 536 1 view .LVU489 1533 0004 10B5 push {r4, lr} 1534 .cfi_def_cfa_offset 8 1535 .cfi_offset 4, -8 1536 .cfi_offset 14, -4 1537 0006 0446 mov r4, r0 544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 1538 .loc 1 544 3 is_stmt 1 view .LVU490 545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 1539 .loc 1 545 3 view .LVU491 546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 1540 .loc 1 546 3 view .LVU492 547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 1541 .loc 1 547 3 view .LVU493 548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 1542 .loc 1 548 3 view .LVU494 549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 1543 .loc 1 549 3 view .LVU495 550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 1544 .loc 1 550 3 view .LVU496 551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1545 .loc 1 551 3 view .LVU497 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1546 .loc 1 553 3 view .LVU498 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1547 .loc 1 553 11 is_stmt 0 view .LVU499 1548 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1549 .loc 1 553 6 view .LVU500 1550 000c 002B cmp r3, #0 1551 000e 48D0 beq .L139 1552 .LVL118: 1553 .L129: 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1554 .loc 1 584 3 is_stmt 1 view .LVU501 584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1555 .loc 1 584 15 is_stmt 0 view .LVU502 1556 0010 2423 movs r3, #36 1557 0012 84F84130 strb r3, [r4, #65] 587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1558 .loc 1 587 3 is_stmt 1 view .LVU503 ARM GAS /tmp/ccJ8PJrU.s page 167 1559 0016 2268 ldr r2, [r4] 1560 0018 1368 ldr r3, [r2] 1561 001a 23F00103 bic r3, r3, #1 1562 001e 1360 str r3, [r2] 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1563 .loc 1 591 3 view .LVU504 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1564 .loc 1 591 39 is_stmt 0 view .LVU505 1565 0020 6368 ldr r3, [r4, #4] 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1566 .loc 1 591 7 view .LVU506 1567 0022 2268 ldr r2, [r4] 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1568 .loc 1 591 47 view .LVU507 1569 0024 23F07063 bic r3, r3, #251658240 591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1570 .loc 1 591 27 view .LVU508 1571 0028 1361 str r3, [r2, #16] 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1572 .loc 1 595 3 is_stmt 1 view .LVU509 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1573 .loc 1 595 7 is_stmt 0 view .LVU510 1574 002a 2268 ldr r2, [r4] 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1575 .loc 1 595 17 view .LVU511 1576 002c 9368 ldr r3, [r2, #8] 595:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1577 .loc 1 595 24 view .LVU512 1578 002e 23F40043 bic r3, r3, #32768 1579 0032 9360 str r3, [r2, #8] 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1580 .loc 1 598 3 is_stmt 1 view .LVU513 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1581 .loc 1 598 17 is_stmt 0 view .LVU514 1582 0034 E368 ldr r3, [r4, #12] 598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1583 .loc 1 598 6 view .LVU515 1584 0036 012B cmp r3, #1 1585 0038 38D0 beq .L140 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1586 .loc 1 604 5 is_stmt 1 view .LVU516 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1587 .loc 1 604 75 is_stmt 0 view .LVU517 1588 003a A368 ldr r3, [r4, #8] 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1589 .loc 1 604 9 view .LVU518 1590 003c 2268 ldr r2, [r4] 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1591 .loc 1 604 63 view .LVU519 1592 003e 43F40443 orr r3, r3, #33792 604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1593 .loc 1 604 26 view .LVU520 1594 0042 9360 str r3, [r2, #8] 1595 .L131: 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1596 .loc 1 609 3 is_stmt 1 view .LVU521 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 168 1597 .loc 1 609 17 is_stmt 0 view .LVU522 1598 0044 E368 ldr r3, [r4, #12] 609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1599 .loc 1 609 6 view .LVU523 1600 0046 022B cmp r3, #2 1601 0048 36D0 beq .L141 616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1602 .loc 1 616 5 is_stmt 1 view .LVU524 1603 004a 2268 ldr r2, [r4] 1604 004c 5368 ldr r3, [r2, #4] 1605 004e 23F40063 bic r3, r3, #2048 1606 0052 5360 str r3, [r2, #4] 1607 .L133: 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1608 .loc 1 619 3 view .LVU525 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1609 .loc 1 619 7 is_stmt 0 view .LVU526 1610 0054 2268 ldr r2, [r4] 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1611 .loc 1 619 17 view .LVU527 1612 0056 5368 ldr r3, [r2, #4] 619:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1613 .loc 1 619 23 view .LVU528 1614 0058 43F00073 orr r3, r3, #33554432 1615 005c 43F40043 orr r3, r3, #32768 1616 0060 5360 str r3, [r2, #4] 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1617 .loc 1 623 3 is_stmt 1 view .LVU529 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1618 .loc 1 623 7 is_stmt 0 view .LVU530 1619 0062 2268 ldr r2, [r4] 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1620 .loc 1 623 17 view .LVU531 1621 0064 D368 ldr r3, [r2, #12] 623:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1622 .loc 1 623 24 view .LVU532 1623 0066 23F40043 bic r3, r3, #32768 1624 006a D360 str r3, [r2, #12] 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1625 .loc 1 626 3 is_stmt 1 view .LVU533 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1626 .loc 1 626 37 is_stmt 0 view .LVU534 1627 006c 2369 ldr r3, [r4, #16] 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1628 .loc 1 626 66 view .LVU535 1629 006e 6269 ldr r2, [r4, #20] 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1630 .loc 1 626 54 view .LVU536 1631 0070 1343 orrs r3, r3, r2 627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1632 .loc 1 627 38 view .LVU537 1633 0072 A169 ldr r1, [r4, #24] 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1634 .loc 1 626 7 view .LVU538 1635 0074 2268 ldr r2, [r4] 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1636 .loc 1 626 79 view .LVU539 ARM GAS /tmp/ccJ8PJrU.s page 169 1637 0076 43EA0123 orr r3, r3, r1, lsl #8 626:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1638 .loc 1 626 24 view .LVU540 1639 007a D360 str r3, [r2, #12] 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1640 .loc 1 631 3 is_stmt 1 view .LVU541 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1641 .loc 1 631 36 is_stmt 0 view .LVU542 1642 007c E369 ldr r3, [r4, #28] 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1643 .loc 1 631 65 view .LVU543 1644 007e 216A ldr r1, [r4, #32] 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1645 .loc 1 631 7 view .LVU544 1646 0080 2268 ldr r2, [r4] 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1647 .loc 1 631 53 view .LVU545 1648 0082 0B43 orrs r3, r3, r1 631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1649 .loc 1 631 23 view .LVU546 1650 0084 1360 str r3, [r2] 634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1651 .loc 1 634 3 is_stmt 1 view .LVU547 1652 0086 2268 ldr r2, [r4] 1653 0088 1368 ldr r3, [r2] 1654 008a 43F00103 orr r3, r3, #1 1655 008e 1360 str r3, [r2] 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1656 .loc 1 636 3 view .LVU548 636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1657 .loc 1 636 19 is_stmt 0 view .LVU549 1658 0090 0020 movs r0, #0 1659 0092 6064 str r0, [r4, #68] 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1660 .loc 1 637 3 is_stmt 1 view .LVU550 637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1661 .loc 1 637 15 is_stmt 0 view .LVU551 1662 0094 2023 movs r3, #32 1663 0096 84F84130 strb r3, [r4, #65] 638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1664 .loc 1 638 3 is_stmt 1 view .LVU552 638:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1665 .loc 1 638 23 is_stmt 0 view .LVU553 1666 009a 2063 str r0, [r4, #48] 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1667 .loc 1 639 3 is_stmt 1 view .LVU554 639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1668 .loc 1 639 14 is_stmt 0 view .LVU555 1669 009c 84F84200 strb r0, [r4, #66] 641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1670 .loc 1 641 3 is_stmt 1 view .LVU556 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1671 .loc 1 642 1 is_stmt 0 view .LVU557 1672 00a0 10BD pop {r4, pc} 1673 .LVL119: 1674 .L139: 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 170 1675 .loc 1 556 5 is_stmt 1 view .LVU558 556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1676 .loc 1 556 16 is_stmt 0 view .LVU559 1677 00a2 80F84030 strb r3, [r0, #64] 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1678 .loc 1 580 5 is_stmt 1 view .LVU560 1679 00a6 FFF7FEFF bl HAL_I2C_MspInit 1680 .LVL120: 580:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1681 .loc 1 580 5 is_stmt 0 view .LVU561 1682 00aa B1E7 b .L129 1683 .L140: 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1684 .loc 1 600 5 is_stmt 1 view .LVU562 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1685 .loc 1 600 56 is_stmt 0 view .LVU563 1686 00ac A368 ldr r3, [r4, #8] 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1687 .loc 1 600 9 view .LVU564 1688 00ae 2268 ldr r2, [r4] 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1689 .loc 1 600 44 view .LVU565 1690 00b0 43F40043 orr r3, r3, #32768 600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1691 .loc 1 600 26 view .LVU566 1692 00b4 9360 str r3, [r2, #8] 1693 00b6 C5E7 b .L131 1694 .L141: 611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1695 .loc 1 611 5 is_stmt 1 view .LVU567 1696 00b8 2268 ldr r2, [r4] 1697 00ba 5368 ldr r3, [r2, #4] 1698 00bc 43F40063 orr r3, r3, #2048 1699 00c0 5360 str r3, [r2, #4] 1700 00c2 C7E7 b .L133 1701 .LVL121: 1702 .L134: 1703 .cfi_def_cfa_offset 0 1704 .cfi_restore 4 1705 .cfi_restore 14 540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1706 .loc 1 540 12 is_stmt 0 view .LVU568 1707 00c4 0120 movs r0, #1 1708 .LVL122: 642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1709 .loc 1 642 1 view .LVU569 1710 00c6 7047 bx lr 1711 .cfi_endproc 1712 .LFE123: 1714 .section .text.HAL_I2C_MspDeInit,"ax",%progbits 1715 .align 1 1716 .weak HAL_I2C_MspDeInit 1717 .syntax unified 1718 .thumb 1719 .thumb_func 1721 HAL_I2C_MspDeInit: 1722 .LVL123: ARM GAS /tmp/ccJ8PJrU.s page 171 1723 .LFB126: 713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1724 .loc 1 713 1 is_stmt 1 view -0 1725 .cfi_startproc 1726 @ args = 0, pretend = 0, frame = 0 1727 @ frame_needed = 0, uses_anonymous_args = 0 1728 @ link register save eliminated. 715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1729 .loc 1 715 3 view .LVU571 720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1730 .loc 1 720 1 is_stmt 0 view .LVU572 1731 0000 7047 bx lr 1732 .cfi_endproc 1733 .LFE126: 1735 .section .text.HAL_I2C_DeInit,"ax",%progbits 1736 .align 1 1737 .global HAL_I2C_DeInit 1738 .syntax unified 1739 .thumb 1740 .thumb_func 1742 HAL_I2C_DeInit: 1743 .LVL124: 1744 .LFB124: 651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1745 .loc 1 651 1 is_stmt 1 view -0 1746 .cfi_startproc 1747 @ args = 0, pretend = 0, frame = 0 1748 @ frame_needed = 0, uses_anonymous_args = 0 653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1749 .loc 1 653 3 view .LVU574 653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1750 .loc 1 653 6 is_stmt 0 view .LVU575 1751 0000 A8B1 cbz r0, .L145 651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1752 .loc 1 651 1 view .LVU576 1753 0002 10B5 push {r4, lr} 1754 .cfi_def_cfa_offset 8 1755 .cfi_offset 4, -8 1756 .cfi_offset 14, -4 1757 0004 0446 mov r4, r0 659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1758 .loc 1 659 3 is_stmt 1 view .LVU577 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1759 .loc 1 661 3 view .LVU578 661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1760 .loc 1 661 15 is_stmt 0 view .LVU579 1761 0006 2423 movs r3, #36 1762 0008 80F84130 strb r3, [r0, #65] 664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1763 .loc 1 664 3 is_stmt 1 view .LVU580 1764 000c 0268 ldr r2, [r0] 1765 000e 1368 ldr r3, [r2] 1766 0010 23F00103 bic r3, r3, #1 1767 0014 1360 str r3, [r2] 676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1768 .loc 1 676 3 view .LVU581 1769 0016 FFF7FEFF bl HAL_I2C_MspDeInit ARM GAS /tmp/ccJ8PJrU.s page 172 1770 .LVL125: 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1771 .loc 1 679 3 view .LVU582 679:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1772 .loc 1 679 19 is_stmt 0 view .LVU583 1773 001a 0020 movs r0, #0 1774 001c 6064 str r0, [r4, #68] 680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1775 .loc 1 680 3 is_stmt 1 view .LVU584 680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1776 .loc 1 680 15 is_stmt 0 view .LVU585 1777 001e 84F84100 strb r0, [r4, #65] 681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1778 .loc 1 681 3 is_stmt 1 view .LVU586 681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1779 .loc 1 681 23 is_stmt 0 view .LVU587 1780 0022 2063 str r0, [r4, #48] 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1781 .loc 1 682 3 is_stmt 1 view .LVU588 682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1782 .loc 1 682 14 is_stmt 0 view .LVU589 1783 0024 84F84200 strb r0, [r4, #66] 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1784 .loc 1 685 3 is_stmt 1 view .LVU590 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1785 .loc 1 685 3 view .LVU591 1786 0028 84F84000 strb r0, [r4, #64] 685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1787 .loc 1 685 3 view .LVU592 687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1788 .loc 1 687 3 view .LVU593 688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1789 .loc 1 688 1 is_stmt 0 view .LVU594 1790 002c 10BD pop {r4, pc} 1791 .LVL126: 1792 .L145: 1793 .cfi_def_cfa_offset 0 1794 .cfi_restore 4 1795 .cfi_restore 14 655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1796 .loc 1 655 12 view .LVU595 1797 002e 0120 movs r0, #1 1798 .LVL127: 688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1799 .loc 1 688 1 view .LVU596 1800 0030 7047 bx lr 1801 .cfi_endproc 1802 .LFE124: 1804 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits 1805 .align 1 1806 .global HAL_I2C_Master_Transmit 1807 .syntax unified 1808 .thumb 1809 .thumb_func 1811 HAL_I2C_Master_Transmit: 1812 .LVL128: 1813 .LFB127: ARM GAS /tmp/ccJ8PJrU.s page 173 1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 1814 .loc 1 1121 1 is_stmt 1 view -0 1815 .cfi_startproc 1816 @ args = 4, pretend = 0, frame = 0 1817 @ frame_needed = 0, uses_anonymous_args = 0 1121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 1818 .loc 1 1121 1 is_stmt 0 view .LVU598 1819 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 1820 .cfi_def_cfa_offset 32 1821 .cfi_offset 4, -32 1822 .cfi_offset 5, -28 1823 .cfi_offset 6, -24 1824 .cfi_offset 7, -20 1825 .cfi_offset 8, -16 1826 .cfi_offset 9, -12 1827 .cfi_offset 10, -8 1828 .cfi_offset 14, -4 1829 0004 82B0 sub sp, sp, #8 1830 .cfi_def_cfa_offset 40 1831 0006 0F46 mov r7, r1 1832 0008 0A9E ldr r6, [sp, #40] 1122:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 1833 .loc 1 1122 3 is_stmt 1 view .LVU599 1123:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1834 .loc 1 1123 3 view .LVU600 1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1835 .loc 1 1125 3 view .LVU601 1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1836 .loc 1 1125 11 is_stmt 0 view .LVU602 1837 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 1838 .LVL129: 1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1839 .loc 1 1125 11 view .LVU603 1840 000e C9B2 uxtb r1, r1 1125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1841 .loc 1 1125 6 view .LVU604 1842 0010 2029 cmp r1, #32 1843 0012 40F0B780 bne .L160 1844 0016 0446 mov r4, r0 1845 0018 9046 mov r8, r2 1846 001a 9946 mov r9, r3 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1847 .loc 1 1128 5 is_stmt 1 view .LVU605 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1848 .loc 1 1128 5 view .LVU606 1849 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 1850 .LVL130: 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1851 .loc 1 1128 5 is_stmt 0 view .LVU607 1852 0020 012B cmp r3, #1 1853 0022 00F0B380 beq .L161 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1854 .loc 1 1128 5 is_stmt 1 discriminator 2 view .LVU608 1855 0026 4FF0010A mov r10, #1 1856 002a 80F840A0 strb r10, [r0, #64] 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1857 .loc 1 1128 5 discriminator 2 view .LVU609 ARM GAS /tmp/ccJ8PJrU.s page 174 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1858 .loc 1 1131 5 view .LVU610 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1859 .loc 1 1131 17 is_stmt 0 view .LVU611 1860 002e FFF7FEFF bl HAL_GetTick 1861 .LVL131: 1131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1862 .loc 1 1131 17 view .LVU612 1863 0032 0546 mov r5, r0 1864 .LVL132: 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1865 .loc 1 1133 5 is_stmt 1 view .LVU613 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1866 .loc 1 1133 9 is_stmt 0 view .LVU614 1867 0034 0090 str r0, [sp] 1868 0036 1923 movs r3, #25 1869 0038 5246 mov r2, r10 1870 003a 4FF40041 mov r1, #32768 1871 003e 2046 mov r0, r4 1872 .LVL133: 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1873 .loc 1 1133 9 view .LVU615 1874 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1875 .LVL134: 1133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1876 .loc 1 1133 8 discriminator 1 view .LVU616 1877 0044 0028 cmp r0, #0 1878 0046 40F0A380 bne .L162 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1879 .loc 1 1138 5 is_stmt 1 view .LVU617 1138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1880 .loc 1 1138 21 is_stmt 0 view .LVU618 1881 004a 2123 movs r3, #33 1882 004c 84F84130 strb r3, [r4, #65] 1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1883 .loc 1 1139 5 is_stmt 1 view .LVU619 1139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1884 .loc 1 1139 21 is_stmt 0 view .LVU620 1885 0050 1023 movs r3, #16 1886 0052 84F84230 strb r3, [r4, #66] 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1887 .loc 1 1140 5 is_stmt 1 view .LVU621 1140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1888 .loc 1 1140 21 is_stmt 0 view .LVU622 1889 0056 0023 movs r3, #0 1890 0058 6364 str r3, [r4, #68] 1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1891 .loc 1 1143 5 is_stmt 1 view .LVU623 1143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 1892 .loc 1 1143 21 is_stmt 0 view .LVU624 1893 005a C4F82480 str r8, [r4, #36] 1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 1894 .loc 1 1144 5 is_stmt 1 view .LVU625 1144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 1895 .loc 1 1144 21 is_stmt 0 view .LVU626 1896 005e A4F82A90 strh r9, [r4, #42] @ movhi 1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 175 1897 .loc 1 1145 5 is_stmt 1 view .LVU627 1145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1898 .loc 1 1145 21 is_stmt 0 view .LVU628 1899 0062 6363 str r3, [r4, #52] 1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1900 .loc 1 1147 5 is_stmt 1 view .LVU629 1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1901 .loc 1 1147 13 is_stmt 0 view .LVU630 1902 0064 638D ldrh r3, [r4, #42] 1903 0066 9BB2 uxth r3, r3 1147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1904 .loc 1 1147 8 view .LVU631 1905 0068 FF2B cmp r3, #255 1906 006a 1ED9 bls .L152 1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1907 .loc 1 1149 7 is_stmt 1 view .LVU632 1149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1908 .loc 1 1149 22 is_stmt 0 view .LVU633 1909 006c FF23 movs r3, #255 1910 006e 2385 strh r3, [r4, #40] @ movhi 1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1911 .loc 1 1150 7 is_stmt 1 view .LVU634 1912 .LVL135: 1150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1913 .loc 1 1150 16 is_stmt 0 view .LVU635 1914 0070 4FF08073 mov r3, #16777216 1915 .LVL136: 1916 .L153: 1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1917 .loc 1 1158 5 is_stmt 1 view .LVU636 1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1918 .loc 1 1158 13 is_stmt 0 view .LVU637 1919 0074 228D ldrh r2, [r4, #40] 1158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 1920 .loc 1 1158 8 view .LVU638 1921 0076 EAB1 cbz r2, .L154 1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1922 .loc 1 1162 7 is_stmt 1 view .LVU639 1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1923 .loc 1 1162 11 is_stmt 0 view .LVU640 1924 0078 2268 ldr r2, [r4] 1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1925 .loc 1 1162 30 view .LVU641 1926 007a 98F80010 ldrb r1, [r8] @ zero_extendqisi2 1162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1927 .loc 1 1162 28 view .LVU642 1928 007e 9162 str r1, [r2, #40] 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1929 .loc 1 1165 7 is_stmt 1 view .LVU643 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1930 .loc 1 1165 11 is_stmt 0 view .LVU644 1931 0080 626A ldr r2, [r4, #36] 1165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1932 .loc 1 1165 21 view .LVU645 1933 0082 0132 adds r2, r2, #1 1934 0084 6262 str r2, [r4, #36] 1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; ARM GAS /tmp/ccJ8PJrU.s page 176 1935 .loc 1 1167 7 is_stmt 1 view .LVU646 1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 1936 .loc 1 1167 11 is_stmt 0 view .LVU647 1937 0086 628D ldrh r2, [r4, #42] 1938 0088 92B2 uxth r2, r2 1167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 1939 .loc 1 1167 22 view .LVU648 1940 008a 013A subs r2, r2, #1 1941 008c 92B2 uxth r2, r2 1942 008e 6285 strh r2, [r4, #42] @ movhi 1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1943 .loc 1 1168 7 is_stmt 1 view .LVU649 1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1944 .loc 1 1168 11 is_stmt 0 view .LVU650 1945 0090 228D ldrh r2, [r4, #40] 1168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 1946 .loc 1 1168 21 view .LVU651 1947 0092 013A subs r2, r2, #1 1948 0094 92B2 uxth r2, r2 1949 0096 2285 strh r2, [r4, #40] @ movhi 1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1950 .loc 1 1172 7 is_stmt 1 view .LVU652 1951 0098 0132 adds r2, r2, #1 1952 009a 4149 ldr r1, .L168 1953 009c 0091 str r1, [sp] 1954 009e D2B2 uxtb r2, r2 1955 00a0 3946 mov r1, r7 1956 00a2 2046 mov r0, r4 1957 00a4 FFF7FEFF bl I2C_TransferConfig 1958 .LVL137: 1172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1959 .loc 1 1172 7 is_stmt 0 view .LVU653 1960 00a8 18E0 b .L156 1961 .LVL138: 1962 .L152: 1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1963 .loc 1 1154 7 is_stmt 1 view .LVU654 1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1964 .loc 1 1154 28 is_stmt 0 view .LVU655 1965 00aa 638D ldrh r3, [r4, #42] 1154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1966 .loc 1 1154 22 view .LVU656 1967 00ac 2385 strh r3, [r4, #40] @ movhi 1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1968 .loc 1 1155 7 is_stmt 1 view .LVU657 1969 .LVL139: 1155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 1970 .loc 1 1155 16 is_stmt 0 view .LVU658 1971 00ae 4FF00073 mov r3, #33554432 1972 00b2 DFE7 b .L153 1973 .LVL140: 1974 .L154: 1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1975 .loc 1 1179 7 is_stmt 1 view .LVU659 1976 00b4 3A49 ldr r1, .L168 1977 00b6 0091 str r1, [sp] 1978 00b8 D2B2 uxtb r2, r2 ARM GAS /tmp/ccJ8PJrU.s page 177 1979 00ba 3946 mov r1, r7 1980 00bc 2046 mov r0, r4 1981 00be FFF7FEFF bl I2C_TransferConfig 1982 .LVL141: 1179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1983 .loc 1 1179 7 is_stmt 0 view .LVU660 1984 00c2 0BE0 b .L156 1985 .L158: 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1986 .loc 1 1215 11 is_stmt 1 view .LVU661 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1987 .loc 1 1215 32 is_stmt 0 view .LVU662 1988 00c4 628D ldrh r2, [r4, #42] 1989 00c6 92B2 uxth r2, r2 1215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1990 .loc 1 1215 26 view .LVU663 1991 00c8 2285 strh r2, [r4, #40] @ movhi 1216:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1992 .loc 1 1216 11 is_stmt 1 view .LVU664 1993 00ca 0023 movs r3, #0 1994 00cc 0093 str r3, [sp] 1995 00ce 4FF00073 mov r3, #33554432 1996 00d2 D2B2 uxtb r2, r2 1997 00d4 3946 mov r1, r7 1998 00d6 2046 mov r0, r4 1999 00d8 FFF7FEFF bl I2C_TransferConfig 2000 .LVL142: 2001 .L156: 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2002 .loc 1 1183 28 view .LVU665 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2003 .loc 1 1183 16 is_stmt 0 view .LVU666 2004 00dc 638D ldrh r3, [r4, #42] 2005 00de 9BB2 uxth r3, r3 1183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2006 .loc 1 1183 28 view .LVU667 2007 00e0 002B cmp r3, #0 2008 00e2 33D0 beq .L167 1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2009 .loc 1 1186 7 is_stmt 1 view .LVU668 1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2010 .loc 1 1186 11 is_stmt 0 view .LVU669 2011 00e4 2A46 mov r2, r5 2012 00e6 3146 mov r1, r6 2013 00e8 2046 mov r0, r4 2014 00ea FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2015 .LVL143: 1186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2016 .loc 1 1186 10 discriminator 1 view .LVU670 2017 00ee 0028 cmp r0, #0 2018 00f0 50D1 bne .L163 1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2019 .loc 1 1191 7 is_stmt 1 view .LVU671 1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2020 .loc 1 1191 35 is_stmt 0 view .LVU672 2021 00f2 626A ldr r2, [r4, #36] 1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 178 2022 .loc 1 1191 11 view .LVU673 2023 00f4 2368 ldr r3, [r4] 1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2024 .loc 1 1191 30 view .LVU674 2025 00f6 1278 ldrb r2, [r2] @ zero_extendqisi2 1191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2026 .loc 1 1191 28 view .LVU675 2027 00f8 9A62 str r2, [r3, #40] 1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2028 .loc 1 1194 7 is_stmt 1 view .LVU676 1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2029 .loc 1 1194 11 is_stmt 0 view .LVU677 2030 00fa 636A ldr r3, [r4, #36] 1194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2031 .loc 1 1194 21 view .LVU678 2032 00fc 0133 adds r3, r3, #1 2033 00fe 6362 str r3, [r4, #36] 1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 2034 .loc 1 1196 7 is_stmt 1 view .LVU679 1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 2035 .loc 1 1196 11 is_stmt 0 view .LVU680 2036 0100 638D ldrh r3, [r4, #42] 2037 0102 9BB2 uxth r3, r3 1196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 2038 .loc 1 1196 22 view .LVU681 2039 0104 013B subs r3, r3, #1 2040 0106 9BB2 uxth r3, r3 2041 0108 6385 strh r3, [r4, #42] @ movhi 1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2042 .loc 1 1197 7 is_stmt 1 view .LVU682 1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2043 .loc 1 1197 11 is_stmt 0 view .LVU683 2044 010a 238D ldrh r3, [r4, #40] 1197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2045 .loc 1 1197 21 view .LVU684 2046 010c 013B subs r3, r3, #1 2047 010e 9BB2 uxth r3, r3 2048 0110 2385 strh r3, [r4, #40] @ movhi 1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2049 .loc 1 1199 7 is_stmt 1 view .LVU685 1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2050 .loc 1 1199 16 is_stmt 0 view .LVU686 2051 0112 628D ldrh r2, [r4, #42] 2052 0114 92B2 uxth r2, r2 1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2053 .loc 1 1199 10 view .LVU687 2054 0116 002A cmp r2, #0 2055 0118 E0D0 beq .L156 1199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2056 .loc 1 1199 35 discriminator 1 view .LVU688 2057 011a 002B cmp r3, #0 2058 011c DED1 bne .L156 1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2059 .loc 1 1202 9 is_stmt 1 view .LVU689 1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2060 .loc 1 1202 13 is_stmt 0 view .LVU690 2061 011e 0095 str r5, [sp] ARM GAS /tmp/ccJ8PJrU.s page 179 2062 0120 3346 mov r3, r6 2063 0122 0022 movs r2, #0 2064 0124 8021 movs r1, #128 2065 0126 2046 mov r0, r4 2066 0128 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2067 .LVL144: 1202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2068 .loc 1 1202 12 discriminator 1 view .LVU691 2069 012c A0BB cbnz r0, .L164 1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2070 .loc 1 1207 9 is_stmt 1 view .LVU692 1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2071 .loc 1 1207 17 is_stmt 0 view .LVU693 2072 012e 638D ldrh r3, [r4, #42] 2073 0130 9BB2 uxth r3, r3 1207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2074 .loc 1 1207 12 view .LVU694 2075 0132 FF2B cmp r3, #255 2076 0134 C6D9 bls .L158 1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2077 .loc 1 1209 11 is_stmt 1 view .LVU695 1209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2078 .loc 1 1209 26 is_stmt 0 view .LVU696 2079 0136 FF22 movs r2, #255 2080 0138 2285 strh r2, [r4, #40] @ movhi 1210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2081 .loc 1 1210 11 is_stmt 1 view .LVU697 2082 013a 0023 movs r3, #0 2083 013c 0093 str r3, [sp] 2084 013e 4FF08073 mov r3, #16777216 2085 0142 3946 mov r1, r7 2086 0144 2046 mov r0, r4 2087 0146 FFF7FEFF bl I2C_TransferConfig 2088 .LVL145: 2089 014a C7E7 b .L156 2090 .L167: 1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2091 .loc 1 1224 5 view .LVU698 1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2092 .loc 1 1224 9 is_stmt 0 view .LVU699 2093 014c 2A46 mov r2, r5 2094 014e 3146 mov r1, r6 2095 0150 2046 mov r0, r4 2096 0152 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2097 .LVL146: 1224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2098 .loc 1 1224 8 discriminator 1 view .LVU700 2099 0156 08BB cbnz r0, .L165 1230:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2100 .loc 1 1230 5 is_stmt 1 view .LVU701 2101 0158 2368 ldr r3, [r4] 2102 015a 2022 movs r2, #32 2103 015c DA61 str r2, [r3, #28] 1233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2104 .loc 1 1233 5 view .LVU702 2105 015e 2168 ldr r1, [r4] 2106 0160 4B68 ldr r3, [r1, #4] ARM GAS /tmp/ccJ8PJrU.s page 180 2107 0162 23F0FF73 bic r3, r3, #33423360 2108 0166 23F48B33 bic r3, r3, #71168 2109 016a 23F4FF73 bic r3, r3, #510 2110 016e 23F00103 bic r3, r3, #1 2111 0172 4B60 str r3, [r1, #4] 1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2112 .loc 1 1235 5 view .LVU703 1235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2113 .loc 1 1235 17 is_stmt 0 view .LVU704 2114 0174 84F84120 strb r2, [r4, #65] 1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2115 .loc 1 1236 5 is_stmt 1 view .LVU705 1236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2116 .loc 1 1236 17 is_stmt 0 view .LVU706 2117 0178 0023 movs r3, #0 2118 017a 84F84230 strb r3, [r4, #66] 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2119 .loc 1 1239 5 is_stmt 1 view .LVU707 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2120 .loc 1 1239 5 view .LVU708 2121 017e 84F84030 strb r3, [r4, #64] 1239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2122 .loc 1 1239 5 view .LVU709 1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2123 .loc 1 1241 5 view .LVU710 1241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2124 .loc 1 1241 12 is_stmt 0 view .LVU711 2125 0182 00E0 b .L151 2126 .LVL147: 2127 .L160: 1245:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2128 .loc 1 1245 12 view .LVU712 2129 0184 0220 movs r0, #2 2130 .LVL148: 2131 .L151: 1247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2132 .loc 1 1247 1 view .LVU713 2133 0186 02B0 add sp, sp, #8 2134 .cfi_remember_state 2135 .cfi_def_cfa_offset 32 2136 @ sp needed 2137 0188 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2138 .LVL149: 2139 .L161: 2140 .cfi_restore_state 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2141 .loc 1 1128 5 discriminator 1 view .LVU714 2142 018c 0220 movs r0, #2 2143 .LVL150: 1128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2144 .loc 1 1128 5 discriminator 1 view .LVU715 2145 018e FAE7 b .L151 2146 .LVL151: 2147 .L162: 1135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2148 .loc 1 1135 14 view .LVU716 2149 0190 0120 movs r0, #1 ARM GAS /tmp/ccJ8PJrU.s page 181 2150 0192 F8E7 b .L151 2151 .LVL152: 2152 .L163: 1188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2153 .loc 1 1188 16 view .LVU717 2154 0194 0120 movs r0, #1 2155 0196 F6E7 b .L151 2156 .L164: 1204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2157 .loc 1 1204 18 view .LVU718 2158 0198 0120 movs r0, #1 2159 019a F4E7 b .L151 2160 .L165: 1226:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2161 .loc 1 1226 14 view .LVU719 2162 019c 0120 movs r0, #1 2163 019e F2E7 b .L151 2164 .L169: 2165 .align 2 2166 .L168: 2167 01a0 00200080 .word -2147475456 2168 .cfi_endproc 2169 .LFE127: 2171 .section .text.HAL_I2C_Master_Receive,"ax",%progbits 2172 .align 1 2173 .global HAL_I2C_Master_Receive 2174 .syntax unified 2175 .thumb 2176 .thumb_func 2178 HAL_I2C_Master_Receive: 2179 .LVL153: 2180 .LFB128: 1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2181 .loc 1 1262 1 is_stmt 1 view -0 2182 .cfi_startproc 2183 @ args = 4, pretend = 0, frame = 0 2184 @ frame_needed = 0, uses_anonymous_args = 0 1262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2185 .loc 1 1262 1 is_stmt 0 view .LVU721 2186 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 2187 .cfi_def_cfa_offset 32 2188 .cfi_offset 4, -32 2189 .cfi_offset 5, -28 2190 .cfi_offset 6, -24 2191 .cfi_offset 7, -20 2192 .cfi_offset 8, -16 2193 .cfi_offset 9, -12 2194 .cfi_offset 10, -8 2195 .cfi_offset 14, -4 2196 0004 82B0 sub sp, sp, #8 2197 .cfi_def_cfa_offset 40 2198 0006 0F46 mov r7, r1 2199 0008 0A9E ldr r6, [sp, #40] 1263:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2200 .loc 1 1263 3 is_stmt 1 view .LVU722 1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2201 .loc 1 1265 3 view .LVU723 ARM GAS /tmp/ccJ8PJrU.s page 182 1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2202 .loc 1 1265 11 is_stmt 0 view .LVU724 2203 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 2204 .LVL154: 1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2205 .loc 1 1265 11 view .LVU725 2206 000e C9B2 uxtb r1, r1 1265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2207 .loc 1 1265 6 view .LVU726 2208 0010 2029 cmp r1, #32 2209 0012 40F0A380 bne .L178 2210 0016 0446 mov r4, r0 2211 0018 9046 mov r8, r2 2212 001a 9946 mov r9, r3 1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2213 .loc 1 1268 5 is_stmt 1 view .LVU727 1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2214 .loc 1 1268 5 view .LVU728 2215 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2216 .LVL155: 1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2217 .loc 1 1268 5 is_stmt 0 view .LVU729 2218 0020 012B cmp r3, #1 2219 0022 00F09F80 beq .L179 1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2220 .loc 1 1268 5 is_stmt 1 discriminator 2 view .LVU730 2221 0026 4FF0010A mov r10, #1 2222 002a 80F840A0 strb r10, [r0, #64] 1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2223 .loc 1 1268 5 discriminator 2 view .LVU731 1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2224 .loc 1 1271 5 view .LVU732 1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2225 .loc 1 1271 17 is_stmt 0 view .LVU733 2226 002e FFF7FEFF bl HAL_GetTick 2227 .LVL156: 1271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2228 .loc 1 1271 17 view .LVU734 2229 0032 0546 mov r5, r0 2230 .LVL157: 1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2231 .loc 1 1273 5 is_stmt 1 view .LVU735 1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2232 .loc 1 1273 9 is_stmt 0 view .LVU736 2233 0034 0090 str r0, [sp] 2234 0036 1923 movs r3, #25 2235 0038 5246 mov r2, r10 2236 003a 4FF40041 mov r1, #32768 2237 003e 2046 mov r0, r4 2238 .LVL158: 1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2239 .loc 1 1273 9 view .LVU737 2240 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2241 .LVL159: 1273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2242 .loc 1 1273 8 discriminator 1 view .LVU738 2243 0044 0028 cmp r0, #0 ARM GAS /tmp/ccJ8PJrU.s page 183 2244 0046 40F08F80 bne .L180 1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2245 .loc 1 1278 5 is_stmt 1 view .LVU739 1278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2246 .loc 1 1278 21 is_stmt 0 view .LVU740 2247 004a 2223 movs r3, #34 2248 004c 84F84130 strb r3, [r4, #65] 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2249 .loc 1 1279 5 is_stmt 1 view .LVU741 1279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2250 .loc 1 1279 21 is_stmt 0 view .LVU742 2251 0050 1023 movs r3, #16 2252 0052 84F84230 strb r3, [r4, #66] 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2253 .loc 1 1280 5 is_stmt 1 view .LVU743 1280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2254 .loc 1 1280 21 is_stmt 0 view .LVU744 2255 0056 0023 movs r3, #0 2256 0058 6364 str r3, [r4, #68] 1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2257 .loc 1 1283 5 is_stmt 1 view .LVU745 1283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2258 .loc 1 1283 21 is_stmt 0 view .LVU746 2259 005a C4F82480 str r8, [r4, #36] 1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 2260 .loc 1 1284 5 is_stmt 1 view .LVU747 1284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 2261 .loc 1 1284 21 is_stmt 0 view .LVU748 2262 005e A4F82A90 strh r9, [r4, #42] @ movhi 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2263 .loc 1 1285 5 is_stmt 1 view .LVU749 1285:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2264 .loc 1 1285 21 is_stmt 0 view .LVU750 2265 0062 6363 str r3, [r4, #52] 1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2266 .loc 1 1289 5 is_stmt 1 view .LVU751 1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2267 .loc 1 1289 13 is_stmt 0 view .LVU752 2268 0064 638D ldrh r3, [r4, #42] 2269 0066 9BB2 uxth r3, r3 1289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2270 .loc 1 1289 8 view .LVU753 2271 0068 FF2B cmp r3, #255 2272 006a 0BD9 bls .L172 1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2273 .loc 1 1291 7 is_stmt 1 view .LVU754 1291:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2274 .loc 1 1291 22 is_stmt 0 view .LVU755 2275 006c 5246 mov r2, r10 2276 006e A4F828A0 strh r10, [r4, #40] @ movhi 1292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2277 .loc 1 1292 7 is_stmt 1 view .LVU756 2278 0072 414B ldr r3, .L186 2279 0074 0093 str r3, [sp] 2280 0076 4FF08073 mov r3, #16777216 2281 007a 3946 mov r1, r7 2282 007c 2046 mov r0, r4 ARM GAS /tmp/ccJ8PJrU.s page 184 2283 007e FFF7FEFF bl I2C_TransferConfig 2284 .LVL160: 2285 0082 18E0 b .L174 2286 .L172: 1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2287 .loc 1 1297 7 view .LVU757 1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2288 .loc 1 1297 28 is_stmt 0 view .LVU758 2289 0084 628D ldrh r2, [r4, #42] 2290 0086 92B2 uxth r2, r2 1297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2291 .loc 1 1297 22 view .LVU759 2292 0088 2285 strh r2, [r4, #40] @ movhi 1298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2293 .loc 1 1298 7 is_stmt 1 view .LVU760 2294 008a 3B4B ldr r3, .L186 2295 008c 0093 str r3, [sp] 2296 008e 4FF00073 mov r3, #33554432 2297 0092 D2B2 uxtb r2, r2 2298 0094 3946 mov r1, r7 2299 0096 2046 mov r0, r4 2300 0098 FFF7FEFF bl I2C_TransferConfig 2301 .LVL161: 2302 009c 0BE0 b .L174 2303 .L176: 1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2304 .loc 1 1335 11 view .LVU761 1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2305 .loc 1 1335 32 is_stmt 0 view .LVU762 2306 009e 628D ldrh r2, [r4, #42] 2307 00a0 92B2 uxth r2, r2 1335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2308 .loc 1 1335 26 view .LVU763 2309 00a2 2285 strh r2, [r4, #40] @ movhi 1336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2310 .loc 1 1336 11 is_stmt 1 view .LVU764 2311 00a4 0023 movs r3, #0 2312 00a6 0093 str r3, [sp] 2313 00a8 4FF00073 mov r3, #33554432 2314 00ac D2B2 uxtb r2, r2 2315 00ae 3946 mov r1, r7 2316 00b0 2046 mov r0, r4 2317 00b2 FFF7FEFF bl I2C_TransferConfig 2318 .LVL162: 2319 .L174: 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2320 .loc 1 1302 28 view .LVU765 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2321 .loc 1 1302 16 is_stmt 0 view .LVU766 2322 00b6 638D ldrh r3, [r4, #42] 2323 00b8 9BB2 uxth r3, r3 1302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2324 .loc 1 1302 28 view .LVU767 2325 00ba 002B cmp r3, #0 2326 00bc 32D0 beq .L185 1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2327 .loc 1 1305 7 is_stmt 1 view .LVU768 ARM GAS /tmp/ccJ8PJrU.s page 185 1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2328 .loc 1 1305 11 is_stmt 0 view .LVU769 2329 00be 2A46 mov r2, r5 2330 00c0 3146 mov r1, r6 2331 00c2 2046 mov r0, r4 2332 00c4 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2333 .LVL163: 1305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2334 .loc 1 1305 10 discriminator 1 view .LVU770 2335 00c8 0028 cmp r0, #0 2336 00ca 4FD1 bne .L181 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2337 .loc 1 1311 7 is_stmt 1 view .LVU771 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2338 .loc 1 1311 38 is_stmt 0 view .LVU772 2339 00cc 2368 ldr r3, [r4] 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2340 .loc 1 1311 48 view .LVU773 2341 00ce 5A6A ldr r2, [r3, #36] 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2342 .loc 1 1311 12 view .LVU774 2343 00d0 636A ldr r3, [r4, #36] 1311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2344 .loc 1 1311 23 view .LVU775 2345 00d2 1A70 strb r2, [r3] 1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2346 .loc 1 1314 7 is_stmt 1 view .LVU776 1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2347 .loc 1 1314 11 is_stmt 0 view .LVU777 2348 00d4 636A ldr r3, [r4, #36] 1314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2349 .loc 1 1314 21 view .LVU778 2350 00d6 0133 adds r3, r3, #1 2351 00d8 6362 str r3, [r4, #36] 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 2352 .loc 1 1316 7 is_stmt 1 view .LVU779 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 2353 .loc 1 1316 11 is_stmt 0 view .LVU780 2354 00da 228D ldrh r2, [r4, #40] 1316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 2355 .loc 1 1316 21 view .LVU781 2356 00dc 013A subs r2, r2, #1 2357 00de 92B2 uxth r2, r2 2358 00e0 2285 strh r2, [r4, #40] @ movhi 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2359 .loc 1 1317 7 is_stmt 1 view .LVU782 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2360 .loc 1 1317 11 is_stmt 0 view .LVU783 2361 00e2 638D ldrh r3, [r4, #42] 2362 00e4 9BB2 uxth r3, r3 1317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2363 .loc 1 1317 22 view .LVU784 2364 00e6 013B subs r3, r3, #1 2365 00e8 9BB2 uxth r3, r3 2366 00ea 6385 strh r3, [r4, #42] @ movhi 1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2367 .loc 1 1319 7 is_stmt 1 view .LVU785 ARM GAS /tmp/ccJ8PJrU.s page 186 1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2368 .loc 1 1319 16 is_stmt 0 view .LVU786 2369 00ec 638D ldrh r3, [r4, #42] 2370 00ee 9BB2 uxth r3, r3 1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2371 .loc 1 1319 10 view .LVU787 2372 00f0 002B cmp r3, #0 2373 00f2 E0D0 beq .L174 1319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2374 .loc 1 1319 35 discriminator 1 view .LVU788 2375 00f4 002A cmp r2, #0 2376 00f6 DED1 bne .L174 1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2377 .loc 1 1322 9 is_stmt 1 view .LVU789 1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2378 .loc 1 1322 13 is_stmt 0 view .LVU790 2379 00f8 0095 str r5, [sp] 2380 00fa 3346 mov r3, r6 2381 00fc 8021 movs r1, #128 2382 00fe 2046 mov r0, r4 2383 0100 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2384 .LVL164: 1322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2385 .loc 1 1322 12 discriminator 1 view .LVU791 2386 0104 A0BB cbnz r0, .L182 1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2387 .loc 1 1327 9 is_stmt 1 view .LVU792 1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2388 .loc 1 1327 17 is_stmt 0 view .LVU793 2389 0106 638D ldrh r3, [r4, #42] 2390 0108 9BB2 uxth r3, r3 1327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2391 .loc 1 1327 12 view .LVU794 2392 010a FF2B cmp r3, #255 2393 010c C7D9 bls .L176 1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2394 .loc 1 1329 11 is_stmt 1 view .LVU795 1329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2395 .loc 1 1329 26 is_stmt 0 view .LVU796 2396 010e FF22 movs r2, #255 2397 0110 2285 strh r2, [r4, #40] @ movhi 1330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2398 .loc 1 1330 11 is_stmt 1 view .LVU797 2399 0112 0023 movs r3, #0 2400 0114 0093 str r3, [sp] 2401 0116 4FF08073 mov r3, #16777216 2402 011a 3946 mov r1, r7 2403 011c 2046 mov r0, r4 2404 011e FFF7FEFF bl I2C_TransferConfig 2405 .LVL165: 2406 0122 C8E7 b .L174 2407 .L185: 1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2408 .loc 1 1344 5 view .LVU798 1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2409 .loc 1 1344 9 is_stmt 0 view .LVU799 2410 0124 2A46 mov r2, r5 ARM GAS /tmp/ccJ8PJrU.s page 187 2411 0126 3146 mov r1, r6 2412 0128 2046 mov r0, r4 2413 012a FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2414 .LVL166: 1344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2415 .loc 1 1344 8 discriminator 1 view .LVU800 2416 012e 08BB cbnz r0, .L183 1350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2417 .loc 1 1350 5 is_stmt 1 view .LVU801 2418 0130 2368 ldr r3, [r4] 2419 0132 2022 movs r2, #32 2420 0134 DA61 str r2, [r3, #28] 1353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2421 .loc 1 1353 5 view .LVU802 2422 0136 2168 ldr r1, [r4] 2423 0138 4B68 ldr r3, [r1, #4] 2424 013a 23F0FF73 bic r3, r3, #33423360 2425 013e 23F48B33 bic r3, r3, #71168 2426 0142 23F4FF73 bic r3, r3, #510 2427 0146 23F00103 bic r3, r3, #1 2428 014a 4B60 str r3, [r1, #4] 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2429 .loc 1 1355 5 view .LVU803 1355:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2430 .loc 1 1355 17 is_stmt 0 view .LVU804 2431 014c 84F84120 strb r2, [r4, #65] 1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2432 .loc 1 1356 5 is_stmt 1 view .LVU805 1356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2433 .loc 1 1356 17 is_stmt 0 view .LVU806 2434 0150 0023 movs r3, #0 2435 0152 84F84230 strb r3, [r4, #66] 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2436 .loc 1 1359 5 is_stmt 1 view .LVU807 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2437 .loc 1 1359 5 view .LVU808 2438 0156 84F84030 strb r3, [r4, #64] 1359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2439 .loc 1 1359 5 view .LVU809 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2440 .loc 1 1361 5 view .LVU810 1361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2441 .loc 1 1361 12 is_stmt 0 view .LVU811 2442 015a 00E0 b .L171 2443 .LVL167: 2444 .L178: 1365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2445 .loc 1 1365 12 view .LVU812 2446 015c 0220 movs r0, #2 2447 .LVL168: 2448 .L171: 1367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2449 .loc 1 1367 1 view .LVU813 2450 015e 02B0 add sp, sp, #8 2451 .cfi_remember_state 2452 .cfi_def_cfa_offset 32 2453 @ sp needed ARM GAS /tmp/ccJ8PJrU.s page 188 2454 0160 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2455 .LVL169: 2456 .L179: 2457 .cfi_restore_state 1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2458 .loc 1 1268 5 discriminator 1 view .LVU814 2459 0164 0220 movs r0, #2 2460 .LVL170: 1268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2461 .loc 1 1268 5 discriminator 1 view .LVU815 2462 0166 FAE7 b .L171 2463 .LVL171: 2464 .L180: 1275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2465 .loc 1 1275 14 view .LVU816 2466 0168 0120 movs r0, #1 2467 016a F8E7 b .L171 2468 .L181: 1307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2469 .loc 1 1307 16 view .LVU817 2470 016c 0120 movs r0, #1 2471 016e F6E7 b .L171 2472 .L182: 1324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2473 .loc 1 1324 18 view .LVU818 2474 0170 0120 movs r0, #1 2475 0172 F4E7 b .L171 2476 .L183: 1346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2477 .loc 1 1346 14 view .LVU819 2478 0174 0120 movs r0, #1 2479 0176 F2E7 b .L171 2480 .L187: 2481 .align 2 2482 .L186: 2483 0178 00240080 .word -2147474432 2484 .cfi_endproc 2485 .LFE128: 2487 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits 2488 .align 1 2489 .global HAL_I2C_Slave_Transmit 2490 .syntax unified 2491 .thumb 2492 .thumb_func 2494 HAL_I2C_Slave_Transmit: 2495 .LVL172: 2496 .LFB129: 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2497 .loc 1 1380 1 is_stmt 1 view -0 2498 .cfi_startproc 2499 @ args = 0, pretend = 0, frame = 0 2500 @ frame_needed = 0, uses_anonymous_args = 0 1380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2501 .loc 1 1380 1 is_stmt 0 view .LVU821 2502 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2503 .cfi_def_cfa_offset 24 2504 .cfi_offset 4, -24 ARM GAS /tmp/ccJ8PJrU.s page 189 2505 .cfi_offset 5, -20 2506 .cfi_offset 6, -16 2507 .cfi_offset 7, -12 2508 .cfi_offset 8, -8 2509 .cfi_offset 14, -4 2510 0004 82B0 sub sp, sp, #8 2511 .cfi_def_cfa_offset 32 2512 0006 1D46 mov r5, r3 1381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t tmpXferCount; 2513 .loc 1 1381 3 is_stmt 1 view .LVU822 1382:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef error; 2514 .loc 1 1382 3 view .LVU823 1383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2515 .loc 1 1383 3 view .LVU824 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2516 .loc 1 1385 3 view .LVU825 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2517 .loc 1 1385 11 is_stmt 0 view .LVU826 2518 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2519 .LVL173: 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2520 .loc 1 1385 11 view .LVU827 2521 000c DBB2 uxtb r3, r3 1385:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2522 .loc 1 1385 6 view .LVU828 2523 000e 202B cmp r3, #32 2524 0010 40F0EA80 bne .L204 2525 0014 0446 mov r4, r0 2526 0016 0F46 mov r7, r1 2527 0018 9046 mov r8, r2 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2528 .loc 1 1387 5 is_stmt 1 view .LVU829 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2529 .loc 1 1387 8 is_stmt 0 view .LVU830 2530 001a 0029 cmp r1, #0 2531 001c 57D0 beq .L190 1387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2532 .loc 1 1387 25 discriminator 1 view .LVU831 2533 001e 002A cmp r2, #0 2534 0020 55D0 beq .L190 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2535 .loc 1 1393 5 is_stmt 1 view .LVU832 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2536 .loc 1 1393 5 view .LVU833 2537 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2538 0026 012B cmp r3, #1 2539 0028 00F0E280 beq .L205 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2540 .loc 1 1393 5 discriminator 2 view .LVU834 2541 002c 0123 movs r3, #1 2542 002e 80F84030 strb r3, [r0, #64] 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2543 .loc 1 1393 5 discriminator 2 view .LVU835 1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2544 .loc 1 1396 5 view .LVU836 1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2545 .loc 1 1396 17 is_stmt 0 view .LVU837 ARM GAS /tmp/ccJ8PJrU.s page 190 2546 0032 FFF7FEFF bl HAL_GetTick 2547 .LVL174: 1396:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2548 .loc 1 1396 17 view .LVU838 2549 0036 0646 mov r6, r0 2550 .LVL175: 1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2551 .loc 1 1398 5 is_stmt 1 view .LVU839 1398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2552 .loc 1 1398 21 is_stmt 0 view .LVU840 2553 0038 2123 movs r3, #33 2554 003a 84F84130 strb r3, [r4, #65] 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2555 .loc 1 1399 5 is_stmt 1 view .LVU841 1399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2556 .loc 1 1399 21 is_stmt 0 view .LVU842 2557 003e 2023 movs r3, #32 2558 0040 84F84230 strb r3, [r4, #66] 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2559 .loc 1 1400 5 is_stmt 1 view .LVU843 1400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2560 .loc 1 1400 21 is_stmt 0 view .LVU844 2561 0044 0023 movs r3, #0 2562 0046 6364 str r3, [r4, #68] 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2563 .loc 1 1403 5 is_stmt 1 view .LVU845 1403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 2564 .loc 1 1403 21 is_stmt 0 view .LVU846 2565 0048 6762 str r7, [r4, #36] 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 2566 .loc 1 1404 5 is_stmt 1 view .LVU847 1404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 2567 .loc 1 1404 21 is_stmt 0 view .LVU848 2568 004a A4F82A80 strh r8, [r4, #42] @ movhi 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2569 .loc 1 1405 5 is_stmt 1 view .LVU849 1405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2570 .loc 1 1405 21 is_stmt 0 view .LVU850 2571 004e 6363 str r3, [r4, #52] 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2572 .loc 1 1408 5 is_stmt 1 view .LVU851 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2573 .loc 1 1408 9 is_stmt 0 view .LVU852 2574 0050 2268 ldr r2, [r4] 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2575 .loc 1 1408 19 view .LVU853 2576 0052 5368 ldr r3, [r2, #4] 1408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2577 .loc 1 1408 25 view .LVU854 2578 0054 23F40043 bic r3, r3, #32768 2579 0058 5360 str r3, [r2, #4] 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2580 .loc 1 1411 5 is_stmt 1 view .LVU855 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2581 .loc 1 1411 19 is_stmt 0 view .LVU856 2582 005a 236A ldr r3, [r4, #32] 1411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 191 2583 .loc 1 1411 8 view .LVU857 2584 005c B3F5003F cmp r3, #131072 2585 0060 3AD0 beq .L207 2586 .L192: 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2587 .loc 1 1424 5 is_stmt 1 view .LVU858 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2588 .loc 1 1424 9 is_stmt 0 view .LVU859 2589 0062 0096 str r6, [sp] 2590 0064 2B46 mov r3, r5 2591 0066 0022 movs r2, #0 2592 0068 0821 movs r1, #8 2593 006a 2046 mov r0, r4 2594 .LVL176: 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2595 .loc 1 1424 9 view .LVU860 2596 006c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2597 .LVL177: 1424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2598 .loc 1 1424 8 discriminator 1 view .LVU861 2599 0070 0028 cmp r0, #0 2600 0072 3ED1 bne .L208 1436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2601 .loc 1 1436 5 is_stmt 1 view .LVU862 2602 0074 2368 ldr r3, [r4] 2603 0076 0822 movs r2, #8 2604 0078 DA61 str r2, [r3, #28] 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2605 .loc 1 1439 5 view .LVU863 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2606 .loc 1 1439 19 is_stmt 0 view .LVU864 2607 007a E368 ldr r3, [r4, #12] 1439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2608 .loc 1 1439 8 view .LVU865 2609 007c 022B cmp r3, #2 2610 007e 42D0 beq .L209 2611 .L194: 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2612 .loc 1 1458 5 is_stmt 1 view .LVU866 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2613 .loc 1 1458 9 is_stmt 0 view .LVU867 2614 0080 0096 str r6, [sp] 2615 0082 2B46 mov r3, r5 2616 0084 0022 movs r2, #0 2617 0086 4FF48031 mov r1, #65536 2618 008a 2046 mov r0, r4 2619 008c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2620 .LVL178: 1458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2621 .loc 1 1458 8 discriminator 1 view .LVU868 2622 0090 0028 cmp r0, #0 2623 0092 4ED1 bne .L210 2624 .L196: 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2625 .loc 1 1469 28 is_stmt 1 view .LVU869 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2626 .loc 1 1469 16 is_stmt 0 view .LVU870 ARM GAS /tmp/ccJ8PJrU.s page 192 2627 0094 628D ldrh r2, [r4, #42] 2628 0096 92B2 uxth r2, r2 1469:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2629 .loc 1 1469 28 view .LVU871 2630 0098 002A cmp r2, #0 2631 009a 5BD0 beq .L211 1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2632 .loc 1 1472 7 is_stmt 1 view .LVU872 1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2633 .loc 1 1472 11 is_stmt 0 view .LVU873 2634 009c 3246 mov r2, r6 2635 009e 2946 mov r1, r5 2636 00a0 2046 mov r0, r4 2637 00a2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2638 .LVL179: 1472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2639 .loc 1 1472 10 discriminator 1 view .LVU874 2640 00a6 0028 cmp r0, #0 2641 00a8 4DD1 bne .L212 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2642 .loc 1 1480 7 is_stmt 1 view .LVU875 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2643 .loc 1 1480 35 is_stmt 0 view .LVU876 2644 00aa 626A ldr r2, [r4, #36] 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2645 .loc 1 1480 11 view .LVU877 2646 00ac 2368 ldr r3, [r4] 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2647 .loc 1 1480 30 view .LVU878 2648 00ae 1278 ldrb r2, [r2] @ zero_extendqisi2 1480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2649 .loc 1 1480 28 view .LVU879 2650 00b0 9A62 str r2, [r3, #40] 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2651 .loc 1 1483 7 is_stmt 1 view .LVU880 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2652 .loc 1 1483 11 is_stmt 0 view .LVU881 2653 00b2 636A ldr r3, [r4, #36] 1483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2654 .loc 1 1483 21 view .LVU882 2655 00b4 0133 adds r3, r3, #1 2656 00b6 6362 str r3, [r4, #36] 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2657 .loc 1 1485 7 is_stmt 1 view .LVU883 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2658 .loc 1 1485 11 is_stmt 0 view .LVU884 2659 00b8 B4F82AC0 ldrh ip, [r4, #42] 2660 00bc 1FFA8CFC uxth ip, ip 1485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2661 .loc 1 1485 22 view .LVU885 2662 00c0 0CF1FF3C add ip, ip, #-1 2663 00c4 1FFA8CFC uxth ip, ip 2664 00c8 A4F82AC0 strh ip, [r4, #42] @ movhi 2665 00cc E2E7 b .L196 2666 .LVL180: 2667 .L190: 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/ccJ8PJrU.s page 193 2668 .loc 1 1389 7 is_stmt 1 view .LVU886 1389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2669 .loc 1 1389 23 is_stmt 0 view .LVU887 2670 00ce 4FF40073 mov r3, #512 2671 00d2 6364 str r3, [r4, #68] 1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2672 .loc 1 1390 7 is_stmt 1 view .LVU888 1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2673 .loc 1 1390 15 is_stmt 0 view .LVU889 2674 00d4 0120 movs r0, #1 2675 .LVL181: 1390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2676 .loc 1 1390 15 view .LVU890 2677 00d6 88E0 b .L189 2678 .LVL182: 2679 .L207: 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2680 .loc 1 1415 7 is_stmt 1 view .LVU891 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2681 .loc 1 1415 35 is_stmt 0 view .LVU892 2682 00d8 626A ldr r2, [r4, #36] 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2683 .loc 1 1415 11 view .LVU893 2684 00da 2368 ldr r3, [r4] 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2685 .loc 1 1415 30 view .LVU894 2686 00dc 1278 ldrb r2, [r2] @ zero_extendqisi2 1415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2687 .loc 1 1415 28 view .LVU895 2688 00de 9A62 str r2, [r3, #40] 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2689 .loc 1 1418 7 is_stmt 1 view .LVU896 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2690 .loc 1 1418 11 is_stmt 0 view .LVU897 2691 00e0 636A ldr r3, [r4, #36] 1418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2692 .loc 1 1418 21 view .LVU898 2693 00e2 0133 adds r3, r3, #1 2694 00e4 6362 str r3, [r4, #36] 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2695 .loc 1 1420 7 is_stmt 1 view .LVU899 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2696 .loc 1 1420 11 is_stmt 0 view .LVU900 2697 00e6 638D ldrh r3, [r4, #42] 2698 00e8 9BB2 uxth r3, r3 1420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2699 .loc 1 1420 22 view .LVU901 2700 00ea 013B subs r3, r3, #1 2701 00ec 9BB2 uxth r3, r3 2702 00ee 6385 strh r3, [r4, #42] @ movhi 2703 00f0 B7E7 b .L192 2704 .LVL183: 2705 .L208: 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2706 .loc 1 1427 7 is_stmt 1 view .LVU902 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2707 .loc 1 1427 11 is_stmt 0 view .LVU903 ARM GAS /tmp/ccJ8PJrU.s page 194 2708 00f2 2268 ldr r2, [r4] 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2709 .loc 1 1427 21 view .LVU904 2710 00f4 5368 ldr r3, [r2, #4] 1427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2711 .loc 1 1427 27 view .LVU905 2712 00f6 43F40043 orr r3, r3, #32768 2713 00fa 5360 str r3, [r2, #4] 1430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2714 .loc 1 1430 7 is_stmt 1 view .LVU906 2715 00fc 2046 mov r0, r4 2716 00fe FFF7FEFF bl I2C_Flush_TXDR 2717 .LVL184: 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2718 .loc 1 1432 7 view .LVU907 1432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2719 .loc 1 1432 14 is_stmt 0 view .LVU908 2720 0102 0120 movs r0, #1 2721 0104 71E0 b .L189 2722 .L209: 1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2723 .loc 1 1442 7 is_stmt 1 view .LVU909 1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2724 .loc 1 1442 11 is_stmt 0 view .LVU910 2725 0106 0096 str r6, [sp] 2726 0108 2B46 mov r3, r5 2727 010a 0022 movs r2, #0 2728 010c 0821 movs r1, #8 2729 010e 2046 mov r0, r4 2730 0110 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2731 .LVL185: 1442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2732 .loc 1 1442 10 discriminator 1 view .LVU911 2733 0114 18B9 cbnz r0, .L213 1454:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2734 .loc 1 1454 7 is_stmt 1 view .LVU912 2735 0116 2368 ldr r3, [r4] 2736 0118 0822 movs r2, #8 2737 011a DA61 str r2, [r3, #28] 2738 011c B0E7 b .L194 2739 .L213: 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2740 .loc 1 1445 9 view .LVU913 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2741 .loc 1 1445 13 is_stmt 0 view .LVU914 2742 011e 2268 ldr r2, [r4] 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2743 .loc 1 1445 23 view .LVU915 2744 0120 5368 ldr r3, [r2, #4] 1445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2745 .loc 1 1445 29 view .LVU916 2746 0122 43F40043 orr r3, r3, #32768 2747 0126 5360 str r3, [r2, #4] 1448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2748 .loc 1 1448 9 is_stmt 1 view .LVU917 2749 0128 2046 mov r0, r4 2750 012a FFF7FEFF bl I2C_Flush_TXDR ARM GAS /tmp/ccJ8PJrU.s page 195 2751 .LVL186: 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2752 .loc 1 1450 9 view .LVU918 1450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2753 .loc 1 1450 16 is_stmt 0 view .LVU919 2754 012e 0120 movs r0, #1 2755 0130 5BE0 b .L189 2756 .L210: 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2757 .loc 1 1461 7 is_stmt 1 view .LVU920 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2758 .loc 1 1461 11 is_stmt 0 view .LVU921 2759 0132 2268 ldr r2, [r4] 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2760 .loc 1 1461 21 view .LVU922 2761 0134 5368 ldr r3, [r2, #4] 1461:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2762 .loc 1 1461 27 view .LVU923 2763 0136 43F40043 orr r3, r3, #32768 2764 013a 5360 str r3, [r2, #4] 1464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2765 .loc 1 1464 7 is_stmt 1 view .LVU924 2766 013c 2046 mov r0, r4 2767 013e FFF7FEFF bl I2C_Flush_TXDR 2768 .LVL187: 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2769 .loc 1 1466 7 view .LVU925 1466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2770 .loc 1 1466 14 is_stmt 0 view .LVU926 2771 0142 0120 movs r0, #1 2772 0144 51E0 b .L189 2773 .L212: 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2774 .loc 1 1475 9 is_stmt 1 view .LVU927 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2775 .loc 1 1475 13 is_stmt 0 view .LVU928 2776 0146 2268 ldr r2, [r4] 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2777 .loc 1 1475 23 view .LVU929 2778 0148 5368 ldr r3, [r2, #4] 1475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2779 .loc 1 1475 29 view .LVU930 2780 014a 43F40043 orr r3, r3, #32768 2781 014e 5360 str r3, [r2, #4] 1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2782 .loc 1 1476 9 is_stmt 1 view .LVU931 1476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2783 .loc 1 1476 16 is_stmt 0 view .LVU932 2784 0150 0120 movs r0, #1 2785 0152 4AE0 b .L189 2786 .L211: 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2787 .loc 1 1489 5 is_stmt 1 view .LVU933 1489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2788 .loc 1 1489 13 is_stmt 0 view .LVU934 2789 0154 0096 str r6, [sp] 2790 0156 2B46 mov r3, r5 ARM GAS /tmp/ccJ8PJrU.s page 196 2791 0158 1021 movs r1, #16 2792 015a 2046 mov r0, r4 2793 015c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2794 .LVL188: 1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2795 .loc 1 1491 5 is_stmt 1 view .LVU935 1491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2796 .loc 1 1491 8 is_stmt 0 view .LVU936 2797 0160 E8B1 cbz r0, .L199 1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 2798 .loc 1 1497 7 is_stmt 1 view .LVU937 1497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 2799 .loc 1 1497 20 is_stmt 0 view .LVU938 2800 0162 638D ldrh r3, [r4, #42] 2801 0164 9BB2 uxth r3, r3 2802 .LVL189: 1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2803 .loc 1 1498 7 is_stmt 1 view .LVU939 1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2804 .loc 1 1498 16 is_stmt 0 view .LVU940 2805 0166 626C ldr r2, [r4, #68] 1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2806 .loc 1 1498 10 view .LVU941 2807 0168 042A cmp r2, #4 2808 016a 11D1 bne .L200 1498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2809 .loc 1 1498 49 discriminator 1 view .LVU942 2810 016c 83B9 cbnz r3, .L200 1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2811 .loc 1 1501 9 is_stmt 1 view .LVU943 1501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2812 .loc 1 1501 25 is_stmt 0 view .LVU944 2813 016e 6364 str r3, [r4, #68] 2814 .LVL190: 2815 .L201: 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2816 .loc 1 1532 5 is_stmt 1 view .LVU945 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2817 .loc 1 1532 9 is_stmt 0 view .LVU946 2818 0170 0096 str r6, [sp] 2819 0172 2B46 mov r3, r5 2820 0174 0122 movs r2, #1 2821 0176 4FF40041 mov r1, #32768 2822 017a 2046 mov r0, r4 2823 017c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2824 .LVL191: 1532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2825 .loc 1 1532 8 discriminator 1 view .LVU947 2826 0180 20B3 cbz r0, .L203 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2827 .loc 1 1535 7 is_stmt 1 view .LVU948 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2828 .loc 1 1535 11 is_stmt 0 view .LVU949 2829 0182 2268 ldr r2, [r4] 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2830 .loc 1 1535 21 view .LVU950 2831 0184 5368 ldr r3, [r2, #4] ARM GAS /tmp/ccJ8PJrU.s page 197 1535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2832 .loc 1 1535 27 view .LVU951 2833 0186 43F40043 orr r3, r3, #32768 2834 018a 5360 str r3, [r2, #4] 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2835 .loc 1 1536 7 is_stmt 1 view .LVU952 1536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2836 .loc 1 1536 14 is_stmt 0 view .LVU953 2837 018c 0120 movs r0, #1 2838 018e 2CE0 b .L189 2839 .LVL192: 2840 .L200: 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2841 .loc 1 1506 9 is_stmt 1 view .LVU954 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2842 .loc 1 1506 13 is_stmt 0 view .LVU955 2843 0190 2268 ldr r2, [r4] 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2844 .loc 1 1506 23 view .LVU956 2845 0192 5368 ldr r3, [r2, #4] 2846 .LVL193: 1506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 2847 .loc 1 1506 29 view .LVU957 2848 0194 43F40043 orr r3, r3, #32768 2849 0198 5360 str r3, [r2, #4] 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2850 .loc 1 1507 9 is_stmt 1 view .LVU958 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2851 .loc 1 1507 16 is_stmt 0 view .LVU959 2852 019a 0120 movs r0, #1 2853 .LVL194: 1507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2854 .loc 1 1507 16 view .LVU960 2855 019c 25E0 b .L189 2856 .LVL195: 2857 .L199: 1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2858 .loc 1 1513 7 is_stmt 1 view .LVU961 2859 019e 2046 mov r0, r4 2860 .LVL196: 1513:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2861 .loc 1 1513 7 is_stmt 0 view .LVU962 2862 01a0 FFF7FEFF bl I2C_Flush_TXDR 2863 .LVL197: 1516:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2864 .loc 1 1516 7 is_stmt 1 view .LVU963 2865 01a4 2368 ldr r3, [r4] 2866 01a6 1022 movs r2, #16 2867 01a8 DA61 str r2, [r3, #28] 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2868 .loc 1 1519 7 view .LVU964 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2869 .loc 1 1519 11 is_stmt 0 view .LVU965 2870 01aa 3246 mov r2, r6 2871 01ac 2946 mov r1, r5 2872 01ae 2046 mov r0, r4 2873 01b0 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout ARM GAS /tmp/ccJ8PJrU.s page 198 2874 .LVL198: 1519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2875 .loc 1 1519 10 discriminator 1 view .LVU966 2876 01b4 18B9 cbnz r0, .L214 1528:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2877 .loc 1 1528 7 is_stmt 1 view .LVU967 2878 01b6 2368 ldr r3, [r4] 2879 01b8 2022 movs r2, #32 2880 01ba DA61 str r2, [r3, #28] 2881 01bc D8E7 b .L201 2882 .L214: 1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2883 .loc 1 1522 9 view .LVU968 1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2884 .loc 1 1522 13 is_stmt 0 view .LVU969 2885 01be 2268 ldr r2, [r4] 1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2886 .loc 1 1522 23 view .LVU970 2887 01c0 5368 ldr r3, [r2, #4] 1522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2888 .loc 1 1522 29 view .LVU971 2889 01c2 43F40043 orr r3, r3, #32768 2890 01c6 5360 str r3, [r2, #4] 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2891 .loc 1 1524 9 is_stmt 1 view .LVU972 1524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2892 .loc 1 1524 16 is_stmt 0 view .LVU973 2893 01c8 0120 movs r0, #1 2894 01ca 0EE0 b .L189 2895 .L203: 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2896 .loc 1 1540 5 is_stmt 1 view .LVU974 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2897 .loc 1 1540 9 is_stmt 0 view .LVU975 2898 01cc 2268 ldr r2, [r4] 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2899 .loc 1 1540 19 view .LVU976 2900 01ce 5368 ldr r3, [r2, #4] 1540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2901 .loc 1 1540 25 view .LVU977 2902 01d0 43F40043 orr r3, r3, #32768 2903 01d4 5360 str r3, [r2, #4] 1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2904 .loc 1 1542 5 is_stmt 1 view .LVU978 1542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2905 .loc 1 1542 17 is_stmt 0 view .LVU979 2906 01d6 2023 movs r3, #32 2907 01d8 84F84130 strb r3, [r4, #65] 1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2908 .loc 1 1543 5 is_stmt 1 view .LVU980 1543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2909 .loc 1 1543 17 is_stmt 0 view .LVU981 2910 01dc 0023 movs r3, #0 2911 01de 84F84230 strb r3, [r4, #66] 1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2912 .loc 1 1546 5 is_stmt 1 view .LVU982 1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 199 2913 .loc 1 1546 5 view .LVU983 2914 01e2 84F84030 strb r3, [r4, #64] 1546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2915 .loc 1 1546 5 view .LVU984 1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2916 .loc 1 1548 5 view .LVU985 1548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2917 .loc 1 1548 12 is_stmt 0 view .LVU986 2918 01e6 00E0 b .L189 2919 .LVL199: 2920 .L204: 1552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 2921 .loc 1 1552 12 view .LVU987 2922 01e8 0220 movs r0, #2 2923 .LVL200: 2924 .L189: 1554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2925 .loc 1 1554 1 view .LVU988 2926 01ea 02B0 add sp, sp, #8 2927 .cfi_remember_state 2928 .cfi_def_cfa_offset 24 2929 @ sp needed 2930 01ec BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2931 .LVL201: 2932 .L205: 2933 .cfi_restore_state 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2934 .loc 1 1393 5 discriminator 1 view .LVU989 2935 01f0 0220 movs r0, #2 2936 .LVL202: 1393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2937 .loc 1 1393 5 discriminator 1 view .LVU990 2938 01f2 FAE7 b .L189 2939 .cfi_endproc 2940 .LFE129: 2942 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits 2943 .align 1 2944 .global HAL_I2C_Slave_Receive 2945 .syntax unified 2946 .thumb 2947 .thumb_func 2949 HAL_I2C_Slave_Receive: 2950 .LVL203: 2951 .LFB130: 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2952 .loc 1 1567 1 is_stmt 1 view -0 2953 .cfi_startproc 2954 @ args = 0, pretend = 0, frame = 0 2955 @ frame_needed = 0, uses_anonymous_args = 0 1567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 2956 .loc 1 1567 1 is_stmt 0 view .LVU992 2957 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2958 .cfi_def_cfa_offset 24 2959 .cfi_offset 4, -24 2960 .cfi_offset 5, -20 2961 .cfi_offset 6, -16 2962 .cfi_offset 7, -12 ARM GAS /tmp/ccJ8PJrU.s page 200 2963 .cfi_offset 8, -8 2964 .cfi_offset 14, -4 2965 0004 82B0 sub sp, sp, #8 2966 .cfi_def_cfa_offset 32 2967 0006 1D46 mov r5, r3 1568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2968 .loc 1 1568 3 is_stmt 1 view .LVU993 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2969 .loc 1 1570 3 view .LVU994 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2970 .loc 1 1570 11 is_stmt 0 view .LVU995 2971 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2972 .LVL204: 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2973 .loc 1 1570 11 view .LVU996 2974 000c DBB2 uxtb r3, r3 1570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2975 .loc 1 1570 6 view .LVU997 2976 000e 202B cmp r3, #32 2977 0010 40F0AF80 bne .L226 2978 0014 0446 mov r4, r0 2979 0016 0E46 mov r6, r1 2980 0018 9046 mov r8, r2 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2981 .loc 1 1572 5 is_stmt 1 view .LVU998 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2982 .loc 1 1572 8 is_stmt 0 view .LVU999 2983 001a 61B3 cbz r1, .L217 1572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 2984 .loc 1 1572 25 discriminator 1 view .LVU1000 2985 001c 5AB3 cbz r2, .L217 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2986 .loc 1 1578 5 is_stmt 1 view .LVU1001 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2987 .loc 1 1578 5 view .LVU1002 2988 001e 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2989 0022 012B cmp r3, #1 2990 0024 00F0A980 beq .L227 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2991 .loc 1 1578 5 discriminator 2 view .LVU1003 2992 0028 0123 movs r3, #1 2993 002a 80F84030 strb r3, [r0, #64] 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2994 .loc 1 1578 5 discriminator 2 view .LVU1004 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2995 .loc 1 1581 5 view .LVU1005 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2996 .loc 1 1581 17 is_stmt 0 view .LVU1006 2997 002e FFF7FEFF bl HAL_GetTick 2998 .LVL205: 1581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 2999 .loc 1 1581 17 view .LVU1007 3000 0032 0746 mov r7, r0 3001 .LVL206: 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3002 .loc 1 1583 5 is_stmt 1 view .LVU1008 1583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; ARM GAS /tmp/ccJ8PJrU.s page 201 3003 .loc 1 1583 21 is_stmt 0 view .LVU1009 3004 0034 2223 movs r3, #34 3005 0036 84F84130 strb r3, [r4, #65] 1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3006 .loc 1 1584 5 is_stmt 1 view .LVU1010 1584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3007 .loc 1 1584 21 is_stmt 0 view .LVU1011 3008 003a 2023 movs r3, #32 3009 003c 84F84230 strb r3, [r4, #66] 1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3010 .loc 1 1585 5 is_stmt 1 view .LVU1012 1585:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3011 .loc 1 1585 21 is_stmt 0 view .LVU1013 3012 0040 0022 movs r2, #0 3013 0042 6264 str r2, [r4, #68] 1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3014 .loc 1 1588 5 is_stmt 1 view .LVU1014 1588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3015 .loc 1 1588 21 is_stmt 0 view .LVU1015 3016 0044 6662 str r6, [r4, #36] 1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3017 .loc 1 1589 5 is_stmt 1 view .LVU1016 1589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3018 .loc 1 1589 21 is_stmt 0 view .LVU1017 3019 0046 A4F82A80 strh r8, [r4, #42] @ movhi 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 3020 .loc 1 1590 5 is_stmt 1 view .LVU1018 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 3021 .loc 1 1590 26 is_stmt 0 view .LVU1019 3022 004a 638D ldrh r3, [r4, #42] 1590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 3023 .loc 1 1590 20 view .LVU1020 3024 004c 2385 strh r3, [r4, #40] @ movhi 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3025 .loc 1 1591 5 is_stmt 1 view .LVU1021 1591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3026 .loc 1 1591 21 is_stmt 0 view .LVU1022 3027 004e 6263 str r2, [r4, #52] 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3028 .loc 1 1594 5 is_stmt 1 view .LVU1023 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3029 .loc 1 1594 9 is_stmt 0 view .LVU1024 3030 0050 2168 ldr r1, [r4] 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3031 .loc 1 1594 19 view .LVU1025 3032 0052 4B68 ldr r3, [r1, #4] 1594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3033 .loc 1 1594 25 view .LVU1026 3034 0054 23F40043 bic r3, r3, #32768 3035 0058 4B60 str r3, [r1, #4] 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3036 .loc 1 1597 5 is_stmt 1 view .LVU1027 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3037 .loc 1 1597 9 is_stmt 0 view .LVU1028 3038 005a 0090 str r0, [sp] 3039 005c 2B46 mov r3, r5 3040 005e 0821 movs r1, #8 ARM GAS /tmp/ccJ8PJrU.s page 202 3041 0060 2046 mov r0, r4 3042 .LVL207: 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3043 .loc 1 1597 9 view .LVU1029 3044 0062 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3045 .LVL208: 1597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3046 .loc 1 1597 8 discriminator 1 view .LVU1030 3047 0066 58B1 cbz r0, .L219 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3048 .loc 1 1600 7 is_stmt 1 view .LVU1031 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3049 .loc 1 1600 11 is_stmt 0 view .LVU1032 3050 0068 2268 ldr r2, [r4] 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3051 .loc 1 1600 21 view .LVU1033 3052 006a 5368 ldr r3, [r2, #4] 1600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3053 .loc 1 1600 27 view .LVU1034 3054 006c 43F40043 orr r3, r3, #32768 3055 0070 5360 str r3, [r2, #4] 1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3056 .loc 1 1601 7 is_stmt 1 view .LVU1035 1601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3057 .loc 1 1601 14 is_stmt 0 view .LVU1036 3058 0072 0120 movs r0, #1 3059 0074 7EE0 b .L216 3060 .LVL209: 3061 .L217: 1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3062 .loc 1 1574 7 is_stmt 1 view .LVU1037 1574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3063 .loc 1 1574 23 is_stmt 0 view .LVU1038 3064 0076 4FF40073 mov r3, #512 3065 007a 6364 str r3, [r4, #68] 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3066 .loc 1 1575 7 is_stmt 1 view .LVU1039 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3067 .loc 1 1575 15 is_stmt 0 view .LVU1040 3068 007c 0120 movs r0, #1 3069 .LVL210: 1575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3070 .loc 1 1575 15 view .LVU1041 3071 007e 79E0 b .L216 3072 .LVL211: 3073 .L219: 1605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3074 .loc 1 1605 5 is_stmt 1 view .LVU1042 3075 0080 2368 ldr r3, [r4] 3076 0082 0822 movs r2, #8 3077 0084 DA61 str r2, [r3, #28] 1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3078 .loc 1 1608 5 view .LVU1043 1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3079 .loc 1 1608 9 is_stmt 0 view .LVU1044 3080 0086 0097 str r7, [sp] 3081 0088 2B46 mov r3, r5 ARM GAS /tmp/ccJ8PJrU.s page 203 3082 008a 0122 movs r2, #1 3083 008c 4FF48031 mov r1, #65536 3084 0090 2046 mov r0, r4 3085 0092 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3086 .LVL212: 1608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3087 .loc 1 1608 8 discriminator 1 view .LVU1045 3088 0096 D0B1 cbz r0, .L220 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3089 .loc 1 1611 7 is_stmt 1 view .LVU1046 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3090 .loc 1 1611 11 is_stmt 0 view .LVU1047 3091 0098 2268 ldr r2, [r4] 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3092 .loc 1 1611 21 view .LVU1048 3093 009a 5368 ldr r3, [r2, #4] 1611:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3094 .loc 1 1611 27 view .LVU1049 3095 009c 43F40043 orr r3, r3, #32768 3096 00a0 5360 str r3, [r2, #4] 1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3097 .loc 1 1612 7 is_stmt 1 view .LVU1050 1612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3098 .loc 1 1612 14 is_stmt 0 view .LVU1051 3099 00a2 0120 movs r0, #1 3100 00a4 66E0 b .L216 3101 .L221: 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3102 .loc 1 1640 7 is_stmt 1 view .LVU1052 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3103 .loc 1 1640 38 is_stmt 0 view .LVU1053 3104 00a6 2368 ldr r3, [r4] 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3105 .loc 1 1640 48 view .LVU1054 3106 00a8 5A6A ldr r2, [r3, #36] 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3107 .loc 1 1640 12 view .LVU1055 3108 00aa 636A ldr r3, [r4, #36] 1640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3109 .loc 1 1640 23 view .LVU1056 3110 00ac 1A70 strb r2, [r3] 1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3111 .loc 1 1643 7 is_stmt 1 view .LVU1057 1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3112 .loc 1 1643 11 is_stmt 0 view .LVU1058 3113 00ae 636A ldr r3, [r4, #36] 1643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3114 .loc 1 1643 21 view .LVU1059 3115 00b0 0133 adds r3, r3, #1 3116 00b2 6362 str r3, [r4, #36] 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 3117 .loc 1 1645 7 is_stmt 1 view .LVU1060 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 3118 .loc 1 1645 11 is_stmt 0 view .LVU1061 3119 00b4 B4F82AC0 ldrh ip, [r4, #42] 3120 00b8 1FFA8CFC uxth ip, ip 1645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; ARM GAS /tmp/ccJ8PJrU.s page 204 3121 .loc 1 1645 22 view .LVU1062 3122 00bc 0CF1FF3C add ip, ip, #-1 3123 00c0 1FFA8CFC uxth ip, ip 3124 00c4 A4F82AC0 strh ip, [r4, #42] @ movhi 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3125 .loc 1 1646 7 is_stmt 1 view .LVU1063 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3126 .loc 1 1646 11 is_stmt 0 view .LVU1064 3127 00c8 238D ldrh r3, [r4, #40] 1646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3128 .loc 1 1646 21 view .LVU1065 3129 00ca 013B subs r3, r3, #1 3130 00cc 2385 strh r3, [r4, #40] @ movhi 3131 .L220: 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3132 .loc 1 1615 28 is_stmt 1 view .LVU1066 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3133 .loc 1 1615 16 is_stmt 0 view .LVU1067 3134 00ce 638D ldrh r3, [r4, #42] 3135 00d0 9BB2 uxth r3, r3 1615:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3136 .loc 1 1615 28 view .LVU1068 3137 00d2 03B3 cbz r3, .L229 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3138 .loc 1 1618 7 is_stmt 1 view .LVU1069 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3139 .loc 1 1618 11 is_stmt 0 view .LVU1070 3140 00d4 3A46 mov r2, r7 3141 00d6 2946 mov r1, r5 3142 00d8 2046 mov r0, r4 3143 00da FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 3144 .LVL213: 1618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3145 .loc 1 1618 10 discriminator 1 view .LVU1071 3146 00de 0028 cmp r0, #0 3147 00e0 E1D0 beq .L221 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3148 .loc 1 1621 9 is_stmt 1 view .LVU1072 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3149 .loc 1 1621 13 is_stmt 0 view .LVU1073 3150 00e2 2268 ldr r2, [r4] 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3151 .loc 1 1621 23 view .LVU1074 3152 00e4 5368 ldr r3, [r2, #4] 1621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3153 .loc 1 1621 29 view .LVU1075 3154 00e6 43F40043 orr r3, r3, #32768 3155 00ea 5360 str r3, [r2, #4] 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3156 .loc 1 1624 9 is_stmt 1 view .LVU1076 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3157 .loc 1 1624 13 is_stmt 0 view .LVU1077 3158 00ec 2368 ldr r3, [r4] 3159 00ee 9A69 ldr r2, [r3, #24] 1624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3160 .loc 1 1624 12 view .LVU1078 3161 00f0 12F0040F tst r2, #4 ARM GAS /tmp/ccJ8PJrU.s page 205 3162 00f4 0DD0 beq .L222 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3163 .loc 1 1627 11 is_stmt 1 view .LVU1079 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3164 .loc 1 1627 52 is_stmt 0 view .LVU1080 3165 00f6 5A6A ldr r2, [r3, #36] 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3166 .loc 1 1627 16 view .LVU1081 3167 00f8 636A ldr r3, [r4, #36] 1627:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3168 .loc 1 1627 27 view .LVU1082 3169 00fa 1A70 strb r2, [r3] 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3170 .loc 1 1630 11 is_stmt 1 view .LVU1083 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3171 .loc 1 1630 15 is_stmt 0 view .LVU1084 3172 00fc 636A ldr r3, [r4, #36] 1630:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3173 .loc 1 1630 25 view .LVU1085 3174 00fe 0133 adds r3, r3, #1 3175 0100 6362 str r3, [r4, #36] 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 3176 .loc 1 1632 11 is_stmt 1 view .LVU1086 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 3177 .loc 1 1632 15 is_stmt 0 view .LVU1087 3178 0102 638D ldrh r3, [r4, #42] 3179 0104 9BB2 uxth r3, r3 1632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 3180 .loc 1 1632 26 view .LVU1088 3181 0106 013B subs r3, r3, #1 3182 0108 9BB2 uxth r3, r3 3183 010a 6385 strh r3, [r4, #42] @ movhi 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3184 .loc 1 1633 11 is_stmt 1 view .LVU1089 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3185 .loc 1 1633 15 is_stmt 0 view .LVU1090 3186 010c 238D ldrh r3, [r4, #40] 1633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3187 .loc 1 1633 25 view .LVU1091 3188 010e 013B subs r3, r3, #1 3189 0110 2385 strh r3, [r4, #40] @ movhi 3190 .L222: 1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3191 .loc 1 1636 9 is_stmt 1 view .LVU1092 1636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3192 .loc 1 1636 16 is_stmt 0 view .LVU1093 3193 0112 0120 movs r0, #1 3194 0114 2EE0 b .L216 3195 .L229: 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3196 .loc 1 1650 5 is_stmt 1 view .LVU1094 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3197 .loc 1 1650 9 is_stmt 0 view .LVU1095 3198 0116 3A46 mov r2, r7 3199 0118 2946 mov r1, r5 3200 011a 2046 mov r0, r4 3201 011c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout ARM GAS /tmp/ccJ8PJrU.s page 206 3202 .LVL214: 1650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3203 .loc 1 1650 8 discriminator 1 view .LVU1096 3204 0120 30B1 cbz r0, .L224 1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3205 .loc 1 1653 7 is_stmt 1 view .LVU1097 1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3206 .loc 1 1653 11 is_stmt 0 view .LVU1098 3207 0122 2268 ldr r2, [r4] 1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3208 .loc 1 1653 21 view .LVU1099 3209 0124 5368 ldr r3, [r2, #4] 1653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3210 .loc 1 1653 27 view .LVU1100 3211 0126 43F40043 orr r3, r3, #32768 3212 012a 5360 str r3, [r2, #4] 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3213 .loc 1 1654 7 is_stmt 1 view .LVU1101 1654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3214 .loc 1 1654 14 is_stmt 0 view .LVU1102 3215 012c 0120 movs r0, #1 3216 012e 21E0 b .L216 3217 .L224: 1658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3218 .loc 1 1658 5 is_stmt 1 view .LVU1103 3219 0130 2368 ldr r3, [r4] 3220 0132 2022 movs r2, #32 3221 0134 DA61 str r2, [r3, #28] 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3222 .loc 1 1661 5 view .LVU1104 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3223 .loc 1 1661 9 is_stmt 0 view .LVU1105 3224 0136 0097 str r7, [sp] 3225 0138 2B46 mov r3, r5 3226 013a 0122 movs r2, #1 3227 013c 4FF40041 mov r1, #32768 3228 0140 2046 mov r0, r4 3229 0142 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3230 .LVL215: 1661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3231 .loc 1 1661 8 discriminator 1 view .LVU1106 3232 0146 30B1 cbz r0, .L225 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3233 .loc 1 1664 7 is_stmt 1 view .LVU1107 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3234 .loc 1 1664 11 is_stmt 0 view .LVU1108 3235 0148 2268 ldr r2, [r4] 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3236 .loc 1 1664 21 view .LVU1109 3237 014a 5368 ldr r3, [r2, #4] 1664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 3238 .loc 1 1664 27 view .LVU1110 3239 014c 43F40043 orr r3, r3, #32768 3240 0150 5360 str r3, [r2, #4] 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3241 .loc 1 1665 7 is_stmt 1 view .LVU1111 1665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 207 3242 .loc 1 1665 14 is_stmt 0 view .LVU1112 3243 0152 0120 movs r0, #1 3244 0154 0EE0 b .L216 3245 .L225: 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3246 .loc 1 1669 5 is_stmt 1 view .LVU1113 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3247 .loc 1 1669 9 is_stmt 0 view .LVU1114 3248 0156 2268 ldr r2, [r4] 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3249 .loc 1 1669 19 view .LVU1115 3250 0158 5368 ldr r3, [r2, #4] 1669:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3251 .loc 1 1669 25 view .LVU1116 3252 015a 43F40043 orr r3, r3, #32768 3253 015e 5360 str r3, [r2, #4] 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3254 .loc 1 1671 5 is_stmt 1 view .LVU1117 1671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3255 .loc 1 1671 17 is_stmt 0 view .LVU1118 3256 0160 2023 movs r3, #32 3257 0162 84F84130 strb r3, [r4, #65] 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3258 .loc 1 1672 5 is_stmt 1 view .LVU1119 1672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3259 .loc 1 1672 17 is_stmt 0 view .LVU1120 3260 0166 0023 movs r3, #0 3261 0168 84F84230 strb r3, [r4, #66] 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3262 .loc 1 1675 5 is_stmt 1 view .LVU1121 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3263 .loc 1 1675 5 view .LVU1122 3264 016c 84F84030 strb r3, [r4, #64] 1675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3265 .loc 1 1675 5 view .LVU1123 1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3266 .loc 1 1677 5 view .LVU1124 1677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3267 .loc 1 1677 12 is_stmt 0 view .LVU1125 3268 0170 00E0 b .L216 3269 .LVL216: 3270 .L226: 1681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3271 .loc 1 1681 12 view .LVU1126 3272 0172 0220 movs r0, #2 3273 .LVL217: 3274 .L216: 1683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3275 .loc 1 1683 1 view .LVU1127 3276 0174 02B0 add sp, sp, #8 3277 .cfi_remember_state 3278 .cfi_def_cfa_offset 24 3279 @ sp needed 3280 0176 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 3281 .LVL218: 3282 .L227: 3283 .cfi_restore_state ARM GAS /tmp/ccJ8PJrU.s page 208 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3284 .loc 1 1578 5 discriminator 1 view .LVU1128 3285 017a 0220 movs r0, #2 3286 .LVL219: 1578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3287 .loc 1 1578 5 discriminator 1 view .LVU1129 3288 017c FAE7 b .L216 3289 .cfi_endproc 3290 .LFE130: 3292 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits 3293 .align 1 3294 .global HAL_I2C_Master_Transmit_IT 3295 .syntax unified 3296 .thumb 3297 .thumb_func 3299 HAL_I2C_Master_Transmit_IT: 3300 .LVL220: 3301 .LFB131: 1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3302 .loc 1 1697 1 is_stmt 1 view -0 3303 .cfi_startproc 3304 @ args = 0, pretend = 0, frame = 0 3305 @ frame_needed = 0, uses_anonymous_args = 0 1697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3306 .loc 1 1697 1 is_stmt 0 view .LVU1131 3307 0000 30B5 push {r4, r5, lr} 3308 .cfi_def_cfa_offset 12 3309 .cfi_offset 4, -12 3310 .cfi_offset 5, -8 3311 .cfi_offset 14, -4 3312 0002 83B0 sub sp, sp, #12 3313 .cfi_def_cfa_offset 24 3314 0004 0446 mov r4, r0 1698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3315 .loc 1 1698 3 is_stmt 1 view .LVU1132 1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3316 .loc 1 1700 3 view .LVU1133 1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3317 .loc 1 1700 11 is_stmt 0 view .LVU1134 3318 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3319 .LVL221: 1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3320 .loc 1 1700 11 view .LVU1135 3321 000a C0B2 uxtb r0, r0 1700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3322 .loc 1 1700 6 view .LVU1136 3323 000c 2028 cmp r0, #32 3324 000e 4ED1 bne .L236 1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3325 .loc 1 1702 5 is_stmt 1 view .LVU1137 1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3326 .loc 1 1702 9 is_stmt 0 view .LVU1138 3327 0010 2068 ldr r0, [r4] 3328 0012 8569 ldr r5, [r0, #24] 1702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3329 .loc 1 1702 8 view .LVU1139 3330 0014 15F4004F tst r5, #32768 ARM GAS /tmp/ccJ8PJrU.s page 209 3331 0018 4BD1 bne .L237 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3332 .loc 1 1708 5 is_stmt 1 view .LVU1140 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3333 .loc 1 1708 5 view .LVU1141 3334 001a 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2 3335 001e 012D cmp r5, #1 3336 0020 49D0 beq .L238 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3337 .loc 1 1708 5 discriminator 2 view .LVU1142 3338 0022 0125 movs r5, #1 3339 0024 84F84050 strb r5, [r4, #64] 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3340 .loc 1 1708 5 discriminator 2 view .LVU1143 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3341 .loc 1 1710 5 view .LVU1144 1710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3342 .loc 1 1710 23 is_stmt 0 view .LVU1145 3343 0028 2125 movs r5, #33 3344 002a 84F84150 strb r5, [r4, #65] 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3345 .loc 1 1711 5 is_stmt 1 view .LVU1146 1711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3346 .loc 1 1711 23 is_stmt 0 view .LVU1147 3347 002e 1025 movs r5, #16 3348 0030 84F84250 strb r5, [r4, #66] 1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3349 .loc 1 1712 5 is_stmt 1 view .LVU1148 1712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3350 .loc 1 1712 23 is_stmt 0 view .LVU1149 3351 0034 0025 movs r5, #0 3352 0036 6564 str r5, [r4, #68] 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3353 .loc 1 1715 5 is_stmt 1 view .LVU1150 1715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3354 .loc 1 1715 23 is_stmt 0 view .LVU1151 3355 0038 6262 str r2, [r4, #36] 1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3356 .loc 1 1716 5 is_stmt 1 view .LVU1152 1716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3357 .loc 1 1716 23 is_stmt 0 view .LVU1153 3358 003a 6385 strh r3, [r4, #42] @ movhi 1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3359 .loc 1 1717 5 is_stmt 1 view .LVU1154 1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3360 .loc 1 1717 23 is_stmt 0 view .LVU1155 3361 003c 1F4B ldr r3, .L240 3362 .LVL222: 1717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3363 .loc 1 1717 23 view .LVU1156 3364 003e E362 str r3, [r4, #44] 3365 .LVL223: 1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3366 .loc 1 1718 5 is_stmt 1 view .LVU1157 1718:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3367 .loc 1 1718 23 is_stmt 0 view .LVU1158 3368 0040 1F4B ldr r3, .L240+4 ARM GAS /tmp/ccJ8PJrU.s page 210 3369 0042 6363 str r3, [r4, #52] 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3370 .loc 1 1720 5 is_stmt 1 view .LVU1159 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3371 .loc 1 1720 13 is_stmt 0 view .LVU1160 3372 0044 638D ldrh r3, [r4, #42] 3373 0046 9BB2 uxth r3, r3 1720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3374 .loc 1 1720 8 view .LVU1161 3375 0048 FF2B cmp r3, #255 3376 004a 24D9 bls .L232 1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3377 .loc 1 1722 7 is_stmt 1 view .LVU1162 1722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3378 .loc 1 1722 22 is_stmt 0 view .LVU1163 3379 004c FF23 movs r3, #255 3380 004e 2385 strh r3, [r4, #40] @ movhi 1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3381 .loc 1 1723 7 is_stmt 1 view .LVU1164 3382 .LVL224: 1723:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3383 .loc 1 1723 16 is_stmt 0 view .LVU1165 3384 0050 4FF08073 mov r3, #16777216 3385 .LVL225: 3386 .L233: 1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3387 .loc 1 1733 5 is_stmt 1 view .LVU1166 1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3388 .loc 1 1733 13 is_stmt 0 view .LVU1167 3389 0054 258D ldrh r5, [r4, #40] 1733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3390 .loc 1 1733 8 view .LVU1168 3391 0056 1DB3 cbz r5, .L234 1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3392 .loc 1 1737 7 is_stmt 1 view .LVU1169 1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3393 .loc 1 1737 30 is_stmt 0 view .LVU1170 3394 0058 1278 ldrb r2, [r2] @ zero_extendqisi2 3395 .LVL226: 1737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3396 .loc 1 1737 28 view .LVU1171 3397 005a 8262 str r2, [r0, #40] 3398 .LVL227: 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3399 .loc 1 1740 7 is_stmt 1 view .LVU1172 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3400 .loc 1 1740 11 is_stmt 0 view .LVU1173 3401 005c 626A ldr r2, [r4, #36] 1740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3402 .loc 1 1740 21 view .LVU1174 3403 005e 0132 adds r2, r2, #1 3404 0060 6262 str r2, [r4, #36] 1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 3405 .loc 1 1742 7 is_stmt 1 view .LVU1175 1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 3406 .loc 1 1742 11 is_stmt 0 view .LVU1176 3407 0062 628D ldrh r2, [r4, #42] ARM GAS /tmp/ccJ8PJrU.s page 211 3408 0064 92B2 uxth r2, r2 1742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 3409 .loc 1 1742 22 view .LVU1177 3410 0066 013A subs r2, r2, #1 3411 0068 92B2 uxth r2, r2 3412 006a 6285 strh r2, [r4, #42] @ movhi 1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3413 .loc 1 1743 7 is_stmt 1 view .LVU1178 1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3414 .loc 1 1743 11 is_stmt 0 view .LVU1179 3415 006c 228D ldrh r2, [r4, #40] 1743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3416 .loc 1 1743 21 view .LVU1180 3417 006e 013A subs r2, r2, #1 3418 0070 92B2 uxth r2, r2 3419 0072 2285 strh r2, [r4, #40] @ movhi 1745:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3420 .loc 1 1745 7 is_stmt 1 view .LVU1181 3421 0074 0132 adds r2, r2, #1 3422 0076 1348 ldr r0, .L240+8 3423 0078 0090 str r0, [sp] 3424 007a D2B2 uxtb r2, r2 3425 007c 2046 mov r0, r4 3426 007e FFF7FEFF bl I2C_TransferConfig 3427 .LVL228: 3428 .L235: 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3429 .loc 1 1755 5 view .LVU1182 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3430 .loc 1 1755 5 view .LVU1183 3431 0082 0025 movs r5, #0 3432 0084 84F84050 strb r5, [r4, #64] 1755:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3433 .loc 1 1755 5 view .LVU1184 1765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3434 .loc 1 1765 5 view .LVU1185 3435 0088 0121 movs r1, #1 3436 008a 2046 mov r0, r4 3437 008c FFF7FEFF bl I2C_Enable_IRQ 3438 .LVL229: 1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3439 .loc 1 1767 5 view .LVU1186 1767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3440 .loc 1 1767 12 is_stmt 0 view .LVU1187 3441 0090 2846 mov r0, r5 3442 .LVL230: 3443 .L231: 1773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3444 .loc 1 1773 1 view .LVU1188 3445 0092 03B0 add sp, sp, #12 3446 .cfi_remember_state 3447 .cfi_def_cfa_offset 12 3448 @ sp needed 3449 0094 30BD pop {r4, r5, pc} 3450 .LVL231: 3451 .L232: 3452 .cfi_restore_state ARM GAS /tmp/ccJ8PJrU.s page 212 1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3453 .loc 1 1727 7 is_stmt 1 view .LVU1189 1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3454 .loc 1 1727 28 is_stmt 0 view .LVU1190 3455 0096 638D ldrh r3, [r4, #42] 1727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3456 .loc 1 1727 22 view .LVU1191 3457 0098 2385 strh r3, [r4, #40] @ movhi 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3458 .loc 1 1728 7 is_stmt 1 view .LVU1192 3459 .LVL232: 1728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3460 .loc 1 1728 16 is_stmt 0 view .LVU1193 3461 009a 4FF00073 mov r3, #33554432 3462 009e D9E7 b .L233 3463 .LVL233: 3464 .L234: 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3465 .loc 1 1750 7 is_stmt 1 view .LVU1194 3466 00a0 084A ldr r2, .L240+8 3467 .LVL234: 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3468 .loc 1 1750 7 is_stmt 0 view .LVU1195 3469 00a2 0092 str r2, [sp] 3470 .LVL235: 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3471 .loc 1 1750 7 view .LVU1196 3472 00a4 EAB2 uxtb r2, r5 3473 00a6 2046 mov r0, r4 3474 00a8 FFF7FEFF bl I2C_TransferConfig 3475 .LVL236: 1750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3476 .loc 1 1750 7 view .LVU1197 3477 00ac E9E7 b .L235 3478 .LVL237: 3479 .L236: 1771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3480 .loc 1 1771 12 view .LVU1198 3481 00ae 0220 movs r0, #2 3482 00b0 EFE7 b .L231 3483 .L237: 1704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3484 .loc 1 1704 14 view .LVU1199 3485 00b2 0220 movs r0, #2 3486 00b4 EDE7 b .L231 3487 .L238: 1708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3488 .loc 1 1708 5 discriminator 1 view .LVU1200 3489 00b6 0220 movs r0, #2 3490 00b8 EBE7 b .L231 3491 .L241: 3492 00ba 00BF .align 2 3493 .L240: 3494 00bc 0000FFFF .word -65536 3495 00c0 00000000 .word I2C_Master_ISR_IT 3496 00c4 00200080 .word -2147475456 3497 .cfi_endproc ARM GAS /tmp/ccJ8PJrU.s page 213 3498 .LFE131: 3500 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits 3501 .align 1 3502 .global HAL_I2C_Master_Receive_IT 3503 .syntax unified 3504 .thumb 3505 .thumb_func 3507 HAL_I2C_Master_Receive_IT: 3508 .LVL238: 3509 .LFB132: 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3510 .loc 1 1787 1 is_stmt 1 view -0 3511 .cfi_startproc 3512 @ args = 0, pretend = 0, frame = 0 3513 @ frame_needed = 0, uses_anonymous_args = 0 1787:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3514 .loc 1 1787 1 is_stmt 0 view .LVU1202 3515 0000 30B5 push {r4, r5, lr} 3516 .cfi_def_cfa_offset 12 3517 .cfi_offset 4, -12 3518 .cfi_offset 5, -8 3519 .cfi_offset 14, -4 3520 0002 83B0 sub sp, sp, #12 3521 .cfi_def_cfa_offset 24 3522 0004 0446 mov r4, r0 1788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3523 .loc 1 1788 3 is_stmt 1 view .LVU1203 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3524 .loc 1 1790 3 view .LVU1204 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3525 .loc 1 1790 11 is_stmt 0 view .LVU1205 3526 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3527 .LVL239: 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3528 .loc 1 1790 11 view .LVU1206 3529 000a C0B2 uxtb r0, r0 1790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3530 .loc 1 1790 6 view .LVU1207 3531 000c 2028 cmp r0, #32 3532 000e 37D1 bne .L246 1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3533 .loc 1 1792 5 is_stmt 1 view .LVU1208 1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3534 .loc 1 1792 9 is_stmt 0 view .LVU1209 3535 0010 2068 ldr r0, [r4] 3536 0012 8069 ldr r0, [r0, #24] 1792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3537 .loc 1 1792 8 view .LVU1210 3538 0014 10F4004F tst r0, #32768 3539 0018 34D1 bne .L247 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3540 .loc 1 1798 5 is_stmt 1 view .LVU1211 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3541 .loc 1 1798 5 view .LVU1212 3542 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 3543 001e 0128 cmp r0, #1 3544 0020 32D0 beq .L248 ARM GAS /tmp/ccJ8PJrU.s page 214 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3545 .loc 1 1798 5 discriminator 2 view .LVU1213 3546 0022 0120 movs r0, #1 3547 0024 84F84000 strb r0, [r4, #64] 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3548 .loc 1 1798 5 discriminator 2 view .LVU1214 1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3549 .loc 1 1800 5 view .LVU1215 1800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3550 .loc 1 1800 23 is_stmt 0 view .LVU1216 3551 0028 2220 movs r0, #34 3552 002a 84F84100 strb r0, [r4, #65] 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3553 .loc 1 1801 5 is_stmt 1 view .LVU1217 1801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3554 .loc 1 1801 23 is_stmt 0 view .LVU1218 3555 002e 1020 movs r0, #16 3556 0030 84F84200 strb r0, [r4, #66] 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3557 .loc 1 1802 5 is_stmt 1 view .LVU1219 1802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3558 .loc 1 1802 23 is_stmt 0 view .LVU1220 3559 0034 0020 movs r0, #0 3560 0036 6064 str r0, [r4, #68] 1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3561 .loc 1 1805 5 is_stmt 1 view .LVU1221 1805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3562 .loc 1 1805 23 is_stmt 0 view .LVU1222 3563 0038 6262 str r2, [r4, #36] 1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3564 .loc 1 1806 5 is_stmt 1 view .LVU1223 1806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3565 .loc 1 1806 23 is_stmt 0 view .LVU1224 3566 003a 6385 strh r3, [r4, #42] @ movhi 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3567 .loc 1 1807 5 is_stmt 1 view .LVU1225 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3568 .loc 1 1807 23 is_stmt 0 view .LVU1226 3569 003c 134B ldr r3, .L250 3570 .LVL240: 1807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3571 .loc 1 1807 23 view .LVU1227 3572 003e E362 str r3, [r4, #44] 3573 .LVL241: 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3574 .loc 1 1808 5 is_stmt 1 view .LVU1228 1808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3575 .loc 1 1808 23 is_stmt 0 view .LVU1229 3576 0040 134B ldr r3, .L250+4 3577 0042 6363 str r3, [r4, #52] 1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3578 .loc 1 1810 5 is_stmt 1 view .LVU1230 1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3579 .loc 1 1810 13 is_stmt 0 view .LVU1231 3580 0044 638D ldrh r3, [r4, #42] 3581 0046 9BB2 uxth r3, r3 1810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 215 3582 .loc 1 1810 8 view .LVU1232 3583 0048 FF2B cmp r3, #255 3584 004a 14D9 bls .L244 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3585 .loc 1 1812 7 is_stmt 1 view .LVU1233 1812:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3586 .loc 1 1812 22 is_stmt 0 view .LVU1234 3587 004c 0123 movs r3, #1 3588 004e 2385 strh r3, [r4, #40] @ movhi 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3589 .loc 1 1813 7 is_stmt 1 view .LVU1235 3590 .LVL242: 1813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3591 .loc 1 1813 16 is_stmt 0 view .LVU1236 3592 0050 4FF08073 mov r3, #16777216 3593 .LVL243: 3594 .L245: 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3595 .loc 1 1823 5 is_stmt 1 view .LVU1237 3596 0054 0F4A ldr r2, .L250+8 3597 .LVL244: 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3598 .loc 1 1823 5 is_stmt 0 view .LVU1238 3599 0056 0092 str r2, [sp] 3600 .LVL245: 1823:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3601 .loc 1 1823 5 view .LVU1239 3602 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3603 005c 2046 mov r0, r4 3604 005e FFF7FEFF bl I2C_TransferConfig 3605 .LVL246: 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3606 .loc 1 1826 5 is_stmt 1 view .LVU1240 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3607 .loc 1 1826 5 view .LVU1241 3608 0062 0025 movs r5, #0 3609 0064 84F84050 strb r5, [r4, #64] 1826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3610 .loc 1 1826 5 view .LVU1242 1836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3611 .loc 1 1836 5 view .LVU1243 3612 0068 0221 movs r1, #2 3613 006a 2046 mov r0, r4 3614 006c FFF7FEFF bl I2C_Enable_IRQ 3615 .LVL247: 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3616 .loc 1 1838 5 view .LVU1244 1838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3617 .loc 1 1838 12 is_stmt 0 view .LVU1245 3618 0070 2846 mov r0, r5 3619 .LVL248: 3620 .L243: 1844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3621 .loc 1 1844 1 view .LVU1246 3622 0072 03B0 add sp, sp, #12 3623 .cfi_remember_state 3624 .cfi_def_cfa_offset 12 ARM GAS /tmp/ccJ8PJrU.s page 216 3625 @ sp needed 3626 0074 30BD pop {r4, r5, pc} 3627 .LVL249: 3628 .L244: 3629 .cfi_restore_state 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3630 .loc 1 1817 7 is_stmt 1 view .LVU1247 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3631 .loc 1 1817 28 is_stmt 0 view .LVU1248 3632 0076 638D ldrh r3, [r4, #42] 1817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3633 .loc 1 1817 22 view .LVU1249 3634 0078 2385 strh r3, [r4, #40] @ movhi 1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3635 .loc 1 1818 7 is_stmt 1 view .LVU1250 3636 .LVL250: 1818:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3637 .loc 1 1818 16 is_stmt 0 view .LVU1251 3638 007a 4FF00073 mov r3, #33554432 3639 007e E9E7 b .L245 3640 .LVL251: 3641 .L246: 1842:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3642 .loc 1 1842 12 view .LVU1252 3643 0080 0220 movs r0, #2 3644 0082 F6E7 b .L243 3645 .L247: 1794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3646 .loc 1 1794 14 view .LVU1253 3647 0084 0220 movs r0, #2 3648 0086 F4E7 b .L243 3649 .L248: 1798:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3650 .loc 1 1798 5 discriminator 1 view .LVU1254 3651 0088 0220 movs r0, #2 3652 008a F2E7 b .L243 3653 .L251: 3654 .align 2 3655 .L250: 3656 008c 0000FFFF .word -65536 3657 0090 00000000 .word I2C_Master_ISR_IT 3658 0094 00240080 .word -2147474432 3659 .cfi_endproc 3660 .LFE132: 3662 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits 3663 .align 1 3664 .global HAL_I2C_Slave_Transmit_IT 3665 .syntax unified 3666 .thumb 3667 .thumb_func 3669 HAL_I2C_Slave_Transmit_IT: 3670 .LVL252: 3671 .LFB133: 1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3672 .loc 1 1855 1 is_stmt 1 view -0 3673 .cfi_startproc 3674 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccJ8PJrU.s page 217 3675 @ frame_needed = 0, uses_anonymous_args = 0 1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3676 .loc 1 1856 3 view .LVU1256 1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3677 .loc 1 1856 11 is_stmt 0 view .LVU1257 3678 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3679 0004 DBB2 uxtb r3, r3 1856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3680 .loc 1 1856 6 view .LVU1258 3681 0006 202B cmp r3, #32 3682 0008 38D1 bne .L255 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3683 .loc 1 1859 5 is_stmt 1 view .LVU1259 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3684 .loc 1 1859 5 view .LVU1260 3685 000a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3686 000e 012B cmp r3, #1 3687 0010 36D0 beq .L256 1855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3688 .loc 1 1855 1 is_stmt 0 view .LVU1261 3689 0012 10B5 push {r4, lr} 3690 .cfi_def_cfa_offset 8 3691 .cfi_offset 4, -8 3692 .cfi_offset 14, -4 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3693 .loc 1 1859 5 is_stmt 1 discriminator 2 view .LVU1262 3694 0014 0123 movs r3, #1 3695 0016 80F84030 strb r3, [r0, #64] 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3696 .loc 1 1859 5 discriminator 2 view .LVU1263 1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3697 .loc 1 1861 5 view .LVU1264 1861:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3698 .loc 1 1861 23 is_stmt 0 view .LVU1265 3699 001a 2123 movs r3, #33 3700 001c 80F84130 strb r3, [r0, #65] 1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3701 .loc 1 1862 5 is_stmt 1 view .LVU1266 1862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3702 .loc 1 1862 23 is_stmt 0 view .LVU1267 3703 0020 2023 movs r3, #32 3704 0022 80F84230 strb r3, [r0, #66] 1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3705 .loc 1 1863 5 is_stmt 1 view .LVU1268 1863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3706 .loc 1 1863 23 is_stmt 0 view .LVU1269 3707 0026 0023 movs r3, #0 3708 0028 4364 str r3, [r0, #68] 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3709 .loc 1 1866 5 is_stmt 1 view .LVU1270 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3710 .loc 1 1866 9 is_stmt 0 view .LVU1271 3711 002a 0468 ldr r4, [r0] 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3712 .loc 1 1866 19 view .LVU1272 3713 002c 6368 ldr r3, [r4, #4] 1866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 218 3714 .loc 1 1866 25 view .LVU1273 3715 002e 23F40043 bic r3, r3, #32768 3716 0032 6360 str r3, [r4, #4] 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3717 .loc 1 1869 5 is_stmt 1 view .LVU1274 1869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3718 .loc 1 1869 23 is_stmt 0 view .LVU1275 3719 0034 4162 str r1, [r0, #36] 1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3720 .loc 1 1870 5 is_stmt 1 view .LVU1276 1870:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3721 .loc 1 1870 23 is_stmt 0 view .LVU1277 3722 0036 4285 strh r2, [r0, #42] @ movhi 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3723 .loc 1 1871 5 is_stmt 1 view .LVU1278 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3724 .loc 1 1871 29 is_stmt 0 view .LVU1279 3725 0038 438D ldrh r3, [r0, #42] 1871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3726 .loc 1 1871 23 view .LVU1280 3727 003a 0385 strh r3, [r0, #40] @ movhi 1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3728 .loc 1 1872 5 is_stmt 1 view .LVU1281 1872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3729 .loc 1 1872 23 is_stmt 0 view .LVU1282 3730 003c 114B ldr r3, .L262 3731 003e C362 str r3, [r0, #44] 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3732 .loc 1 1873 5 is_stmt 1 view .LVU1283 1873:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3733 .loc 1 1873 23 is_stmt 0 view .LVU1284 3734 0040 114B ldr r3, .L262+4 3735 0042 4363 str r3, [r0, #52] 1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3736 .loc 1 1876 5 is_stmt 1 view .LVU1285 1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3737 .loc 1 1876 19 is_stmt 0 view .LVU1286 3738 0044 036A ldr r3, [r0, #32] 1876:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3739 .loc 1 1876 8 view .LVU1287 3740 0046 B3F5003F cmp r3, #131072 3741 004a 08D0 beq .L261 3742 .LVL253: 3743 .L254: 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3744 .loc 1 1890 5 is_stmt 1 view .LVU1288 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3745 .loc 1 1890 5 view .LVU1289 3746 004c 0024 movs r4, #0 3747 004e 80F84040 strb r4, [r0, #64] 1890:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3748 .loc 1 1890 5 view .LVU1290 1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3749 .loc 1 1900 5 view .LVU1291 3750 0052 48F20101 movw r1, #32769 3751 .LVL254: 1900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 219 3752 .loc 1 1900 5 is_stmt 0 view .LVU1292 3753 0056 FFF7FEFF bl I2C_Enable_IRQ 3754 .LVL255: 1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3755 .loc 1 1902 5 is_stmt 1 view .LVU1293 1902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3756 .loc 1 1902 12 is_stmt 0 view .LVU1294 3757 005a 2046 mov r0, r4 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3758 .loc 1 1908 1 view .LVU1295 3759 005c 10BD pop {r4, pc} 3760 .LVL256: 3761 .L261: 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3762 .loc 1 1880 7 is_stmt 1 view .LVU1296 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3763 .loc 1 1880 11 is_stmt 0 view .LVU1297 3764 005e 0368 ldr r3, [r0] 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3765 .loc 1 1880 30 view .LVU1298 3766 0060 0A78 ldrb r2, [r1] @ zero_extendqisi2 3767 .LVL257: 1880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3768 .loc 1 1880 28 view .LVU1299 3769 0062 9A62 str r2, [r3, #40] 1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3770 .loc 1 1883 7 is_stmt 1 view .LVU1300 1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3771 .loc 1 1883 11 is_stmt 0 view .LVU1301 3772 0064 436A ldr r3, [r0, #36] 1883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3773 .loc 1 1883 21 view .LVU1302 3774 0066 0133 adds r3, r3, #1 3775 0068 4362 str r3, [r0, #36] 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 3776 .loc 1 1885 7 is_stmt 1 view .LVU1303 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 3777 .loc 1 1885 11 is_stmt 0 view .LVU1304 3778 006a 438D ldrh r3, [r0, #42] 3779 006c 9BB2 uxth r3, r3 1885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 3780 .loc 1 1885 22 view .LVU1305 3781 006e 013B subs r3, r3, #1 3782 0070 9BB2 uxth r3, r3 3783 0072 4385 strh r3, [r0, #42] @ movhi 1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3784 .loc 1 1886 7 is_stmt 1 view .LVU1306 1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3785 .loc 1 1886 11 is_stmt 0 view .LVU1307 3786 0074 038D ldrh r3, [r0, #40] 1886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3787 .loc 1 1886 21 view .LVU1308 3788 0076 013B subs r3, r3, #1 3789 0078 0385 strh r3, [r0, #40] @ movhi 3790 007a E7E7 b .L254 3791 .LVL258: 3792 .L255: ARM GAS /tmp/ccJ8PJrU.s page 220 3793 .cfi_def_cfa_offset 0 3794 .cfi_restore 4 3795 .cfi_restore 14 1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3796 .loc 1 1906 12 view .LVU1309 3797 007c 0220 movs r0, #2 3798 .LVL259: 1906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3799 .loc 1 1906 12 view .LVU1310 3800 007e 7047 bx lr 3801 .LVL260: 3802 .L256: 1859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3803 .loc 1 1859 5 discriminator 1 view .LVU1311 3804 0080 0220 movs r0, #2 3805 .LVL261: 1908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3806 .loc 1 1908 1 view .LVU1312 3807 0082 7047 bx lr 3808 .L263: 3809 .align 2 3810 .L262: 3811 0084 0000FFFF .word -65536 3812 0088 00000000 .word I2C_Slave_ISR_IT 3813 .cfi_endproc 3814 .LFE133: 3816 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits 3817 .align 1 3818 .global HAL_I2C_Slave_Receive_IT 3819 .syntax unified 3820 .thumb 3821 .thumb_func 3823 HAL_I2C_Slave_Receive_IT: 3824 .LVL262: 3825 .LFB134: 1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3826 .loc 1 1919 1 is_stmt 1 view -0 3827 .cfi_startproc 3828 @ args = 0, pretend = 0, frame = 0 3829 @ frame_needed = 0, uses_anonymous_args = 0 1919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3830 .loc 1 1919 1 is_stmt 0 view .LVU1314 3831 0000 38B5 push {r3, r4, r5, lr} 3832 .cfi_def_cfa_offset 16 3833 .cfi_offset 3, -16 3834 .cfi_offset 4, -12 3835 .cfi_offset 5, -8 3836 .cfi_offset 14, -4 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3837 .loc 1 1920 3 is_stmt 1 view .LVU1315 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3838 .loc 1 1920 11 is_stmt 0 view .LVU1316 3839 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3840 0006 DBB2 uxtb r3, r3 1920:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3841 .loc 1 1920 6 view .LVU1317 3842 0008 202B cmp r3, #32 ARM GAS /tmp/ccJ8PJrU.s page 221 3843 000a 23D1 bne .L266 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3844 .loc 1 1923 5 is_stmt 1 view .LVU1318 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3845 .loc 1 1923 5 view .LVU1319 3846 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3847 0010 012B cmp r3, #1 3848 0012 21D0 beq .L267 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3849 .loc 1 1923 5 discriminator 2 view .LVU1320 3850 0014 0123 movs r3, #1 3851 0016 80F84030 strb r3, [r0, #64] 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3852 .loc 1 1923 5 discriminator 2 view .LVU1321 1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3853 .loc 1 1925 5 view .LVU1322 1925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3854 .loc 1 1925 23 is_stmt 0 view .LVU1323 3855 001a 2223 movs r3, #34 3856 001c 80F84130 strb r3, [r0, #65] 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3857 .loc 1 1926 5 is_stmt 1 view .LVU1324 1926:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3858 .loc 1 1926 23 is_stmt 0 view .LVU1325 3859 0020 2023 movs r3, #32 3860 0022 80F84230 strb r3, [r0, #66] 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3861 .loc 1 1927 5 is_stmt 1 view .LVU1326 1927:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3862 .loc 1 1927 23 is_stmt 0 view .LVU1327 3863 0026 0024 movs r4, #0 3864 0028 4464 str r4, [r0, #68] 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3865 .loc 1 1930 5 is_stmt 1 view .LVU1328 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3866 .loc 1 1930 9 is_stmt 0 view .LVU1329 3867 002a 0568 ldr r5, [r0] 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3868 .loc 1 1930 19 view .LVU1330 3869 002c 6B68 ldr r3, [r5, #4] 1930:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3870 .loc 1 1930 25 view .LVU1331 3871 002e 23F40043 bic r3, r3, #32768 3872 0032 6B60 str r3, [r5, #4] 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3873 .loc 1 1933 5 is_stmt 1 view .LVU1332 1933:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3874 .loc 1 1933 23 is_stmt 0 view .LVU1333 3875 0034 4162 str r1, [r0, #36] 1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3876 .loc 1 1934 5 is_stmt 1 view .LVU1334 1934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3877 .loc 1 1934 23 is_stmt 0 view .LVU1335 3878 0036 4285 strh r2, [r0, #42] @ movhi 1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3879 .loc 1 1935 5 is_stmt 1 view .LVU1336 1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; ARM GAS /tmp/ccJ8PJrU.s page 222 3880 .loc 1 1935 29 is_stmt 0 view .LVU1337 3881 0038 438D ldrh r3, [r0, #42] 1935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3882 .loc 1 1935 23 view .LVU1338 3883 003a 0385 strh r3, [r0, #40] @ movhi 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3884 .loc 1 1936 5 is_stmt 1 view .LVU1339 1936:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3885 .loc 1 1936 23 is_stmt 0 view .LVU1340 3886 003c 074B ldr r3, .L269 3887 003e C362 str r3, [r0, #44] 1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3888 .loc 1 1937 5 is_stmt 1 view .LVU1341 1937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3889 .loc 1 1937 23 is_stmt 0 view .LVU1342 3890 0040 074B ldr r3, .L269+4 3891 0042 4363 str r3, [r0, #52] 1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3892 .loc 1 1940 5 is_stmt 1 view .LVU1343 1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3893 .loc 1 1940 5 view .LVU1344 3894 0044 80F84040 strb r4, [r0, #64] 1940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3895 .loc 1 1940 5 view .LVU1345 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3896 .loc 1 1950 5 view .LVU1346 3897 0048 48F20201 movw r1, #32770 3898 .LVL263: 1950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3899 .loc 1 1950 5 is_stmt 0 view .LVU1347 3900 004c FFF7FEFF bl I2C_Enable_IRQ 3901 .LVL264: 1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3902 .loc 1 1952 5 is_stmt 1 view .LVU1348 1952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3903 .loc 1 1952 12 is_stmt 0 view .LVU1349 3904 0050 2046 mov r0, r4 3905 .L265: 1958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3906 .loc 1 1958 1 view .LVU1350 3907 0052 38BD pop {r3, r4, r5, pc} 3908 .LVL265: 3909 .L266: 1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3910 .loc 1 1956 12 view .LVU1351 3911 0054 0220 movs r0, #2 3912 .LVL266: 1956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 3913 .loc 1 1956 12 view .LVU1352 3914 0056 FCE7 b .L265 3915 .LVL267: 3916 .L267: 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3917 .loc 1 1923 5 discriminator 1 view .LVU1353 3918 0058 0220 movs r0, #2 3919 .LVL268: 1923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 223 3920 .loc 1 1923 5 discriminator 1 view .LVU1354 3921 005a FAE7 b .L265 3922 .L270: 3923 .align 2 3924 .L269: 3925 005c 0000FFFF .word -65536 3926 0060 00000000 .word I2C_Slave_ISR_IT 3927 .cfi_endproc 3928 .LFE134: 3930 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits 3931 .align 1 3932 .global HAL_I2C_Master_Transmit_DMA 3933 .syntax unified 3934 .thumb 3935 .thumb_func 3937 HAL_I2C_Master_Transmit_DMA: 3938 .LVL269: 3939 .LFB135: 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3940 .loc 1 1972 1 is_stmt 1 view -0 3941 .cfi_startproc 3942 @ args = 0, pretend = 0, frame = 0 3943 @ frame_needed = 0, uses_anonymous_args = 0 1972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 3944 .loc 1 1972 1 is_stmt 0 view .LVU1356 3945 0000 70B5 push {r4, r5, r6, lr} 3946 .cfi_def_cfa_offset 16 3947 .cfi_offset 4, -16 3948 .cfi_offset 5, -12 3949 .cfi_offset 6, -8 3950 .cfi_offset 14, -4 3951 0002 82B0 sub sp, sp, #8 3952 .cfi_def_cfa_offset 24 3953 0004 0446 mov r4, r0 1973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3954 .loc 1 1973 3 is_stmt 1 view .LVU1357 1974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 3955 .loc 1 1974 3 view .LVU1358 1975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3956 .loc 1 1975 3 view .LVU1359 3957 .LVL270: 1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3958 .loc 1 1977 3 view .LVU1360 1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3959 .loc 1 1977 11 is_stmt 0 view .LVU1361 3960 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3961 .LVL271: 1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3962 .loc 1 1977 11 view .LVU1362 3963 000a C0B2 uxtb r0, r0 1977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3964 .loc 1 1977 6 view .LVU1363 3965 000c 2028 cmp r0, #32 3966 000e 40F09D80 bne .L281 3967 0012 0D46 mov r5, r1 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3968 .loc 1 1979 5 is_stmt 1 view .LVU1364 ARM GAS /tmp/ccJ8PJrU.s page 224 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3969 .loc 1 1979 9 is_stmt 0 view .LVU1365 3970 0014 2068 ldr r0, [r4] 3971 0016 8169 ldr r1, [r0, #24] 3972 .LVL272: 1979:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 3973 .loc 1 1979 8 view .LVU1366 3974 0018 11F40041 ands r1, r1, #32768 3975 001c 40F09980 bne .L282 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3976 .loc 1 1985 5 is_stmt 1 view .LVU1367 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3977 .loc 1 1985 5 view .LVU1368 3978 0020 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 3979 0024 012E cmp r6, #1 3980 0026 00F09680 beq .L283 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3981 .loc 1 1985 5 discriminator 2 view .LVU1369 3982 002a 0126 movs r6, #1 3983 002c 84F84060 strb r6, [r4, #64] 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3984 .loc 1 1985 5 discriminator 2 view .LVU1370 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3985 .loc 1 1987 5 view .LVU1371 1987:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3986 .loc 1 1987 23 is_stmt 0 view .LVU1372 3987 0030 2126 movs r6, #33 3988 0032 84F84160 strb r6, [r4, #65] 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3989 .loc 1 1988 5 is_stmt 1 view .LVU1373 1988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3990 .loc 1 1988 23 is_stmt 0 view .LVU1374 3991 0036 1026 movs r6, #16 3992 0038 84F84260 strb r6, [r4, #66] 1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3993 .loc 1 1989 5 is_stmt 1 view .LVU1375 1989:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 3994 .loc 1 1989 23 is_stmt 0 view .LVU1376 3995 003c 0026 movs r6, #0 3996 003e 6664 str r6, [r4, #68] 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3997 .loc 1 1992 5 is_stmt 1 view .LVU1377 1992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 3998 .loc 1 1992 23 is_stmt 0 view .LVU1378 3999 0040 6262 str r2, [r4, #36] 1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4000 .loc 1 1993 5 is_stmt 1 view .LVU1379 1993:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4001 .loc 1 1993 23 is_stmt 0 view .LVU1380 4002 0042 6385 strh r3, [r4, #42] @ movhi 1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4003 .loc 1 1994 5 is_stmt 1 view .LVU1381 1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4004 .loc 1 1994 23 is_stmt 0 view .LVU1382 4005 0044 454B ldr r3, .L287 4006 .LVL273: 1994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; ARM GAS /tmp/ccJ8PJrU.s page 225 4007 .loc 1 1994 23 view .LVU1383 4008 0046 E362 str r3, [r4, #44] 4009 .LVL274: 1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4010 .loc 1 1995 5 is_stmt 1 view .LVU1384 1995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4011 .loc 1 1995 23 is_stmt 0 view .LVU1385 4012 0048 454B ldr r3, .L287+4 4013 004a 6363 str r3, [r4, #52] 1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4014 .loc 1 1997 5 is_stmt 1 view .LVU1386 1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4015 .loc 1 1997 13 is_stmt 0 view .LVU1387 4016 004c 638D ldrh r3, [r4, #42] 4017 004e 9BB2 uxth r3, r3 1997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4018 .loc 1 1997 8 view .LVU1388 4019 0050 FF2B cmp r3, #255 4020 0052 37D9 bls .L273 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4021 .loc 1 1999 7 is_stmt 1 view .LVU1389 1999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4022 .loc 1 1999 22 is_stmt 0 view .LVU1390 4023 0054 FF23 movs r3, #255 4024 0056 2385 strh r3, [r4, #40] @ movhi 2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4025 .loc 1 2000 7 is_stmt 1 view .LVU1391 4026 .LVL275: 2000:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4027 .loc 1 2000 16 is_stmt 0 view .LVU1392 4028 0058 4FF08076 mov r6, #16777216 4029 .LVL276: 4030 .L274: 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4031 .loc 1 2008 5 is_stmt 1 view .LVU1393 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4032 .loc 1 2008 13 is_stmt 0 view .LVU1394 4033 005c 238D ldrh r3, [r4, #40] 2008:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4034 .loc 1 2008 8 view .LVU1395 4035 005e 63B1 cbz r3, .L275 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4036 .loc 1 2012 7 is_stmt 1 view .LVU1396 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4037 .loc 1 2012 30 is_stmt 0 view .LVU1397 4038 0060 1378 ldrb r3, [r2] @ zero_extendqisi2 2012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4039 .loc 1 2012 28 view .LVU1398 4040 0062 8362 str r3, [r0, #40] 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4041 .loc 1 2015 7 is_stmt 1 view .LVU1399 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4042 .loc 1 2015 11 is_stmt 0 view .LVU1400 4043 0064 636A ldr r3, [r4, #36] 2015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4044 .loc 1 2015 21 view .LVU1401 4045 0066 0133 adds r3, r3, #1 ARM GAS /tmp/ccJ8PJrU.s page 226 4046 0068 6362 str r3, [r4, #36] 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 4047 .loc 1 2017 7 is_stmt 1 view .LVU1402 2017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 4048 .loc 1 2017 24 is_stmt 0 view .LVU1403 4049 006a 218D ldrh r1, [r4, #40] 4050 .LVL277: 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 4051 .loc 1 2018 7 is_stmt 1 view .LVU1404 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 4052 .loc 1 2018 11 is_stmt 0 view .LVU1405 4053 006c 638D ldrh r3, [r4, #42] 4054 006e 9BB2 uxth r3, r3 2018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 4055 .loc 1 2018 22 view .LVU1406 4056 0070 013B subs r3, r3, #1 4057 0072 9BB2 uxth r3, r3 4058 0074 6385 strh r3, [r4, #42] @ movhi 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4059 .loc 1 2019 7 is_stmt 1 view .LVU1407 2019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4060 .loc 1 2019 21 is_stmt 0 view .LVU1408 4061 0076 4B1E subs r3, r1, #1 4062 0078 2385 strh r3, [r4, #40] @ movhi 4063 .LVL278: 4064 .L275: 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4065 .loc 1 2022 5 is_stmt 1 view .LVU1409 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4066 .loc 1 2022 13 is_stmt 0 view .LVU1410 4067 007a 238D ldrh r3, [r4, #40] 2022:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4068 .loc 1 2022 8 view .LVU1411 4069 007c 002B cmp r3, #0 4070 007e 51D0 beq .L276 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4071 .loc 1 2024 7 is_stmt 1 view .LVU1412 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4072 .loc 1 2024 15 is_stmt 0 view .LVU1413 4073 0080 A36B ldr r3, [r4, #56] 2024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4074 .loc 1 2024 10 view .LVU1414 4075 0082 23B3 cbz r3, .L277 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4076 .loc 1 2027 9 is_stmt 1 view .LVU1415 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4077 .loc 1 2027 40 is_stmt 0 view .LVU1416 4078 0084 374A ldr r2, .L287+8 4079 .LVL279: 2027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4080 .loc 1 2027 40 view .LVU1417 4081 0086 9A62 str r2, [r3, #40] 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4082 .loc 1 2030 9 is_stmt 1 view .LVU1418 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4083 .loc 1 2030 13 is_stmt 0 view .LVU1419 4084 0088 A36B ldr r3, [r4, #56] ARM GAS /tmp/ccJ8PJrU.s page 227 2030:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4085 .loc 1 2030 41 view .LVU1420 4086 008a 374A ldr r2, .L287+12 4087 008c 1A63 str r2, [r3, #48] 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4088 .loc 1 2033 9 is_stmt 1 view .LVU1421 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4089 .loc 1 2033 13 is_stmt 0 view .LVU1422 4090 008e A26B ldr r2, [r4, #56] 2033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4091 .loc 1 2033 44 view .LVU1423 4092 0090 0023 movs r3, #0 4093 0092 D362 str r3, [r2, #44] 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4094 .loc 1 2034 9 is_stmt 1 view .LVU1424 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4095 .loc 1 2034 13 is_stmt 0 view .LVU1425 4096 0094 A26B ldr r2, [r4, #56] 2034:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4097 .loc 1 2034 41 view .LVU1426 4098 0096 5363 str r3, [r2, #52] 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4099 .loc 1 2037 9 is_stmt 1 view .LVU1427 2038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4100 .loc 1 2038 57 is_stmt 0 view .LVU1428 4101 0098 2268 ldr r2, [r4] 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4102 .loc 1 2037 25 view .LVU1429 4103 009a 238D ldrh r3, [r4, #40] 4104 009c 2832 adds r2, r2, #40 4105 009e 616A ldr r1, [r4, #36] 4106 .LVL280: 2037:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4107 .loc 1 2037 25 view .LVU1430 4108 00a0 A06B ldr r0, [r4, #56] 4109 00a2 FFF7FEFF bl HAL_DMA_Start_IT 4110 .LVL281: 2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4111 .loc 1 2055 7 is_stmt 1 view .LVU1431 2055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4112 .loc 1 2055 10 is_stmt 0 view .LVU1432 4113 00a6 00B3 cbz r0, .L286 2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4114 .loc 1 2080 9 is_stmt 1 view .LVU1433 2080:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4115 .loc 1 2080 25 is_stmt 0 view .LVU1434 4116 00a8 2023 movs r3, #32 4117 00aa 84F84130 strb r3, [r4, #65] 2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4118 .loc 1 2081 9 is_stmt 1 view .LVU1435 2081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4119 .loc 1 2081 25 is_stmt 0 view .LVU1436 4120 00ae 0022 movs r2, #0 4121 00b0 84F84220 strb r2, [r4, #66] 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4122 .loc 1 2084 9 is_stmt 1 view .LVU1437 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 228 4123 .loc 1 2084 13 is_stmt 0 view .LVU1438 4124 00b4 636C ldr r3, [r4, #68] 2084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4125 .loc 1 2084 25 view .LVU1439 4126 00b6 43F01003 orr r3, r3, #16 4127 00ba 6364 str r3, [r4, #68] 2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4128 .loc 1 2087 9 is_stmt 1 view .LVU1440 2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4129 .loc 1 2087 9 view .LVU1441 4130 00bc 84F84020 strb r2, [r4, #64] 2087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4131 .loc 1 2087 9 view .LVU1442 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4132 .loc 1 2089 9 view .LVU1443 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4133 .loc 1 2089 16 is_stmt 0 view .LVU1444 4134 00c0 0120 movs r0, #1 4135 .LVL282: 2089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4136 .loc 1 2089 16 view .LVU1445 4137 00c2 44E0 b .L272 4138 .LVL283: 4139 .L273: 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4140 .loc 1 2004 7 is_stmt 1 view .LVU1446 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4141 .loc 1 2004 28 is_stmt 0 view .LVU1447 4142 00c4 638D ldrh r3, [r4, #42] 2004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4143 .loc 1 2004 22 view .LVU1448 4144 00c6 2385 strh r3, [r4, #40] @ movhi 2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4145 .loc 1 2005 7 is_stmt 1 view .LVU1449 4146 .LVL284: 2005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4147 .loc 1 2005 16 is_stmt 0 view .LVU1450 4148 00c8 4FF00076 mov r6, #33554432 4149 00cc C6E7 b .L274 4150 .LVL285: 4151 .L277: 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4152 .loc 1 2043 9 is_stmt 1 view .LVU1451 2043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4153 .loc 1 2043 25 is_stmt 0 view .LVU1452 4154 00ce 2023 movs r3, #32 4155 00d0 84F84130 strb r3, [r4, #65] 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4156 .loc 1 2044 9 is_stmt 1 view .LVU1453 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4157 .loc 1 2044 25 is_stmt 0 view .LVU1454 4158 00d4 0022 movs r2, #0 4159 .LVL286: 2044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4160 .loc 1 2044 25 view .LVU1455 4161 00d6 84F84220 strb r2, [r4, #66] 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 229 4162 .loc 1 2047 9 is_stmt 1 view .LVU1456 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4163 .loc 1 2047 13 is_stmt 0 view .LVU1457 4164 00da 636C ldr r3, [r4, #68] 2047:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4165 .loc 1 2047 25 view .LVU1458 4166 00dc 43F08003 orr r3, r3, #128 4167 00e0 6364 str r3, [r4, #68] 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4168 .loc 1 2050 9 is_stmt 1 view .LVU1459 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4169 .loc 1 2050 9 view .LVU1460 4170 00e2 84F84020 strb r2, [r4, #64] 2050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4171 .loc 1 2050 9 view .LVU1461 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4172 .loc 1 2052 9 view .LVU1462 2052:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4173 .loc 1 2052 16 is_stmt 0 view .LVU1463 4174 00e6 0120 movs r0, #1 4175 00e8 31E0 b .L272 4176 .LVL287: 4177 .L286: 2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4178 .loc 1 2059 9 is_stmt 1 view .LVU1464 2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4179 .loc 1 2059 60 is_stmt 0 view .LVU1465 4180 00ea 228D ldrh r2, [r4, #40] 2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4181 .loc 1 2059 9 view .LVU1466 4182 00ec 0132 adds r2, r2, #1 4183 00ee 1F4B ldr r3, .L287+16 4184 00f0 0093 str r3, [sp] 4185 00f2 3346 mov r3, r6 4186 00f4 D2B2 uxtb r2, r2 4187 00f6 2946 mov r1, r5 4188 00f8 2046 mov r0, r4 4189 .LVL288: 2059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4190 .loc 1 2059 9 view .LVU1467 4191 00fa FFF7FEFF bl I2C_TransferConfig 4192 .LVL289: 2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4193 .loc 1 2063 9 is_stmt 1 view .LVU1468 2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4194 .loc 1 2063 13 is_stmt 0 view .LVU1469 4195 00fe 638D ldrh r3, [r4, #42] 4196 0100 9BB2 uxth r3, r3 2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4197 .loc 1 2063 32 view .LVU1470 4198 0102 228D ldrh r2, [r4, #40] 2063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4199 .loc 1 2063 25 view .LVU1471 4200 0104 9B1A subs r3, r3, r2 4201 0106 9BB2 uxth r3, r3 4202 0108 6385 strh r3, [r4, #42] @ movhi 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 230 4203 .loc 1 2066 9 is_stmt 1 view .LVU1472 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4204 .loc 1 2066 9 view .LVU1473 4205 010a 0023 movs r3, #0 4206 010c 84F84030 strb r3, [r4, #64] 2066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4207 .loc 1 2066 9 view .LVU1474 2072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4208 .loc 1 2072 9 view .LVU1475 4209 0110 1021 movs r1, #16 4210 0112 2046 mov r0, r4 4211 0114 FFF7FEFF bl I2C_Enable_IRQ 4212 .LVL290: 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4213 .loc 1 2075 9 view .LVU1476 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4214 .loc 1 2075 13 is_stmt 0 view .LVU1477 4215 0118 2268 ldr r2, [r4] 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4216 .loc 1 2075 23 view .LVU1478 4217 011a 1368 ldr r3, [r2] 2075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4218 .loc 1 2075 29 view .LVU1479 4219 011c 43F48043 orr r3, r3, #16384 4220 0120 1360 str r3, [r2] 4221 0122 11E0 b .L280 4222 .LVL291: 4223 .L276: 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4224 .loc 1 2095 7 is_stmt 1 view .LVU1480 2095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4225 .loc 1 2095 21 is_stmt 0 view .LVU1481 4226 0124 124B ldr r3, .L287+20 4227 0126 6363 str r3, [r4, #52] 2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4228 .loc 1 2099 7 is_stmt 1 view .LVU1482 4229 0128 104B ldr r3, .L287+16 4230 012a 0093 str r3, [sp] 4231 012c 4FF00073 mov r3, #33554432 4232 0130 CAB2 uxtb r2, r1 4233 .LVL292: 2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4234 .loc 1 2099 7 is_stmt 0 view .LVU1483 4235 0132 2946 mov r1, r5 4236 .LVL293: 2099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4237 .loc 1 2099 7 view .LVU1484 4238 0134 2046 mov r0, r4 4239 0136 FFF7FEFF bl I2C_TransferConfig 4240 .LVL294: 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4241 .loc 1 2103 7 is_stmt 1 view .LVU1485 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4242 .loc 1 2103 7 view .LVU1486 4243 013a 0023 movs r3, #0 4244 013c 84F84030 strb r3, [r4, #64] 2103:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 231 4245 .loc 1 2103 7 view .LVU1487 2112:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4246 .loc 1 2112 7 view .LVU1488 4247 0140 0121 movs r1, #1 4248 0142 2046 mov r0, r4 4249 0144 FFF7FEFF bl I2C_Enable_IRQ 4250 .LVL295: 4251 .L280: 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4252 .loc 1 2115 5 view .LVU1489 2115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4253 .loc 1 2115 12 is_stmt 0 view .LVU1490 4254 0148 0020 movs r0, #0 4255 014a 00E0 b .L272 4256 .LVL296: 4257 .L281: 2119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4258 .loc 1 2119 12 view .LVU1491 4259 014c 0220 movs r0, #2 4260 .LVL297: 4261 .L272: 2121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4262 .loc 1 2121 1 view .LVU1492 4263 014e 02B0 add sp, sp, #8 4264 .cfi_remember_state 4265 .cfi_def_cfa_offset 16 4266 @ sp needed 4267 0150 70BD pop {r4, r5, r6, pc} 4268 .LVL298: 4269 .L282: 4270 .cfi_restore_state 1981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4271 .loc 1 1981 14 view .LVU1493 4272 0152 0220 movs r0, #2 4273 0154 FBE7 b .L272 4274 .L283: 1985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4275 .loc 1 1985 5 discriminator 1 view .LVU1494 4276 0156 0220 movs r0, #2 4277 0158 F9E7 b .L272 4278 .L288: 4279 015a 00BF .align 2 4280 .L287: 4281 015c 0000FFFF .word -65536 4282 0160 00000000 .word I2C_Master_ISR_DMA 4283 0164 00000000 .word I2C_DMAMasterTransmitCplt 4284 0168 00000000 .word I2C_DMAError 4285 016c 00200080 .word -2147475456 4286 0170 00000000 .word I2C_Master_ISR_IT 4287 .cfi_endproc 4288 .LFE135: 4290 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits 4291 .align 1 4292 .global HAL_I2C_Master_Receive_DMA 4293 .syntax unified 4294 .thumb 4295 .thumb_func ARM GAS /tmp/ccJ8PJrU.s page 232 4297 HAL_I2C_Master_Receive_DMA: 4298 .LVL299: 4299 .LFB136: 2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 4300 .loc 1 2135 1 is_stmt 1 view -0 4301 .cfi_startproc 4302 @ args = 0, pretend = 0, frame = 0 4303 @ frame_needed = 0, uses_anonymous_args = 0 2135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 4304 .loc 1 2135 1 is_stmt 0 view .LVU1496 4305 0000 70B5 push {r4, r5, r6, lr} 4306 .cfi_def_cfa_offset 16 4307 .cfi_offset 4, -16 4308 .cfi_offset 5, -12 4309 .cfi_offset 6, -8 4310 .cfi_offset 14, -4 4311 0002 82B0 sub sp, sp, #8 4312 .cfi_def_cfa_offset 24 4313 0004 0446 mov r4, r0 2136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4314 .loc 1 2136 3 is_stmt 1 view .LVU1497 2137:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4315 .loc 1 2137 3 view .LVU1498 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4316 .loc 1 2139 3 view .LVU1499 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4317 .loc 1 2139 11 is_stmt 0 view .LVU1500 4318 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 4319 .LVL300: 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4320 .loc 1 2139 11 view .LVU1501 4321 000a C0B2 uxtb r0, r0 2139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4322 .loc 1 2139 6 view .LVU1502 4323 000c 2028 cmp r0, #32 4324 000e 40F08C80 bne .L298 4325 0012 0D46 mov r5, r1 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4326 .loc 1 2141 5 is_stmt 1 view .LVU1503 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4327 .loc 1 2141 9 is_stmt 0 view .LVU1504 4328 0014 2168 ldr r1, [r4] 4329 .LVL301: 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4330 .loc 1 2141 9 view .LVU1505 4331 0016 8969 ldr r1, [r1, #24] 2141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4332 .loc 1 2141 8 view .LVU1506 4333 0018 11F4004F tst r1, #32768 4334 001c 40F08880 bne .L299 2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4335 .loc 1 2147 5 is_stmt 1 view .LVU1507 2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4336 .loc 1 2147 5 view .LVU1508 4337 0020 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 4338 0024 0129 cmp r1, #1 4339 0026 00F08580 beq .L300 ARM GAS /tmp/ccJ8PJrU.s page 233 2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4340 .loc 1 2147 5 discriminator 2 view .LVU1509 4341 002a 0121 movs r1, #1 4342 002c 84F84010 strb r1, [r4, #64] 2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4343 .loc 1 2147 5 discriminator 2 view .LVU1510 2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4344 .loc 1 2149 5 view .LVU1511 2149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4345 .loc 1 2149 23 is_stmt 0 view .LVU1512 4346 0030 2221 movs r1, #34 4347 0032 84F84110 strb r1, [r4, #65] 2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4348 .loc 1 2150 5 is_stmt 1 view .LVU1513 2150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4349 .loc 1 2150 23 is_stmt 0 view .LVU1514 4350 0036 1021 movs r1, #16 4351 0038 84F84210 strb r1, [r4, #66] 2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4352 .loc 1 2151 5 is_stmt 1 view .LVU1515 2151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4353 .loc 1 2151 23 is_stmt 0 view .LVU1516 4354 003c 0021 movs r1, #0 4355 003e 6164 str r1, [r4, #68] 2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4356 .loc 1 2154 5 is_stmt 1 view .LVU1517 2154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4357 .loc 1 2154 23 is_stmt 0 view .LVU1518 4358 0040 6262 str r2, [r4, #36] 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4359 .loc 1 2155 5 is_stmt 1 view .LVU1519 2155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4360 .loc 1 2155 23 is_stmt 0 view .LVU1520 4361 0042 6385 strh r3, [r4, #42] @ movhi 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4362 .loc 1 2156 5 is_stmt 1 view .LVU1521 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4363 .loc 1 2156 23 is_stmt 0 view .LVU1522 4364 0044 3C4B ldr r3, .L304 4365 .LVL302: 2156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4366 .loc 1 2156 23 view .LVU1523 4367 0046 E362 str r3, [r4, #44] 4368 .LVL303: 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4369 .loc 1 2157 5 is_stmt 1 view .LVU1524 2157:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4370 .loc 1 2157 23 is_stmt 0 view .LVU1525 4371 0048 3C4B ldr r3, .L304+4 4372 004a 6363 str r3, [r4, #52] 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4373 .loc 1 2159 5 is_stmt 1 view .LVU1526 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4374 .loc 1 2159 13 is_stmt 0 view .LVU1527 4375 004c 638D ldrh r3, [r4, #42] 4376 004e 9BB2 uxth r3, r3 2159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 234 4377 .loc 1 2159 8 view .LVU1528 4378 0050 FF2B cmp r3, #255 4379 0052 27D9 bls .L291 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4380 .loc 1 2161 7 is_stmt 1 view .LVU1529 2161:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4381 .loc 1 2161 22 is_stmt 0 view .LVU1530 4382 0054 0123 movs r3, #1 4383 0056 2385 strh r3, [r4, #40] @ movhi 2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4384 .loc 1 2162 7 is_stmt 1 view .LVU1531 4385 .LVL304: 2162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4386 .loc 1 2162 16 is_stmt 0 view .LVU1532 4387 0058 4FF08076 mov r6, #16777216 4388 .LVL305: 4389 .L292: 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4390 .loc 1 2170 5 is_stmt 1 view .LVU1533 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4391 .loc 1 2170 13 is_stmt 0 view .LVU1534 4392 005c 218D ldrh r1, [r4, #40] 2170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4393 .loc 1 2170 8 view .LVU1535 4394 005e 0029 cmp r1, #0 4395 0060 4FD0 beq .L293 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4396 .loc 1 2172 7 is_stmt 1 view .LVU1536 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4397 .loc 1 2172 15 is_stmt 0 view .LVU1537 4398 0062 E36B ldr r3, [r4, #60] 2172:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4399 .loc 1 2172 10 view .LVU1538 4400 0064 1BB3 cbz r3, .L294 2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4401 .loc 1 2175 9 is_stmt 1 view .LVU1539 2175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4402 .loc 1 2175 40 is_stmt 0 view .LVU1540 4403 0066 3649 ldr r1, .L304+8 4404 0068 9962 str r1, [r3, #40] 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4405 .loc 1 2178 9 is_stmt 1 view .LVU1541 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4406 .loc 1 2178 13 is_stmt 0 view .LVU1542 4407 006a E36B ldr r3, [r4, #60] 2178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4408 .loc 1 2178 41 view .LVU1543 4409 006c 3549 ldr r1, .L304+12 4410 006e 1963 str r1, [r3, #48] 2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4411 .loc 1 2181 9 is_stmt 1 view .LVU1544 2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4412 .loc 1 2181 13 is_stmt 0 view .LVU1545 4413 0070 E16B ldr r1, [r4, #60] 2181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4414 .loc 1 2181 44 view .LVU1546 4415 0072 0023 movs r3, #0 ARM GAS /tmp/ccJ8PJrU.s page 235 4416 0074 CB62 str r3, [r1, #44] 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4417 .loc 1 2182 9 is_stmt 1 view .LVU1547 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4418 .loc 1 2182 13 is_stmt 0 view .LVU1548 4419 0076 E16B ldr r1, [r4, #60] 2182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4420 .loc 1 2182 41 view .LVU1549 4421 0078 4B63 str r3, [r1, #52] 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 4422 .loc 1 2185 9 is_stmt 1 view .LVU1550 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 4423 .loc 1 2185 71 is_stmt 0 view .LVU1551 4424 007a 2168 ldr r1, [r4] 2185:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 4425 .loc 1 2185 25 view .LVU1552 4426 007c 238D ldrh r3, [r4, #40] 4427 007e 2431 adds r1, r1, #36 4428 0080 E06B ldr r0, [r4, #60] 4429 0082 FFF7FEFF bl HAL_DMA_Start_IT 4430 .LVL306: 2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4431 .loc 1 2203 7 is_stmt 1 view .LVU1553 2203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4432 .loc 1 2203 10 is_stmt 0 view .LVU1554 4433 0086 00B3 cbz r0, .L303 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4434 .loc 1 2227 9 is_stmt 1 view .LVU1555 2227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4435 .loc 1 2227 25 is_stmt 0 view .LVU1556 4436 0088 2023 movs r3, #32 4437 008a 84F84130 strb r3, [r4, #65] 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4438 .loc 1 2228 9 is_stmt 1 view .LVU1557 2228:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4439 .loc 1 2228 25 is_stmt 0 view .LVU1558 4440 008e 0022 movs r2, #0 4441 0090 84F84220 strb r2, [r4, #66] 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4442 .loc 1 2231 9 is_stmt 1 view .LVU1559 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4443 .loc 1 2231 13 is_stmt 0 view .LVU1560 4444 0094 636C ldr r3, [r4, #68] 2231:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4445 .loc 1 2231 25 view .LVU1561 4446 0096 43F01003 orr r3, r3, #16 4447 009a 6364 str r3, [r4, #68] 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4448 .loc 1 2234 9 is_stmt 1 view .LVU1562 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4449 .loc 1 2234 9 view .LVU1563 4450 009c 84F84020 strb r2, [r4, #64] 2234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4451 .loc 1 2234 9 view .LVU1564 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4452 .loc 1 2236 9 view .LVU1565 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 236 4453 .loc 1 2236 16 is_stmt 0 view .LVU1566 4454 00a0 0120 movs r0, #1 4455 .LVL307: 2236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4456 .loc 1 2236 16 view .LVU1567 4457 00a2 43E0 b .L290 4458 .LVL308: 4459 .L291: 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4460 .loc 1 2166 7 is_stmt 1 view .LVU1568 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4461 .loc 1 2166 28 is_stmt 0 view .LVU1569 4462 00a4 638D ldrh r3, [r4, #42] 2166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4463 .loc 1 2166 22 view .LVU1570 4464 00a6 2385 strh r3, [r4, #40] @ movhi 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4465 .loc 1 2167 7 is_stmt 1 view .LVU1571 4466 .LVL309: 2167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4467 .loc 1 2167 16 is_stmt 0 view .LVU1572 4468 00a8 4FF00076 mov r6, #33554432 4469 00ac D6E7 b .L292 4470 .LVL310: 4471 .L294: 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4472 .loc 1 2191 9 is_stmt 1 view .LVU1573 2191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4473 .loc 1 2191 25 is_stmt 0 view .LVU1574 4474 00ae 2023 movs r3, #32 4475 00b0 84F84130 strb r3, [r4, #65] 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4476 .loc 1 2192 9 is_stmt 1 view .LVU1575 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4477 .loc 1 2192 25 is_stmt 0 view .LVU1576 4478 00b4 0022 movs r2, #0 4479 .LVL311: 2192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4480 .loc 1 2192 25 view .LVU1577 4481 00b6 84F84220 strb r2, [r4, #66] 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4482 .loc 1 2195 9 is_stmt 1 view .LVU1578 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4483 .loc 1 2195 13 is_stmt 0 view .LVU1579 4484 00ba 636C ldr r3, [r4, #68] 2195:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4485 .loc 1 2195 25 view .LVU1580 4486 00bc 43F08003 orr r3, r3, #128 4487 00c0 6364 str r3, [r4, #68] 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4488 .loc 1 2198 9 is_stmt 1 view .LVU1581 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4489 .loc 1 2198 9 view .LVU1582 4490 00c2 84F84020 strb r2, [r4, #64] 2198:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4491 .loc 1 2198 9 view .LVU1583 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 237 4492 .loc 1 2200 9 view .LVU1584 2200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4493 .loc 1 2200 16 is_stmt 0 view .LVU1585 4494 00c6 0120 movs r0, #1 4495 00c8 30E0 b .L290 4496 .LVL312: 4497 .L303: 2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4498 .loc 1 2207 9 is_stmt 1 view .LVU1586 4499 00ca 1F4B ldr r3, .L304+16 4500 00cc 0093 str r3, [sp] 4501 00ce 3346 mov r3, r6 4502 00d0 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 4503 00d4 2946 mov r1, r5 4504 00d6 2046 mov r0, r4 4505 .LVL313: 2207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4506 .loc 1 2207 9 is_stmt 0 view .LVU1587 4507 00d8 FFF7FEFF bl I2C_TransferConfig 4508 .LVL314: 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4509 .loc 1 2210 9 is_stmt 1 view .LVU1588 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4510 .loc 1 2210 13 is_stmt 0 view .LVU1589 4511 00dc 638D ldrh r3, [r4, #42] 4512 00de 9BB2 uxth r3, r3 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4513 .loc 1 2210 32 view .LVU1590 4514 00e0 228D ldrh r2, [r4, #40] 2210:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4515 .loc 1 2210 25 view .LVU1591 4516 00e2 9B1A subs r3, r3, r2 4517 00e4 9BB2 uxth r3, r3 4518 00e6 6385 strh r3, [r4, #42] @ movhi 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4519 .loc 1 2213 9 is_stmt 1 view .LVU1592 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4520 .loc 1 2213 9 view .LVU1593 4521 00e8 0023 movs r3, #0 4522 00ea 84F84030 strb r3, [r4, #64] 2213:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4523 .loc 1 2213 9 view .LVU1594 2219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4524 .loc 1 2219 9 view .LVU1595 4525 00ee 1021 movs r1, #16 4526 00f0 2046 mov r0, r4 4527 00f2 FFF7FEFF bl I2C_Enable_IRQ 4528 .LVL315: 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4529 .loc 1 2222 9 view .LVU1596 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4530 .loc 1 2222 13 is_stmt 0 view .LVU1597 4531 00f6 2268 ldr r2, [r4] 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4532 .loc 1 2222 23 view .LVU1598 4533 00f8 1368 ldr r3, [r2] 2222:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 238 4534 .loc 1 2222 29 view .LVU1599 4535 00fa 43F40043 orr r3, r3, #32768 4536 00fe 1360 str r3, [r2] 4537 0100 11E0 b .L297 4538 .LVL316: 4539 .L293: 2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4540 .loc 1 2242 7 is_stmt 1 view .LVU1600 2242:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4541 .loc 1 2242 21 is_stmt 0 view .LVU1601 4542 0102 124B ldr r3, .L304+20 4543 0104 6363 str r3, [r4, #52] 2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4544 .loc 1 2246 7 is_stmt 1 view .LVU1602 4545 0106 104B ldr r3, .L304+16 4546 0108 0093 str r3, [sp] 4547 010a 4FF00073 mov r3, #33554432 4548 010e CAB2 uxtb r2, r1 4549 .LVL317: 2246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4550 .loc 1 2246 7 is_stmt 0 view .LVU1603 4551 0110 2946 mov r1, r5 4552 0112 2046 mov r0, r4 4553 0114 FFF7FEFF bl I2C_TransferConfig 4554 .LVL318: 2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4555 .loc 1 2250 7 is_stmt 1 view .LVU1604 2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4556 .loc 1 2250 7 view .LVU1605 4557 0118 0023 movs r3, #0 4558 011a 84F84030 strb r3, [r4, #64] 2250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4559 .loc 1 2250 7 view .LVU1606 2259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4560 .loc 1 2259 7 view .LVU1607 4561 011e 0221 movs r1, #2 4562 0120 2046 mov r0, r4 4563 0122 FFF7FEFF bl I2C_Enable_IRQ 4564 .LVL319: 4565 .L297: 2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4566 .loc 1 2262 5 view .LVU1608 2262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4567 .loc 1 2262 12 is_stmt 0 view .LVU1609 4568 0126 0020 movs r0, #0 4569 0128 00E0 b .L290 4570 .LVL320: 4571 .L298: 2266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4572 .loc 1 2266 12 view .LVU1610 4573 012a 0220 movs r0, #2 4574 .LVL321: 4575 .L290: 2268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4576 .loc 1 2268 1 view .LVU1611 4577 012c 02B0 add sp, sp, #8 4578 .cfi_remember_state ARM GAS /tmp/ccJ8PJrU.s page 239 4579 .cfi_def_cfa_offset 16 4580 @ sp needed 4581 012e 70BD pop {r4, r5, r6, pc} 4582 .LVL322: 4583 .L299: 4584 .cfi_restore_state 2143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4585 .loc 1 2143 14 view .LVU1612 4586 0130 0220 movs r0, #2 4587 0132 FBE7 b .L290 4588 .L300: 2147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4589 .loc 1 2147 5 discriminator 1 view .LVU1613 4590 0134 0220 movs r0, #2 4591 0136 F9E7 b .L290 4592 .L305: 4593 .align 2 4594 .L304: 4595 0138 0000FFFF .word -65536 4596 013c 00000000 .word I2C_Master_ISR_DMA 4597 0140 00000000 .word I2C_DMAMasterReceiveCplt 4598 0144 00000000 .word I2C_DMAError 4599 0148 00240080 .word -2147474432 4600 014c 00000000 .word I2C_Master_ISR_IT 4601 .cfi_endproc 4602 .LFE136: 4604 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits 4605 .align 1 4606 .global HAL_I2C_Slave_Transmit_DMA 4607 .syntax unified 4608 .thumb 4609 .thumb_func 4611 HAL_I2C_Slave_Transmit_DMA: 4612 .LVL323: 4613 .LFB137: 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4614 .loc 1 2279 1 is_stmt 1 view -0 4615 .cfi_startproc 4616 @ args = 0, pretend = 0, frame = 0 4617 @ frame_needed = 0, uses_anonymous_args = 0 2280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4618 .loc 1 2280 3 view .LVU1615 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4619 .loc 1 2282 3 view .LVU1616 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4620 .loc 1 2282 11 is_stmt 0 view .LVU1617 4621 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4622 0004 DBB2 uxtb r3, r3 2282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4623 .loc 1 2282 6 view .LVU1618 4624 0006 202B cmp r3, #32 4625 0008 40F08D80 bne .L316 2279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4626 .loc 1 2279 1 view .LVU1619 4627 000c 10B5 push {r4, lr} 4628 .cfi_def_cfa_offset 8 4629 .cfi_offset 4, -8 ARM GAS /tmp/ccJ8PJrU.s page 240 4630 .cfi_offset 14, -4 4631 000e 0446 mov r4, r0 2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4632 .loc 1 2284 5 is_stmt 1 view .LVU1620 2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4633 .loc 1 2284 8 is_stmt 0 view .LVU1621 4634 0010 0029 cmp r1, #0 4635 0012 44D0 beq .L308 2284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4636 .loc 1 2284 25 discriminator 1 view .LVU1622 4637 0014 002A cmp r2, #0 4638 0016 42D0 beq .L308 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4639 .loc 1 2290 5 is_stmt 1 view .LVU1623 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4640 .loc 1 2290 5 view .LVU1624 4641 0018 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4642 001c 012B cmp r3, #1 4643 001e 00F08480 beq .L317 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4644 .loc 1 2290 5 discriminator 2 view .LVU1625 4645 0022 0123 movs r3, #1 4646 0024 80F84030 strb r3, [r0, #64] 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4647 .loc 1 2290 5 discriminator 2 view .LVU1626 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4648 .loc 1 2292 5 view .LVU1627 2292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4649 .loc 1 2292 23 is_stmt 0 view .LVU1628 4650 0028 2123 movs r3, #33 4651 002a 80F84130 strb r3, [r0, #65] 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4652 .loc 1 2293 5 is_stmt 1 view .LVU1629 2293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4653 .loc 1 2293 23 is_stmt 0 view .LVU1630 4654 002e 2023 movs r3, #32 4655 0030 80F84230 strb r3, [r0, #66] 2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4656 .loc 1 2294 5 is_stmt 1 view .LVU1631 2294:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4657 .loc 1 2294 23 is_stmt 0 view .LVU1632 4658 0034 0023 movs r3, #0 4659 0036 4364 str r3, [r0, #68] 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4660 .loc 1 2297 5 is_stmt 1 view .LVU1633 2297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4661 .loc 1 2297 23 is_stmt 0 view .LVU1634 4662 0038 4162 str r1, [r0, #36] 2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4663 .loc 1 2298 5 is_stmt 1 view .LVU1635 2298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4664 .loc 1 2298 23 is_stmt 0 view .LVU1636 4665 003a 4285 strh r2, [r0, #42] @ movhi 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4666 .loc 1 2299 5 is_stmt 1 view .LVU1637 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4667 .loc 1 2299 29 is_stmt 0 view .LVU1638 ARM GAS /tmp/ccJ8PJrU.s page 241 4668 003c 438D ldrh r3, [r0, #42] 2299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4669 .loc 1 2299 23 view .LVU1639 4670 003e 0385 strh r3, [r0, #40] @ movhi 2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4671 .loc 1 2300 5 is_stmt 1 view .LVU1640 2300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4672 .loc 1 2300 23 is_stmt 0 view .LVU1641 4673 0040 3B4B ldr r3, .L325 4674 0042 C362 str r3, [r0, #44] 2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4675 .loc 1 2301 5 is_stmt 1 view .LVU1642 2301:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4676 .loc 1 2301 23 is_stmt 0 view .LVU1643 4677 0044 3B4B ldr r3, .L325+4 4678 0046 4363 str r3, [r0, #52] 2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4679 .loc 1 2304 5 is_stmt 1 view .LVU1644 2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4680 .loc 1 2304 19 is_stmt 0 view .LVU1645 4681 0048 036A ldr r3, [r0, #32] 2304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4682 .loc 1 2304 8 view .LVU1646 4683 004a B3F5003F cmp r3, #131072 4684 004e 2BD0 beq .L323 4685 .LVL324: 4686 .L310: 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4687 .loc 1 2317 5 is_stmt 1 view .LVU1647 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4688 .loc 1 2317 13 is_stmt 0 view .LVU1648 4689 0050 638D ldrh r3, [r4, #42] 4690 0052 9BB2 uxth r3, r3 2317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4691 .loc 1 2317 8 view .LVU1649 4692 0054 002B cmp r3, #0 4693 0056 57D0 beq .L311 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4694 .loc 1 2319 7 is_stmt 1 view .LVU1650 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4695 .loc 1 2319 15 is_stmt 0 view .LVU1651 4696 0058 A36B ldr r3, [r4, #56] 2319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4697 .loc 1 2319 10 view .LVU1652 4698 005a 002B cmp r3, #0 4699 005c 33D0 beq .L312 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4700 .loc 1 2322 9 is_stmt 1 view .LVU1653 2322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4701 .loc 1 2322 40 is_stmt 0 view .LVU1654 4702 005e 364A ldr r2, .L325+8 4703 0060 9A62 str r2, [r3, #40] 2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4704 .loc 1 2325 9 is_stmt 1 view .LVU1655 2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4705 .loc 1 2325 13 is_stmt 0 view .LVU1656 4706 0062 A36B ldr r3, [r4, #56] ARM GAS /tmp/ccJ8PJrU.s page 242 2325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4707 .loc 1 2325 41 view .LVU1657 4708 0064 354A ldr r2, .L325+12 4709 0066 1A63 str r2, [r3, #48] 2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4710 .loc 1 2328 9 is_stmt 1 view .LVU1658 2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4711 .loc 1 2328 13 is_stmt 0 view .LVU1659 4712 0068 A26B ldr r2, [r4, #56] 2328:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4713 .loc 1 2328 44 view .LVU1660 4714 006a 0023 movs r3, #0 4715 006c D362 str r3, [r2, #44] 2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4716 .loc 1 2329 9 is_stmt 1 view .LVU1661 2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4717 .loc 1 2329 13 is_stmt 0 view .LVU1662 4718 006e A26B ldr r2, [r4, #56] 2329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4719 .loc 1 2329 41 view .LVU1663 4720 0070 5363 str r3, [r2, #52] 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4721 .loc 1 2332 9 is_stmt 1 view .LVU1664 2333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 4722 .loc 1 2333 83 is_stmt 0 view .LVU1665 4723 0072 2268 ldr r2, [r4] 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4724 .loc 1 2332 25 view .LVU1666 4725 0074 238D ldrh r3, [r4, #40] 4726 0076 2832 adds r2, r2, #40 4727 0078 616A ldr r1, [r4, #36] 4728 .LVL325: 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4729 .loc 1 2332 25 view .LVU1667 4730 007a A06B ldr r0, [r4, #56] 4731 .LVL326: 2332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4732 .loc 1 2332 25 view .LVU1668 4733 007c FFF7FEFF bl HAL_DMA_Start_IT 4734 .LVL327: 2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4735 .loc 1 2351 7 is_stmt 1 view .LVU1669 2351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4736 .loc 1 2351 10 is_stmt 0 view .LVU1670 4737 0080 78B3 cbz r0, .L324 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4738 .loc 1 2371 9 is_stmt 1 view .LVU1671 2371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4739 .loc 1 2371 25 is_stmt 0 view .LVU1672 4740 0082 2823 movs r3, #40 4741 0084 84F84130 strb r3, [r4, #65] 2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4742 .loc 1 2372 9 is_stmt 1 view .LVU1673 2372:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4743 .loc 1 2372 25 is_stmt 0 view .LVU1674 4744 0088 0022 movs r2, #0 4745 008a 84F84220 strb r2, [r4, #66] ARM GAS /tmp/ccJ8PJrU.s page 243 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4746 .loc 1 2375 9 is_stmt 1 view .LVU1675 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4747 .loc 1 2375 13 is_stmt 0 view .LVU1676 4748 008e 636C ldr r3, [r4, #68] 2375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4749 .loc 1 2375 25 view .LVU1677 4750 0090 43F01003 orr r3, r3, #16 4751 0094 6364 str r3, [r4, #68] 2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4752 .loc 1 2378 9 is_stmt 1 view .LVU1678 2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4753 .loc 1 2378 9 view .LVU1679 4754 0096 84F84020 strb r2, [r4, #64] 2378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4755 .loc 1 2378 9 view .LVU1680 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4756 .loc 1 2380 9 view .LVU1681 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4757 .loc 1 2380 16 is_stmt 0 view .LVU1682 4758 009a 0120 movs r0, #1 4759 .LVL328: 2380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4760 .loc 1 2380 16 view .LVU1683 4761 009c 03E0 b .L307 4762 .LVL329: 4763 .L308: 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4764 .loc 1 2286 7 is_stmt 1 view .LVU1684 2286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 4765 .loc 1 2286 23 is_stmt 0 view .LVU1685 4766 009e 4FF40073 mov r3, #512 4767 00a2 6364 str r3, [r4, #68] 2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4768 .loc 1 2287 7 is_stmt 1 view .LVU1686 2287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4769 .loc 1 2287 15 is_stmt 0 view .LVU1687 4770 00a4 0120 movs r0, #1 4771 .LVL330: 4772 .L307: 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4773 .loc 1 2404 1 view .LVU1688 4774 00a6 10BD pop {r4, pc} 4775 .LVL331: 4776 .L323: 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4777 .loc 1 2308 7 is_stmt 1 view .LVU1689 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4778 .loc 1 2308 11 is_stmt 0 view .LVU1690 4779 00a8 0368 ldr r3, [r0] 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4780 .loc 1 2308 30 view .LVU1691 4781 00aa 0A78 ldrb r2, [r1] @ zero_extendqisi2 4782 .LVL332: 2308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4783 .loc 1 2308 28 view .LVU1692 4784 00ac 9A62 str r2, [r3, #40] ARM GAS /tmp/ccJ8PJrU.s page 244 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4785 .loc 1 2311 7 is_stmt 1 view .LVU1693 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4786 .loc 1 2311 11 is_stmt 0 view .LVU1694 4787 00ae 436A ldr r3, [r0, #36] 2311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4788 .loc 1 2311 21 view .LVU1695 4789 00b0 0133 adds r3, r3, #1 4790 00b2 4362 str r3, [r0, #36] 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 4791 .loc 1 2313 7 is_stmt 1 view .LVU1696 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 4792 .loc 1 2313 11 is_stmt 0 view .LVU1697 4793 00b4 438D ldrh r3, [r0, #42] 4794 00b6 9BB2 uxth r3, r3 2313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 4795 .loc 1 2313 22 view .LVU1698 4796 00b8 013B subs r3, r3, #1 4797 00ba 9BB2 uxth r3, r3 4798 00bc 4385 strh r3, [r0, #42] @ movhi 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4799 .loc 1 2314 7 is_stmt 1 view .LVU1699 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4800 .loc 1 2314 11 is_stmt 0 view .LVU1700 4801 00be 038D ldrh r3, [r0, #40] 2314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4802 .loc 1 2314 21 view .LVU1701 4803 00c0 013B subs r3, r3, #1 4804 00c2 0385 strh r3, [r0, #40] @ movhi 4805 00c4 C4E7 b .L310 4806 .L312: 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4807 .loc 1 2339 9 is_stmt 1 view .LVU1702 2339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4808 .loc 1 2339 25 is_stmt 0 view .LVU1703 4809 00c6 2823 movs r3, #40 4810 00c8 84F84130 strb r3, [r4, #65] 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4811 .loc 1 2340 9 is_stmt 1 view .LVU1704 2340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4812 .loc 1 2340 25 is_stmt 0 view .LVU1705 4813 00cc 0022 movs r2, #0 4814 00ce 84F84220 strb r2, [r4, #66] 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4815 .loc 1 2343 9 is_stmt 1 view .LVU1706 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4816 .loc 1 2343 13 is_stmt 0 view .LVU1707 4817 00d2 636C ldr r3, [r4, #68] 2343:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4818 .loc 1 2343 25 view .LVU1708 4819 00d4 43F08003 orr r3, r3, #128 4820 00d8 6364 str r3, [r4, #68] 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4821 .loc 1 2346 9 is_stmt 1 view .LVU1709 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4822 .loc 1 2346 9 view .LVU1710 4823 00da 84F84020 strb r2, [r4, #64] ARM GAS /tmp/ccJ8PJrU.s page 245 2346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4824 .loc 1 2346 9 view .LVU1711 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4825 .loc 1 2348 9 view .LVU1712 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4826 .loc 1 2348 16 is_stmt 0 view .LVU1713 4827 00de 0120 movs r0, #1 4828 .LVL333: 2348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4829 .loc 1 2348 16 view .LVU1714 4830 00e0 E1E7 b .L307 4831 .LVL334: 4832 .L324: 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4833 .loc 1 2354 9 is_stmt 1 view .LVU1715 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4834 .loc 1 2354 13 is_stmt 0 view .LVU1716 4835 00e2 2268 ldr r2, [r4] 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4836 .loc 1 2354 23 view .LVU1717 4837 00e4 5368 ldr r3, [r2, #4] 2354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4838 .loc 1 2354 29 view .LVU1718 4839 00e6 23F40043 bic r3, r3, #32768 4840 00ea 5360 str r3, [r2, #4] 2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4841 .loc 1 2357 9 is_stmt 1 view .LVU1719 2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4842 .loc 1 2357 9 view .LVU1720 4843 00ec 0023 movs r3, #0 4844 00ee 84F84030 strb r3, [r4, #64] 2357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4845 .loc 1 2357 9 view .LVU1721 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4846 .loc 1 2363 9 view .LVU1722 4847 00f2 4FF40041 mov r1, #32768 4848 00f6 2046 mov r0, r4 4849 .LVL335: 2363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4850 .loc 1 2363 9 is_stmt 0 view .LVU1723 4851 00f8 FFF7FEFF bl I2C_Enable_IRQ 4852 .LVL336: 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4853 .loc 1 2366 9 is_stmt 1 view .LVU1724 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4854 .loc 1 2366 13 is_stmt 0 view .LVU1725 4855 00fc 2268 ldr r2, [r4] 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4856 .loc 1 2366 23 view .LVU1726 4857 00fe 1368 ldr r3, [r2] 2366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4858 .loc 1 2366 29 view .LVU1727 4859 0100 43F48043 orr r3, r3, #16384 4860 0104 1360 str r3, [r2] 4861 0106 0CE0 b .L315 4862 .LVL337: 4863 .L311: ARM GAS /tmp/ccJ8PJrU.s page 246 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4864 .loc 1 2386 7 is_stmt 1 view .LVU1728 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4865 .loc 1 2386 11 is_stmt 0 view .LVU1729 4866 0108 2268 ldr r2, [r4] 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4867 .loc 1 2386 21 view .LVU1730 4868 010a 5368 ldr r3, [r2, #4] 2386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4869 .loc 1 2386 27 view .LVU1731 4870 010c 23F40043 bic r3, r3, #32768 4871 0110 5360 str r3, [r2, #4] 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4872 .loc 1 2389 7 is_stmt 1 view .LVU1732 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4873 .loc 1 2389 7 view .LVU1733 4874 0112 0023 movs r3, #0 4875 0114 84F84030 strb r3, [r4, #64] 2389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4876 .loc 1 2389 7 view .LVU1734 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4877 .loc 1 2395 7 view .LVU1735 4878 0118 4FF40041 mov r1, #32768 4879 .LVL338: 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4880 .loc 1 2395 7 is_stmt 0 view .LVU1736 4881 011c 2046 mov r0, r4 4882 .LVL339: 2395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4883 .loc 1 2395 7 view .LVU1737 4884 011e FFF7FEFF bl I2C_Enable_IRQ 4885 .LVL340: 4886 .L315: 2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4887 .loc 1 2398 5 is_stmt 1 view .LVU1738 2398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4888 .loc 1 2398 12 is_stmt 0 view .LVU1739 4889 0122 0020 movs r0, #0 4890 0124 BFE7 b .L307 4891 .LVL341: 4892 .L316: 4893 .cfi_def_cfa_offset 0 4894 .cfi_restore 4 4895 .cfi_restore 14 2402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 4896 .loc 1 2402 12 view .LVU1740 4897 0126 0220 movs r0, #2 4898 .LVL342: 2404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4899 .loc 1 2404 1 view .LVU1741 4900 0128 7047 bx lr 4901 .LVL343: 4902 .L317: 4903 .cfi_def_cfa_offset 8 4904 .cfi_offset 4, -8 4905 .cfi_offset 14, -4 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 247 4906 .loc 1 2290 5 discriminator 1 view .LVU1742 4907 012a 0220 movs r0, #2 4908 .LVL344: 2290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4909 .loc 1 2290 5 discriminator 1 view .LVU1743 4910 012c BBE7 b .L307 4911 .L326: 4912 012e 00BF .align 2 4913 .L325: 4914 0130 0000FFFF .word -65536 4915 0134 00000000 .word I2C_Slave_ISR_DMA 4916 0138 00000000 .word I2C_DMASlaveTransmitCplt 4917 013c 00000000 .word I2C_DMAError 4918 .cfi_endproc 4919 .LFE137: 4921 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits 4922 .align 1 4923 .global HAL_I2C_Slave_Receive_DMA 4924 .syntax unified 4925 .thumb 4926 .thumb_func 4928 HAL_I2C_Slave_Receive_DMA: 4929 .LVL345: 4930 .LFB138: 2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4931 .loc 1 2415 1 is_stmt 1 view -0 4932 .cfi_startproc 4933 @ args = 0, pretend = 0, frame = 0 4934 @ frame_needed = 0, uses_anonymous_args = 0 2415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4935 .loc 1 2415 1 is_stmt 0 view .LVU1745 4936 0000 38B5 push {r3, r4, r5, lr} 4937 .cfi_def_cfa_offset 16 4938 .cfi_offset 3, -16 4939 .cfi_offset 4, -12 4940 .cfi_offset 5, -8 4941 .cfi_offset 14, -4 2416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4942 .loc 1 2416 3 is_stmt 1 view .LVU1746 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4943 .loc 1 2418 3 view .LVU1747 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4944 .loc 1 2418 11 is_stmt 0 view .LVU1748 4945 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4946 0006 DBB2 uxtb r3, r3 2418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4947 .loc 1 2418 6 view .LVU1749 4948 0008 202B cmp r3, #32 4949 000a 65D1 bne .L334 4950 000c 0446 mov r4, r0 2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4951 .loc 1 2420 5 is_stmt 1 view .LVU1750 2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4952 .loc 1 2420 8 is_stmt 0 view .LVU1751 4953 000e 0029 cmp r1, #0 4954 0010 3CD0 beq .L329 2420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 248 4955 .loc 1 2420 25 discriminator 1 view .LVU1752 4956 0012 002A cmp r2, #0 4957 0014 3AD0 beq .L329 2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4958 .loc 1 2426 5 is_stmt 1 view .LVU1753 2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4959 .loc 1 2426 5 view .LVU1754 4960 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4961 001a 012B cmp r3, #1 4962 001c 5FD0 beq .L335 2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4963 .loc 1 2426 5 discriminator 2 view .LVU1755 4964 001e 0123 movs r3, #1 4965 0020 80F84030 strb r3, [r0, #64] 2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4966 .loc 1 2426 5 discriminator 2 view .LVU1756 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4967 .loc 1 2428 5 view .LVU1757 2428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4968 .loc 1 2428 23 is_stmt 0 view .LVU1758 4969 0024 2223 movs r3, #34 4970 0026 80F84130 strb r3, [r0, #65] 2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4971 .loc 1 2429 5 is_stmt 1 view .LVU1759 2429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4972 .loc 1 2429 23 is_stmt 0 view .LVU1760 4973 002a 2023 movs r3, #32 4974 002c 80F84230 strb r3, [r0, #66] 2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4975 .loc 1 2430 5 is_stmt 1 view .LVU1761 2430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4976 .loc 1 2430 23 is_stmt 0 view .LVU1762 4977 0030 0023 movs r3, #0 4978 0032 4364 str r3, [r0, #68] 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4979 .loc 1 2433 5 is_stmt 1 view .LVU1763 2433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 4980 .loc 1 2433 23 is_stmt 0 view .LVU1764 4981 0034 4162 str r1, [r0, #36] 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4982 .loc 1 2434 5 is_stmt 1 view .LVU1765 2434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4983 .loc 1 2434 23 is_stmt 0 view .LVU1766 4984 0036 4285 strh r2, [r0, #42] @ movhi 2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4985 .loc 1 2435 5 is_stmt 1 view .LVU1767 2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4986 .loc 1 2435 29 is_stmt 0 view .LVU1768 4987 0038 438D ldrh r3, [r0, #42] 2435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4988 .loc 1 2435 23 view .LVU1769 4989 003a 0385 strh r3, [r0, #40] @ movhi 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4990 .loc 1 2436 5 is_stmt 1 view .LVU1770 2436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4991 .loc 1 2436 23 is_stmt 0 view .LVU1771 4992 003c 294B ldr r3, .L339 ARM GAS /tmp/ccJ8PJrU.s page 249 4993 003e C362 str r3, [r0, #44] 2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4994 .loc 1 2437 5 is_stmt 1 view .LVU1772 2437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 4995 .loc 1 2437 23 is_stmt 0 view .LVU1773 4996 0040 294B ldr r3, .L339+4 4997 0042 4363 str r3, [r0, #52] 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4998 .loc 1 2439 5 is_stmt 1 view .LVU1774 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 4999 .loc 1 2439 13 is_stmt 0 view .LVU1775 5000 0044 C36B ldr r3, [r0, #60] 2439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5001 .loc 1 2439 8 view .LVU1776 5002 0046 33B3 cbz r3, .L331 2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5003 .loc 1 2442 7 is_stmt 1 view .LVU1777 2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5004 .loc 1 2442 38 is_stmt 0 view .LVU1778 5005 0048 284A ldr r2, .L339+8 5006 .LVL346: 2442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5007 .loc 1 2442 38 view .LVU1779 5008 004a 9A62 str r2, [r3, #40] 2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5009 .loc 1 2445 7 is_stmt 1 view .LVU1780 2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5010 .loc 1 2445 11 is_stmt 0 view .LVU1781 5011 004c C36B ldr r3, [r0, #60] 2445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5012 .loc 1 2445 39 view .LVU1782 5013 004e 284A ldr r2, .L339+12 5014 0050 1A63 str r2, [r3, #48] 2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5015 .loc 1 2448 7 is_stmt 1 view .LVU1783 2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5016 .loc 1 2448 11 is_stmt 0 view .LVU1784 5017 0052 C26B ldr r2, [r0, #60] 2448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5018 .loc 1 2448 42 view .LVU1785 5019 0054 0023 movs r3, #0 5020 0056 D362 str r3, [r2, #44] 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5021 .loc 1 2449 7 is_stmt 1 view .LVU1786 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5022 .loc 1 2449 11 is_stmt 0 view .LVU1787 5023 0058 C26B ldr r2, [r0, #60] 2449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5024 .loc 1 2449 39 view .LVU1788 5025 005a 5363 str r3, [r2, #52] 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 5026 .loc 1 2452 7 is_stmt 1 view .LVU1789 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 5027 .loc 1 2452 69 is_stmt 0 view .LVU1790 5028 005c 0068 ldr r0, [r0] 5029 .LVL347: 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); ARM GAS /tmp/ccJ8PJrU.s page 250 5030 .loc 1 2452 23 view .LVU1791 5031 005e 238D ldrh r3, [r4, #40] 5032 0060 0A46 mov r2, r1 5033 0062 00F12401 add r1, r0, #36 5034 .LVL348: 2452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 5035 .loc 1 2452 23 view .LVU1792 5036 0066 E06B ldr r0, [r4, #60] 5037 0068 FFF7FEFF bl HAL_DMA_Start_IT 5038 .LVL349: 2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5039 .loc 1 2470 5 is_stmt 1 view .LVU1793 2470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5040 .loc 1 2470 8 is_stmt 0 view .LVU1794 5041 006c 0546 mov r5, r0 5042 006e 00B3 cbz r0, .L338 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5043 .loc 1 2490 7 is_stmt 1 view .LVU1795 2490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5044 .loc 1 2490 23 is_stmt 0 view .LVU1796 5045 0070 2823 movs r3, #40 5046 0072 84F84130 strb r3, [r4, #65] 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5047 .loc 1 2491 7 is_stmt 1 view .LVU1797 2491:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5048 .loc 1 2491 23 is_stmt 0 view .LVU1798 5049 0076 0022 movs r2, #0 5050 0078 84F84220 strb r2, [r4, #66] 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5051 .loc 1 2494 7 is_stmt 1 view .LVU1799 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5052 .loc 1 2494 11 is_stmt 0 view .LVU1800 5053 007c 636C ldr r3, [r4, #68] 2494:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5054 .loc 1 2494 23 view .LVU1801 5055 007e 43F01003 orr r3, r3, #16 5056 0082 6364 str r3, [r4, #68] 2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5057 .loc 1 2497 7 is_stmt 1 view .LVU1802 2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5058 .loc 1 2497 7 view .LVU1803 5059 0084 84F84020 strb r2, [r4, #64] 2497:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5060 .loc 1 2497 7 view .LVU1804 2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5061 .loc 1 2499 7 view .LVU1805 2499:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5062 .loc 1 2499 14 is_stmt 0 view .LVU1806 5063 0088 0125 movs r5, #1 5064 008a 26E0 b .L328 5065 .LVL350: 5066 .L329: 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5067 .loc 1 2422 7 is_stmt 1 view .LVU1807 2422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5068 .loc 1 2422 23 is_stmt 0 view .LVU1808 5069 008c 4FF40073 mov r3, #512 ARM GAS /tmp/ccJ8PJrU.s page 251 5070 0090 6364 str r3, [r4, #68] 2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5071 .loc 1 2423 7 is_stmt 1 view .LVU1809 2423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5072 .loc 1 2423 15 is_stmt 0 view .LVU1810 5073 0092 0125 movs r5, #1 5074 0094 21E0 b .L328 5075 .L331: 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5076 .loc 1 2458 7 is_stmt 1 view .LVU1811 2458:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5077 .loc 1 2458 23 is_stmt 0 view .LVU1812 5078 0096 2823 movs r3, #40 5079 0098 80F84130 strb r3, [r0, #65] 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5080 .loc 1 2459 7 is_stmt 1 view .LVU1813 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5081 .loc 1 2459 23 is_stmt 0 view .LVU1814 5082 009c 0022 movs r2, #0 5083 .LVL351: 2459:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5084 .loc 1 2459 23 view .LVU1815 5085 009e 80F84220 strb r2, [r0, #66] 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5086 .loc 1 2462 7 is_stmt 1 view .LVU1816 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5087 .loc 1 2462 11 is_stmt 0 view .LVU1817 5088 00a2 436C ldr r3, [r0, #68] 2462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5089 .loc 1 2462 23 view .LVU1818 5090 00a4 43F08003 orr r3, r3, #128 5091 00a8 4364 str r3, [r0, #68] 2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5092 .loc 1 2465 7 is_stmt 1 view .LVU1819 2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5093 .loc 1 2465 7 view .LVU1820 5094 00aa 80F84020 strb r2, [r0, #64] 2465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5095 .loc 1 2465 7 view .LVU1821 2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5096 .loc 1 2467 7 view .LVU1822 2467:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5097 .loc 1 2467 14 is_stmt 0 view .LVU1823 5098 00ae 0125 movs r5, #1 5099 00b0 13E0 b .L328 5100 .LVL352: 5101 .L338: 2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5102 .loc 1 2473 7 is_stmt 1 view .LVU1824 2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5103 .loc 1 2473 11 is_stmt 0 view .LVU1825 5104 00b2 2268 ldr r2, [r4] 2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5105 .loc 1 2473 21 view .LVU1826 5106 00b4 5368 ldr r3, [r2, #4] 2473:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5107 .loc 1 2473 27 view .LVU1827 ARM GAS /tmp/ccJ8PJrU.s page 252 5108 00b6 23F40043 bic r3, r3, #32768 5109 00ba 5360 str r3, [r2, #4] 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5110 .loc 1 2476 7 is_stmt 1 view .LVU1828 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5111 .loc 1 2476 7 view .LVU1829 5112 00bc 0023 movs r3, #0 5113 00be 84F84030 strb r3, [r4, #64] 2476:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5114 .loc 1 2476 7 view .LVU1830 2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5115 .loc 1 2482 7 view .LVU1831 5116 00c2 4FF40041 mov r1, #32768 5117 00c6 2046 mov r0, r4 5118 .LVL353: 2482:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5119 .loc 1 2482 7 is_stmt 0 view .LVU1832 5120 00c8 FFF7FEFF bl I2C_Enable_IRQ 5121 .LVL354: 2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5122 .loc 1 2485 7 is_stmt 1 view .LVU1833 2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5123 .loc 1 2485 11 is_stmt 0 view .LVU1834 5124 00cc 2268 ldr r2, [r4] 2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5125 .loc 1 2485 21 view .LVU1835 5126 00ce 1368 ldr r3, [r2] 2485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5127 .loc 1 2485 27 view .LVU1836 5128 00d0 43F40043 orr r3, r3, #32768 5129 00d4 1360 str r3, [r2] 2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5130 .loc 1 2502 5 is_stmt 1 view .LVU1837 2502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5131 .loc 1 2502 12 is_stmt 0 view .LVU1838 5132 00d6 00E0 b .L328 5133 .LVL355: 5134 .L334: 2506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5135 .loc 1 2506 12 view .LVU1839 5136 00d8 0225 movs r5, #2 5137 .LVL356: 5138 .L328: 2508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5139 .loc 1 2508 1 view .LVU1840 5140 00da 2846 mov r0, r5 5141 00dc 38BD pop {r3, r4, r5, pc} 5142 .LVL357: 5143 .L335: 2426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5144 .loc 1 2426 5 discriminator 1 view .LVU1841 5145 00de 0225 movs r5, #2 5146 00e0 FBE7 b .L328 5147 .L340: 5148 00e2 00BF .align 2 5149 .L339: 5150 00e4 0000FFFF .word -65536 ARM GAS /tmp/ccJ8PJrU.s page 253 5151 00e8 00000000 .word I2C_Slave_ISR_DMA 5152 00ec 00000000 .word I2C_DMASlaveReceiveCplt 5153 00f0 00000000 .word I2C_DMAError 5154 .cfi_endproc 5155 .LFE138: 5157 .section .text.HAL_I2C_Mem_Write,"ax",%progbits 5158 .align 1 5159 .global HAL_I2C_Mem_Write 5160 .syntax unified 5161 .thumb 5162 .thumb_func 5164 HAL_I2C_Mem_Write: 5165 .LVL358: 5166 .LFB139: 2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 5167 .loc 1 2525 1 is_stmt 1 view -0 5168 .cfi_startproc 5169 @ args = 12, pretend = 0, frame = 0 5170 @ frame_needed = 0, uses_anonymous_args = 0 2525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 5171 .loc 1 2525 1 is_stmt 0 view .LVU1843 5172 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5173 .cfi_def_cfa_offset 36 5174 .cfi_offset 4, -36 5175 .cfi_offset 5, -32 5176 .cfi_offset 6, -28 5177 .cfi_offset 7, -24 5178 .cfi_offset 8, -20 5179 .cfi_offset 9, -16 5180 .cfi_offset 10, -12 5181 .cfi_offset 11, -8 5182 .cfi_offset 14, -4 5183 0004 83B0 sub sp, sp, #12 5184 .cfi_def_cfa_offset 48 5185 0006 0E46 mov r6, r1 5186 0008 BDF834A0 ldrh r10, [sp, #52] 5187 000c 0E9D ldr r5, [sp, #56] 2526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5188 .loc 1 2526 3 is_stmt 1 view .LVU1844 2529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5189 .loc 1 2529 3 view .LVU1845 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5190 .loc 1 2531 3 view .LVU1846 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5191 .loc 1 2531 11 is_stmt 0 view .LVU1847 5192 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5193 .LVL359: 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5194 .loc 1 2531 11 view .LVU1848 5195 0012 C9B2 uxtb r1, r1 2531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5196 .loc 1 2531 6 view .LVU1849 5197 0014 2029 cmp r1, #32 5198 0016 40F0BB80 bne .L351 5199 001a 0446 mov r4, r0 5200 001c 9046 mov r8, r2 5201 001e 9946 mov r9, r3 ARM GAS /tmp/ccJ8PJrU.s page 254 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5202 .loc 1 2533 5 is_stmt 1 view .LVU1850 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5203 .loc 1 2533 8 is_stmt 0 view .LVU1851 5204 0020 0C9B ldr r3, [sp, #48] 5205 .LVL360: 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5206 .loc 1 2533 8 view .LVU1852 5207 0022 CBB1 cbz r3, .L343 2533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5208 .loc 1 2533 25 discriminator 1 view .LVU1853 5209 0024 BAF1000F cmp r10, #0 5210 0028 16D0 beq .L343 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5211 .loc 1 2540 5 is_stmt 1 view .LVU1854 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5212 .loc 1 2540 5 view .LVU1855 5213 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5214 002e 012B cmp r3, #1 5215 0030 00F0B280 beq .L352 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5216 .loc 1 2540 5 discriminator 2 view .LVU1856 5217 0034 4FF0010B mov fp, #1 5218 0038 80F840B0 strb fp, [r0, #64] 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5219 .loc 1 2540 5 discriminator 2 view .LVU1857 2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5220 .loc 1 2543 5 view .LVU1858 2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5221 .loc 1 2543 17 is_stmt 0 view .LVU1859 5222 003c FFF7FEFF bl HAL_GetTick 5223 .LVL361: 2543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5224 .loc 1 2543 17 view .LVU1860 5225 0040 0746 mov r7, r0 5226 .LVL362: 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5227 .loc 1 2545 5 is_stmt 1 view .LVU1861 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5228 .loc 1 2545 9 is_stmt 0 view .LVU1862 5229 0042 0090 str r0, [sp] 5230 0044 1923 movs r3, #25 5231 0046 5A46 mov r2, fp 5232 0048 4FF40041 mov r1, #32768 5233 004c 2046 mov r0, r4 5234 .LVL363: 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5235 .loc 1 2545 9 view .LVU1863 5236 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5237 .LVL364: 2545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5238 .loc 1 2545 8 discriminator 1 view .LVU1864 5239 0052 30B1 cbz r0, .L358 2547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5240 .loc 1 2547 14 view .LVU1865 5241 0054 0120 movs r0, #1 5242 0056 9CE0 b .L342 ARM GAS /tmp/ccJ8PJrU.s page 255 5243 .LVL365: 5244 .L343: 2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5245 .loc 1 2535 7 is_stmt 1 view .LVU1866 2535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5246 .loc 1 2535 23 is_stmt 0 view .LVU1867 5247 0058 4FF40073 mov r3, #512 5248 005c 6364 str r3, [r4, #68] 2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5249 .loc 1 2536 7 is_stmt 1 view .LVU1868 2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5250 .loc 1 2536 15 is_stmt 0 view .LVU1869 5251 005e 0120 movs r0, #1 5252 .LVL366: 2536:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5253 .loc 1 2536 15 view .LVU1870 5254 0060 97E0 b .L342 5255 .LVL367: 5256 .L358: 2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5257 .loc 1 2550 5 is_stmt 1 view .LVU1871 2550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5258 .loc 1 2550 21 is_stmt 0 view .LVU1872 5259 0062 2123 movs r3, #33 5260 0064 84F84130 strb r3, [r4, #65] 2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5261 .loc 1 2551 5 is_stmt 1 view .LVU1873 2551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5262 .loc 1 2551 21 is_stmt 0 view .LVU1874 5263 0068 4023 movs r3, #64 5264 006a 84F84230 strb r3, [r4, #66] 2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5265 .loc 1 2552 5 is_stmt 1 view .LVU1875 2552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5266 .loc 1 2552 21 is_stmt 0 view .LVU1876 5267 006e 0023 movs r3, #0 5268 0070 6364 str r3, [r4, #68] 2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 5269 .loc 1 2555 5 is_stmt 1 view .LVU1877 2555:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 5270 .loc 1 2555 21 is_stmt 0 view .LVU1878 5271 0072 0C9A ldr r2, [sp, #48] 5272 0074 6262 str r2, [r4, #36] 2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 5273 .loc 1 2556 5 is_stmt 1 view .LVU1879 2556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 5274 .loc 1 2556 21 is_stmt 0 view .LVU1880 5275 0076 A4F82AA0 strh r10, [r4, #42] @ movhi 2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5276 .loc 1 2557 5 is_stmt 1 view .LVU1881 2557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5277 .loc 1 2557 21 is_stmt 0 view .LVU1882 5278 007a 6363 str r3, [r4, #52] 2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5279 .loc 1 2560 5 is_stmt 1 view .LVU1883 2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5280 .loc 1 2560 9 is_stmt 0 view .LVU1884 ARM GAS /tmp/ccJ8PJrU.s page 256 5281 007c 0197 str r7, [sp, #4] 5282 007e 0095 str r5, [sp] 5283 0080 4B46 mov r3, r9 5284 0082 4246 mov r2, r8 5285 0084 3146 mov r1, r6 5286 0086 2046 mov r0, r4 5287 0088 FFF7FEFF bl I2C_RequestMemoryWrite 5288 .LVL368: 2560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5289 .loc 1 2560 8 discriminator 1 view .LVU1885 5290 008c 70B9 cbnz r0, .L359 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5291 .loc 1 2568 5 is_stmt 1 view .LVU1886 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5292 .loc 1 2568 13 is_stmt 0 view .LVU1887 5293 008e 638D ldrh r3, [r4, #42] 5294 0090 9BB2 uxth r3, r3 2568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5295 .loc 1 2568 8 view .LVU1888 5296 0092 FF2B cmp r3, #255 5297 0094 0FD9 bls .L346 2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5298 .loc 1 2570 7 is_stmt 1 view .LVU1889 2570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5299 .loc 1 2570 22 is_stmt 0 view .LVU1890 5300 0096 FF22 movs r2, #255 5301 0098 2285 strh r2, [r4, #40] @ movhi 2571:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5302 .loc 1 2571 7 is_stmt 1 view .LVU1891 5303 009a 0023 movs r3, #0 5304 009c 0093 str r3, [sp] 5305 009e 4FF08073 mov r3, #16777216 5306 00a2 3146 mov r1, r6 5307 00a4 2046 mov r0, r4 5308 00a6 FFF7FEFF bl I2C_TransferConfig 5309 .LVL369: 5310 00aa 21E0 b .L350 5311 .L359: 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5312 .loc 1 2563 7 view .LVU1892 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5313 .loc 1 2563 7 view .LVU1893 5314 00ac 0023 movs r3, #0 5315 00ae 84F84030 strb r3, [r4, #64] 2563:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5316 .loc 1 2563 7 view .LVU1894 2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5317 .loc 1 2564 7 view .LVU1895 2564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5318 .loc 1 2564 14 is_stmt 0 view .LVU1896 5319 00b2 5846 mov r0, fp 5320 00b4 6DE0 b .L342 5321 .L346: 2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5322 .loc 1 2575 7 is_stmt 1 view .LVU1897 2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5323 .loc 1 2575 28 is_stmt 0 view .LVU1898 ARM GAS /tmp/ccJ8PJrU.s page 257 5324 00b6 628D ldrh r2, [r4, #42] 5325 00b8 92B2 uxth r2, r2 2575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5326 .loc 1 2575 22 view .LVU1899 5327 00ba 2285 strh r2, [r4, #40] @ movhi 2576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5328 .loc 1 2576 7 is_stmt 1 view .LVU1900 5329 00bc 0023 movs r3, #0 5330 00be 0093 str r3, [sp] 5331 00c0 4FF00073 mov r3, #33554432 5332 00c4 D2B2 uxtb r2, r2 5333 00c6 3146 mov r1, r6 5334 00c8 2046 mov r0, r4 5335 00ca FFF7FEFF bl I2C_TransferConfig 5336 .LVL370: 5337 00ce 0FE0 b .L350 5338 .L349: 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5339 .loc 1 2612 11 view .LVU1901 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5340 .loc 1 2612 32 is_stmt 0 view .LVU1902 5341 00d0 628D ldrh r2, [r4, #42] 5342 00d2 92B2 uxth r2, r2 2612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5343 .loc 1 2612 26 view .LVU1903 5344 00d4 2285 strh r2, [r4, #40] @ movhi 2613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5345 .loc 1 2613 11 is_stmt 1 view .LVU1904 5346 00d6 0023 movs r3, #0 5347 00d8 0093 str r3, [sp] 5348 00da 4FF00073 mov r3, #33554432 5349 00de D2B2 uxtb r2, r2 5350 00e0 3146 mov r1, r6 5351 00e2 2046 mov r0, r4 5352 00e4 FFF7FEFF bl I2C_TransferConfig 5353 .LVL371: 5354 .L348: 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5355 .loc 1 2618 30 view .LVU1905 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5356 .loc 1 2618 18 is_stmt 0 view .LVU1906 5357 00e8 638D ldrh r3, [r4, #42] 5358 00ea 9BB2 uxth r3, r3 2618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5359 .loc 1 2618 30 view .LVU1907 5360 00ec 002B cmp r3, #0 5361 00ee 33D0 beq .L360 5362 .L350: 2579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5363 .loc 1 2579 5 is_stmt 1 view .LVU1908 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5364 .loc 1 2582 7 view .LVU1909 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5365 .loc 1 2582 11 is_stmt 0 view .LVU1910 5366 00f0 3A46 mov r2, r7 5367 00f2 2946 mov r1, r5 5368 00f4 2046 mov r0, r4 ARM GAS /tmp/ccJ8PJrU.s page 258 5369 00f6 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 5370 .LVL372: 2582:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5371 .loc 1 2582 10 discriminator 1 view .LVU1911 5372 00fa 0028 cmp r0, #0 5373 00fc 4ED1 bne .L354 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5374 .loc 1 2588 7 is_stmt 1 view .LVU1912 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5375 .loc 1 2588 35 is_stmt 0 view .LVU1913 5376 00fe 626A ldr r2, [r4, #36] 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5377 .loc 1 2588 11 view .LVU1914 5378 0100 2368 ldr r3, [r4] 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5379 .loc 1 2588 30 view .LVU1915 5380 0102 1278 ldrb r2, [r2] @ zero_extendqisi2 2588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5381 .loc 1 2588 28 view .LVU1916 5382 0104 9A62 str r2, [r3, #40] 2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5383 .loc 1 2591 7 is_stmt 1 view .LVU1917 2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5384 .loc 1 2591 11 is_stmt 0 view .LVU1918 5385 0106 636A ldr r3, [r4, #36] 2591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5386 .loc 1 2591 21 view .LVU1919 5387 0108 0133 adds r3, r3, #1 5388 010a 6362 str r3, [r4, #36] 2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 5389 .loc 1 2593 7 is_stmt 1 view .LVU1920 2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 5390 .loc 1 2593 11 is_stmt 0 view .LVU1921 5391 010c 638D ldrh r3, [r4, #42] 5392 010e 9BB2 uxth r3, r3 2593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 5393 .loc 1 2593 22 view .LVU1922 5394 0110 013B subs r3, r3, #1 5395 0112 9BB2 uxth r3, r3 5396 0114 6385 strh r3, [r4, #42] @ movhi 2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5397 .loc 1 2594 7 is_stmt 1 view .LVU1923 2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5398 .loc 1 2594 11 is_stmt 0 view .LVU1924 5399 0116 238D ldrh r3, [r4, #40] 2594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5400 .loc 1 2594 21 view .LVU1925 5401 0118 013B subs r3, r3, #1 5402 011a 9BB2 uxth r3, r3 5403 011c 2385 strh r3, [r4, #40] @ movhi 2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5404 .loc 1 2596 7 is_stmt 1 view .LVU1926 2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5405 .loc 1 2596 16 is_stmt 0 view .LVU1927 5406 011e 628D ldrh r2, [r4, #42] 5407 0120 92B2 uxth r2, r2 2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 259 5408 .loc 1 2596 10 view .LVU1928 5409 0122 002A cmp r2, #0 5410 0124 E0D0 beq .L348 2596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5411 .loc 1 2596 35 discriminator 1 view .LVU1929 5412 0126 002B cmp r3, #0 5413 0128 DED1 bne .L348 2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5414 .loc 1 2599 9 is_stmt 1 view .LVU1930 2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5415 .loc 1 2599 13 is_stmt 0 view .LVU1931 5416 012a 0097 str r7, [sp] 5417 012c 2B46 mov r3, r5 5418 012e 0022 movs r2, #0 5419 0130 8021 movs r1, #128 5420 0132 2046 mov r0, r4 5421 0134 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5422 .LVL373: 2599:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5423 .loc 1 2599 12 discriminator 1 view .LVU1932 5424 0138 90BB cbnz r0, .L355 2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5425 .loc 1 2604 9 is_stmt 1 view .LVU1933 2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5426 .loc 1 2604 17 is_stmt 0 view .LVU1934 5427 013a 638D ldrh r3, [r4, #42] 5428 013c 9BB2 uxth r3, r3 2604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5429 .loc 1 2604 12 view .LVU1935 5430 013e FF2B cmp r3, #255 5431 0140 C6D9 bls .L349 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5432 .loc 1 2606 11 is_stmt 1 view .LVU1936 2606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5433 .loc 1 2606 26 is_stmt 0 view .LVU1937 5434 0142 FF22 movs r2, #255 5435 0144 2285 strh r2, [r4, #40] @ movhi 2607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5436 .loc 1 2607 11 is_stmt 1 view .LVU1938 5437 0146 0023 movs r3, #0 5438 0148 0093 str r3, [sp] 5439 014a 4FF08073 mov r3, #16777216 5440 014e 3146 mov r1, r6 5441 0150 2046 mov r0, r4 5442 0152 FFF7FEFF bl I2C_TransferConfig 5443 .LVL374: 5444 0156 C7E7 b .L348 5445 .L360: 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5446 .loc 1 2622 5 view .LVU1939 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5447 .loc 1 2622 9 is_stmt 0 view .LVU1940 5448 0158 3A46 mov r2, r7 5449 015a 2946 mov r1, r5 5450 015c 2046 mov r0, r4 5451 015e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5452 .LVL375: ARM GAS /tmp/ccJ8PJrU.s page 260 2622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5453 .loc 1 2622 8 discriminator 1 view .LVU1941 5454 0162 F8B9 cbnz r0, .L356 2628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5455 .loc 1 2628 5 is_stmt 1 view .LVU1942 5456 0164 2368 ldr r3, [r4] 5457 0166 2022 movs r2, #32 5458 0168 DA61 str r2, [r3, #28] 2631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5459 .loc 1 2631 5 view .LVU1943 5460 016a 2168 ldr r1, [r4] 5461 016c 4B68 ldr r3, [r1, #4] 5462 016e 23F0FF73 bic r3, r3, #33423360 5463 0172 23F48B33 bic r3, r3, #71168 5464 0176 23F4FF73 bic r3, r3, #510 5465 017a 23F00103 bic r3, r3, #1 5466 017e 4B60 str r3, [r1, #4] 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5467 .loc 1 2633 5 view .LVU1944 2633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5468 .loc 1 2633 17 is_stmt 0 view .LVU1945 5469 0180 84F84120 strb r2, [r4, #65] 2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5470 .loc 1 2634 5 is_stmt 1 view .LVU1946 2634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5471 .loc 1 2634 17 is_stmt 0 view .LVU1947 5472 0184 0023 movs r3, #0 5473 0186 84F84230 strb r3, [r4, #66] 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5474 .loc 1 2637 5 is_stmt 1 view .LVU1948 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5475 .loc 1 2637 5 view .LVU1949 5476 018a 84F84030 strb r3, [r4, #64] 2637:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5477 .loc 1 2637 5 view .LVU1950 2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5478 .loc 1 2639 5 view .LVU1951 2639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5479 .loc 1 2639 12 is_stmt 0 view .LVU1952 5480 018e 00E0 b .L342 5481 .LVL376: 5482 .L351: 2643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5483 .loc 1 2643 12 view .LVU1953 5484 0190 0220 movs r0, #2 5485 .LVL377: 5486 .L342: 2645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5487 .loc 1 2645 1 view .LVU1954 5488 0192 03B0 add sp, sp, #12 5489 .cfi_remember_state 5490 .cfi_def_cfa_offset 36 5491 @ sp needed 5492 0194 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5493 .LVL378: 5494 .L352: 5495 .cfi_restore_state ARM GAS /tmp/ccJ8PJrU.s page 261 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5496 .loc 1 2540 5 discriminator 1 view .LVU1955 5497 0198 0220 movs r0, #2 5498 .LVL379: 2540:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5499 .loc 1 2540 5 discriminator 1 view .LVU1956 5500 019a FAE7 b .L342 5501 .LVL380: 5502 .L354: 2584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5503 .loc 1 2584 16 view .LVU1957 5504 019c 0120 movs r0, #1 5505 019e F8E7 b .L342 5506 .L355: 2601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5507 .loc 1 2601 18 view .LVU1958 5508 01a0 0120 movs r0, #1 5509 01a2 F6E7 b .L342 5510 .L356: 2624:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5511 .loc 1 2624 14 view .LVU1959 5512 01a4 0120 movs r0, #1 5513 01a6 F4E7 b .L342 5514 .cfi_endproc 5515 .LFE139: 5517 .section .text.HAL_I2C_Mem_Read,"ax",%progbits 5518 .align 1 5519 .global HAL_I2C_Mem_Read 5520 .syntax unified 5521 .thumb 5522 .thumb_func 5524 HAL_I2C_Mem_Read: 5525 .LVL381: 5526 .LFB140: 2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 5527 .loc 1 2662 1 is_stmt 1 view -0 5528 .cfi_startproc 5529 @ args = 12, pretend = 0, frame = 0 5530 @ frame_needed = 0, uses_anonymous_args = 0 2662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 5531 .loc 1 2662 1 is_stmt 0 view .LVU1961 5532 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5533 .cfi_def_cfa_offset 36 5534 .cfi_offset 4, -36 5535 .cfi_offset 5, -32 5536 .cfi_offset 6, -28 5537 .cfi_offset 7, -24 5538 .cfi_offset 8, -20 5539 .cfi_offset 9, -16 5540 .cfi_offset 10, -12 5541 .cfi_offset 11, -8 5542 .cfi_offset 14, -4 5543 0004 83B0 sub sp, sp, #12 5544 .cfi_def_cfa_offset 48 5545 0006 0E46 mov r6, r1 5546 0008 BDF834A0 ldrh r10, [sp, #52] 5547 000c 0E9D ldr r5, [sp, #56] ARM GAS /tmp/ccJ8PJrU.s page 262 2663:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5548 .loc 1 2663 3 is_stmt 1 view .LVU1962 2666:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5549 .loc 1 2666 3 view .LVU1963 2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5550 .loc 1 2668 3 view .LVU1964 2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5551 .loc 1 2668 11 is_stmt 0 view .LVU1965 5552 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5553 .LVL382: 2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5554 .loc 1 2668 11 view .LVU1966 5555 0012 C9B2 uxtb r1, r1 2668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5556 .loc 1 2668 6 view .LVU1967 5557 0014 2029 cmp r1, #32 5558 0016 40F0BC80 bne .L371 5559 001a 0446 mov r4, r0 5560 001c 9046 mov r8, r2 5561 001e 9946 mov r9, r3 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5562 .loc 1 2670 5 is_stmt 1 view .LVU1968 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5563 .loc 1 2670 8 is_stmt 0 view .LVU1969 5564 0020 0C9B ldr r3, [sp, #48] 5565 .LVL383: 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5566 .loc 1 2670 8 view .LVU1970 5567 0022 CBB1 cbz r3, .L363 2670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5568 .loc 1 2670 25 discriminator 1 view .LVU1971 5569 0024 BAF1000F cmp r10, #0 5570 0028 16D0 beq .L363 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5571 .loc 1 2677 5 is_stmt 1 view .LVU1972 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5572 .loc 1 2677 5 view .LVU1973 5573 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5574 002e 012B cmp r3, #1 5575 0030 00F0B380 beq .L372 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5576 .loc 1 2677 5 discriminator 2 view .LVU1974 5577 0034 4FF0010B mov fp, #1 5578 0038 80F840B0 strb fp, [r0, #64] 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5579 .loc 1 2677 5 discriminator 2 view .LVU1975 2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5580 .loc 1 2680 5 view .LVU1976 2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5581 .loc 1 2680 17 is_stmt 0 view .LVU1977 5582 003c FFF7FEFF bl HAL_GetTick 5583 .LVL384: 2680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5584 .loc 1 2680 17 view .LVU1978 5585 0040 0746 mov r7, r0 5586 .LVL385: 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 263 5587 .loc 1 2682 5 is_stmt 1 view .LVU1979 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5588 .loc 1 2682 9 is_stmt 0 view .LVU1980 5589 0042 0090 str r0, [sp] 5590 0044 1923 movs r3, #25 5591 0046 5A46 mov r2, fp 5592 0048 4FF40041 mov r1, #32768 5593 004c 2046 mov r0, r4 5594 .LVL386: 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5595 .loc 1 2682 9 view .LVU1981 5596 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5597 .LVL387: 2682:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5598 .loc 1 2682 8 discriminator 1 view .LVU1982 5599 0052 30B1 cbz r0, .L378 2684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5600 .loc 1 2684 14 view .LVU1983 5601 0054 0120 movs r0, #1 5602 0056 9DE0 b .L362 5603 .LVL388: 5604 .L363: 2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5605 .loc 1 2672 7 is_stmt 1 view .LVU1984 2672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5606 .loc 1 2672 23 is_stmt 0 view .LVU1985 5607 0058 4FF40073 mov r3, #512 5608 005c 6364 str r3, [r4, #68] 2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5609 .loc 1 2673 7 is_stmt 1 view .LVU1986 2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5610 .loc 1 2673 15 is_stmt 0 view .LVU1987 5611 005e 0120 movs r0, #1 5612 .LVL389: 2673:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5613 .loc 1 2673 15 view .LVU1988 5614 0060 98E0 b .L362 5615 .LVL390: 5616 .L378: 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5617 .loc 1 2687 5 is_stmt 1 view .LVU1989 2687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5618 .loc 1 2687 21 is_stmt 0 view .LVU1990 5619 0062 2223 movs r3, #34 5620 0064 84F84130 strb r3, [r4, #65] 2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5621 .loc 1 2688 5 is_stmt 1 view .LVU1991 2688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5622 .loc 1 2688 21 is_stmt 0 view .LVU1992 5623 0068 4023 movs r3, #64 5624 006a 84F84230 strb r3, [r4, #66] 2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5625 .loc 1 2689 5 is_stmt 1 view .LVU1993 2689:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5626 .loc 1 2689 21 is_stmt 0 view .LVU1994 5627 006e 0023 movs r3, #0 5628 0070 6364 str r3, [r4, #68] ARM GAS /tmp/ccJ8PJrU.s page 264 2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 5629 .loc 1 2692 5 is_stmt 1 view .LVU1995 2692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 5630 .loc 1 2692 21 is_stmt 0 view .LVU1996 5631 0072 0C9A ldr r2, [sp, #48] 5632 0074 6262 str r2, [r4, #36] 2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 5633 .loc 1 2693 5 is_stmt 1 view .LVU1997 2693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 5634 .loc 1 2693 21 is_stmt 0 view .LVU1998 5635 0076 A4F82AA0 strh r10, [r4, #42] @ movhi 2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5636 .loc 1 2694 5 is_stmt 1 view .LVU1999 2694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5637 .loc 1 2694 21 is_stmt 0 view .LVU2000 5638 007a 6363 str r3, [r4, #52] 2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5639 .loc 1 2697 5 is_stmt 1 view .LVU2001 2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5640 .loc 1 2697 9 is_stmt 0 view .LVU2002 5641 007c 0197 str r7, [sp, #4] 5642 007e 0095 str r5, [sp] 5643 0080 4B46 mov r3, r9 5644 0082 4246 mov r2, r8 5645 0084 3146 mov r1, r6 5646 0086 2046 mov r0, r4 5647 0088 FFF7FEFF bl I2C_RequestMemoryRead 5648 .LVL391: 2697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5649 .loc 1 2697 8 discriminator 1 view .LVU2003 5650 008c 70B9 cbnz r0, .L379 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5651 .loc 1 2706 5 is_stmt 1 view .LVU2004 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5652 .loc 1 2706 13 is_stmt 0 view .LVU2005 5653 008e 638D ldrh r3, [r4, #42] 5654 0090 9BB2 uxth r3, r3 2706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5655 .loc 1 2706 8 view .LVU2006 5656 0092 FF2B cmp r3, #255 5657 0094 0FD9 bls .L366 2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5658 .loc 1 2708 7 is_stmt 1 view .LVU2007 2708:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5659 .loc 1 2708 22 is_stmt 0 view .LVU2008 5660 0096 0122 movs r2, #1 5661 0098 2285 strh r2, [r4, #40] @ movhi 2709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5662 .loc 1 2709 7 is_stmt 1 view .LVU2009 5663 009a 444B ldr r3, .L381 5664 009c 0093 str r3, [sp] 5665 009e 4FF08073 mov r3, #16777216 5666 00a2 3146 mov r1, r6 5667 00a4 2046 mov r0, r4 5668 00a6 FFF7FEFF bl I2C_TransferConfig 5669 .LVL392: 5670 00aa 21E0 b .L370 ARM GAS /tmp/ccJ8PJrU.s page 265 5671 .L379: 2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5672 .loc 1 2700 7 view .LVU2010 2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5673 .loc 1 2700 7 view .LVU2011 5674 00ac 0023 movs r3, #0 5675 00ae 84F84030 strb r3, [r4, #64] 2700:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 5676 .loc 1 2700 7 view .LVU2012 2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5677 .loc 1 2701 7 view .LVU2013 2701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5678 .loc 1 2701 14 is_stmt 0 view .LVU2014 5679 00b2 5846 mov r0, fp 5680 00b4 6EE0 b .L362 5681 .L366: 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5682 .loc 1 2714 7 is_stmt 1 view .LVU2015 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5683 .loc 1 2714 28 is_stmt 0 view .LVU2016 5684 00b6 628D ldrh r2, [r4, #42] 5685 00b8 92B2 uxth r2, r2 2714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5686 .loc 1 2714 22 view .LVU2017 5687 00ba 2285 strh r2, [r4, #40] @ movhi 2715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5688 .loc 1 2715 7 is_stmt 1 view .LVU2018 5689 00bc 3B4B ldr r3, .L381 5690 00be 0093 str r3, [sp] 5691 00c0 4FF00073 mov r3, #33554432 5692 00c4 D2B2 uxtb r2, r2 5693 00c6 3146 mov r1, r6 5694 00c8 2046 mov r0, r4 5695 00ca FFF7FEFF bl I2C_TransferConfig 5696 .LVL393: 5697 00ce 0FE0 b .L370 5698 .L369: 2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5699 .loc 1 2752 11 view .LVU2019 2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5700 .loc 1 2752 32 is_stmt 0 view .LVU2020 5701 00d0 628D ldrh r2, [r4, #42] 5702 00d2 92B2 uxth r2, r2 2752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5703 .loc 1 2752 26 view .LVU2021 5704 00d4 2285 strh r2, [r4, #40] @ movhi 2753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5705 .loc 1 2753 11 is_stmt 1 view .LVU2022 5706 00d6 0023 movs r3, #0 5707 00d8 0093 str r3, [sp] 5708 00da 4FF00073 mov r3, #33554432 5709 00de D2B2 uxtb r2, r2 5710 00e0 3146 mov r1, r6 5711 00e2 2046 mov r0, r4 5712 00e4 FFF7FEFF bl I2C_TransferConfig 5713 .LVL394: 5714 .L368: ARM GAS /tmp/ccJ8PJrU.s page 266 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5715 .loc 1 2757 30 view .LVU2023 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5716 .loc 1 2757 18 is_stmt 0 view .LVU2024 5717 00e8 638D ldrh r3, [r4, #42] 5718 00ea 9BB2 uxth r3, r3 2757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5719 .loc 1 2757 30 view .LVU2025 5720 00ec 002B cmp r3, #0 5721 00ee 34D0 beq .L380 5722 .L370: 2719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5723 .loc 1 2719 5 is_stmt 1 view .LVU2026 2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5724 .loc 1 2722 7 view .LVU2027 2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5725 .loc 1 2722 11 is_stmt 0 view .LVU2028 5726 00f0 0097 str r7, [sp] 5727 00f2 2B46 mov r3, r5 5728 00f4 0022 movs r2, #0 5729 00f6 0421 movs r1, #4 5730 00f8 2046 mov r0, r4 5731 00fa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5732 .LVL395: 2722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5733 .loc 1 2722 10 discriminator 1 view .LVU2029 5734 00fe 0028 cmp r0, #0 5735 0100 4DD1 bne .L374 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5736 .loc 1 2728 7 is_stmt 1 view .LVU2030 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5737 .loc 1 2728 38 is_stmt 0 view .LVU2031 5738 0102 2368 ldr r3, [r4] 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5739 .loc 1 2728 48 view .LVU2032 5740 0104 5A6A ldr r2, [r3, #36] 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5741 .loc 1 2728 12 view .LVU2033 5742 0106 636A ldr r3, [r4, #36] 2728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5743 .loc 1 2728 23 view .LVU2034 5744 0108 1A70 strb r2, [r3] 2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5745 .loc 1 2731 7 is_stmt 1 view .LVU2035 2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5746 .loc 1 2731 11 is_stmt 0 view .LVU2036 5747 010a 636A ldr r3, [r4, #36] 2731:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5748 .loc 1 2731 21 view .LVU2037 5749 010c 0133 adds r3, r3, #1 5750 010e 6362 str r3, [r4, #36] 2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 5751 .loc 1 2733 7 is_stmt 1 view .LVU2038 2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 5752 .loc 1 2733 11 is_stmt 0 view .LVU2039 5753 0110 228D ldrh r2, [r4, #40] 2733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; ARM GAS /tmp/ccJ8PJrU.s page 267 5754 .loc 1 2733 21 view .LVU2040 5755 0112 013A subs r2, r2, #1 5756 0114 92B2 uxth r2, r2 5757 0116 2285 strh r2, [r4, #40] @ movhi 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5758 .loc 1 2734 7 is_stmt 1 view .LVU2041 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5759 .loc 1 2734 11 is_stmt 0 view .LVU2042 5760 0118 638D ldrh r3, [r4, #42] 5761 011a 9BB2 uxth r3, r3 2734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5762 .loc 1 2734 22 view .LVU2043 5763 011c 013B subs r3, r3, #1 5764 011e 9BB2 uxth r3, r3 5765 0120 6385 strh r3, [r4, #42] @ movhi 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5766 .loc 1 2736 7 is_stmt 1 view .LVU2044 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5767 .loc 1 2736 16 is_stmt 0 view .LVU2045 5768 0122 638D ldrh r3, [r4, #42] 5769 0124 9BB2 uxth r3, r3 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5770 .loc 1 2736 10 view .LVU2046 5771 0126 002B cmp r3, #0 5772 0128 DED0 beq .L368 2736:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5773 .loc 1 2736 35 discriminator 1 view .LVU2047 5774 012a 002A cmp r2, #0 5775 012c DCD1 bne .L368 2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5776 .loc 1 2739 9 is_stmt 1 view .LVU2048 2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5777 .loc 1 2739 13 is_stmt 0 view .LVU2049 5778 012e 0097 str r7, [sp] 5779 0130 2B46 mov r3, r5 5780 0132 8021 movs r1, #128 5781 0134 2046 mov r0, r4 5782 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5783 .LVL396: 2739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5784 .loc 1 2739 12 discriminator 1 view .LVU2050 5785 013a 90BB cbnz r0, .L375 2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5786 .loc 1 2744 9 is_stmt 1 view .LVU2051 2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5787 .loc 1 2744 17 is_stmt 0 view .LVU2052 5788 013c 638D ldrh r3, [r4, #42] 5789 013e 9BB2 uxth r3, r3 2744:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5790 .loc 1 2744 12 view .LVU2053 5791 0140 FF2B cmp r3, #255 5792 0142 C5D9 bls .L369 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5793 .loc 1 2746 11 is_stmt 1 view .LVU2054 2746:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5794 .loc 1 2746 26 is_stmt 0 view .LVU2055 5795 0144 0122 movs r2, #1 ARM GAS /tmp/ccJ8PJrU.s page 268 5796 0146 2285 strh r2, [r4, #40] @ movhi 2747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5797 .loc 1 2747 11 is_stmt 1 view .LVU2056 5798 0148 0023 movs r3, #0 5799 014a 0093 str r3, [sp] 5800 014c 4FF08073 mov r3, #16777216 5801 0150 3146 mov r1, r6 5802 0152 2046 mov r0, r4 5803 0154 FFF7FEFF bl I2C_TransferConfig 5804 .LVL397: 5805 0158 C6E7 b .L368 5806 .L380: 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5807 .loc 1 2761 5 view .LVU2057 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5808 .loc 1 2761 9 is_stmt 0 view .LVU2058 5809 015a 3A46 mov r2, r7 5810 015c 2946 mov r1, r5 5811 015e 2046 mov r0, r4 5812 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5813 .LVL398: 2761:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5814 .loc 1 2761 8 discriminator 1 view .LVU2059 5815 0164 F8B9 cbnz r0, .L376 2767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5816 .loc 1 2767 5 is_stmt 1 view .LVU2060 5817 0166 2368 ldr r3, [r4] 5818 0168 2022 movs r2, #32 5819 016a DA61 str r2, [r3, #28] 2770:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5820 .loc 1 2770 5 view .LVU2061 5821 016c 2168 ldr r1, [r4] 5822 016e 4B68 ldr r3, [r1, #4] 5823 0170 23F0FF73 bic r3, r3, #33423360 5824 0174 23F48B33 bic r3, r3, #71168 5825 0178 23F4FF73 bic r3, r3, #510 5826 017c 23F00103 bic r3, r3, #1 5827 0180 4B60 str r3, [r1, #4] 2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5828 .loc 1 2772 5 view .LVU2062 2772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5829 .loc 1 2772 17 is_stmt 0 view .LVU2063 5830 0182 84F84120 strb r2, [r4, #65] 2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5831 .loc 1 2773 5 is_stmt 1 view .LVU2064 2773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5832 .loc 1 2773 17 is_stmt 0 view .LVU2065 5833 0186 0023 movs r3, #0 5834 0188 84F84230 strb r3, [r4, #66] 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5835 .loc 1 2776 5 is_stmt 1 view .LVU2066 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5836 .loc 1 2776 5 view .LVU2067 5837 018c 84F84030 strb r3, [r4, #64] 2776:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5838 .loc 1 2776 5 view .LVU2068 2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 269 5839 .loc 1 2778 5 view .LVU2069 2778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5840 .loc 1 2778 12 is_stmt 0 view .LVU2070 5841 0190 00E0 b .L362 5842 .LVL399: 5843 .L371: 2782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5844 .loc 1 2782 12 view .LVU2071 5845 0192 0220 movs r0, #2 5846 .LVL400: 5847 .L362: 2784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /** 5848 .loc 1 2784 1 view .LVU2072 5849 0194 03B0 add sp, sp, #12 5850 .cfi_remember_state 5851 .cfi_def_cfa_offset 36 5852 @ sp needed 5853 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5854 .LVL401: 5855 .L372: 5856 .cfi_restore_state 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5857 .loc 1 2677 5 discriminator 1 view .LVU2073 5858 019a 0220 movs r0, #2 5859 .LVL402: 2677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5860 .loc 1 2677 5 discriminator 1 view .LVU2074 5861 019c FAE7 b .L362 5862 .LVL403: 5863 .L374: 2724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5864 .loc 1 2724 16 view .LVU2075 5865 019e 0120 movs r0, #1 5866 01a0 F8E7 b .L362 5867 .L375: 2741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5868 .loc 1 2741 18 view .LVU2076 5869 01a2 0120 movs r0, #1 5870 01a4 F6E7 b .L362 5871 .L376: 2763:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5872 .loc 1 2763 14 view .LVU2077 5873 01a6 0120 movs r0, #1 5874 01a8 F4E7 b .L362 5875 .L382: 5876 01aa 00BF .align 2 5877 .L381: 5878 01ac 00240080 .word -2147474432 5879 .cfi_endproc 5880 .LFE140: 5882 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits 5883 .align 1 5884 .global HAL_I2C_Mem_Write_IT 5885 .syntax unified 5886 .thumb 5887 .thumb_func 5889 HAL_I2C_Mem_Write_IT: ARM GAS /tmp/ccJ8PJrU.s page 270 5890 .LVL404: 5891 .LFB141: 2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 5892 .loc 1 2799 1 is_stmt 1 view -0 5893 .cfi_startproc 5894 @ args = 8, pretend = 0, frame = 0 5895 @ frame_needed = 0, uses_anonymous_args = 0 2799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 5896 .loc 1 2799 1 is_stmt 0 view .LVU2079 5897 0000 70B5 push {r4, r5, r6, lr} 5898 .cfi_def_cfa_offset 16 5899 .cfi_offset 4, -16 5900 .cfi_offset 5, -12 5901 .cfi_offset 6, -8 5902 .cfi_offset 14, -4 5903 0002 82B0 sub sp, sp, #8 5904 .cfi_def_cfa_offset 24 5905 0004 0446 mov r4, r0 5906 0006 1D46 mov r5, r3 5907 0008 BDF81C30 ldrh r3, [sp, #28] 5908 .LVL405: 2801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5909 .loc 1 2801 3 is_stmt 1 view .LVU2080 2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5910 .loc 1 2803 3 view .LVU2081 2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5911 .loc 1 2803 11 is_stmt 0 view .LVU2082 5912 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 5913 .LVL406: 2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5914 .loc 1 2803 11 view .LVU2083 5915 0010 C0B2 uxtb r0, r0 2803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5916 .loc 1 2803 6 view .LVU2084 5917 0012 2028 cmp r0, #32 5918 0014 43D1 bne .L389 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5919 .loc 1 2805 5 is_stmt 1 view .LVU2085 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5920 .loc 1 2805 8 is_stmt 0 view .LVU2086 5921 0016 0698 ldr r0, [sp, #24] 5922 0018 0028 cmp r0, #0 5923 001a 35D0 beq .L385 2805:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5924 .loc 1 2805 25 discriminator 1 view .LVU2087 5925 001c 002B cmp r3, #0 5926 001e 33D0 beq .L385 2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5927 .loc 1 2811 5 is_stmt 1 view .LVU2088 2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5928 .loc 1 2811 9 is_stmt 0 view .LVU2089 5929 0020 2068 ldr r0, [r4] 5930 0022 8669 ldr r6, [r0, #24] 2811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5931 .loc 1 2811 8 view .LVU2090 5932 0024 16F4004F tst r6, #32768 5933 0028 3CD1 bne .L390 ARM GAS /tmp/ccJ8PJrU.s page 271 2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5934 .loc 1 2817 5 is_stmt 1 view .LVU2091 2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5935 .loc 1 2817 5 view .LVU2092 5936 002a 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 5937 002e 012E cmp r6, #1 5938 0030 3AD0 beq .L391 2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5939 .loc 1 2817 5 discriminator 2 view .LVU2093 5940 0032 0126 movs r6, #1 5941 0034 84F84060 strb r6, [r4, #64] 2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5942 .loc 1 2817 5 discriminator 2 view .LVU2094 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5943 .loc 1 2819 5 view .LVU2095 2819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5944 .loc 1 2819 23 is_stmt 0 view .LVU2096 5945 0038 2126 movs r6, #33 5946 003a 84F84160 strb r6, [r4, #65] 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5947 .loc 1 2820 5 is_stmt 1 view .LVU2097 2820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5948 .loc 1 2820 23 is_stmt 0 view .LVU2098 5949 003e 4026 movs r6, #64 5950 0040 84F84260 strb r6, [r4, #66] 2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5951 .loc 1 2821 5 is_stmt 1 view .LVU2099 2821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5952 .loc 1 2821 23 is_stmt 0 view .LVU2100 5953 0044 0026 movs r6, #0 5954 0046 6664 str r6, [r4, #68] 2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 5955 .loc 1 2824 5 is_stmt 1 view .LVU2101 2824:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 5956 .loc 1 2824 23 is_stmt 0 view .LVU2102 5957 0048 2685 strh r6, [r4, #40] @ movhi 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 5958 .loc 1 2825 5 is_stmt 1 view .LVU2103 2825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 5959 .loc 1 2825 23 is_stmt 0 view .LVU2104 5960 004a 069E ldr r6, [sp, #24] 5961 004c 6662 str r6, [r4, #36] 2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5962 .loc 1 2826 5 is_stmt 1 view .LVU2105 2826:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5963 .loc 1 2826 23 is_stmt 0 view .LVU2106 5964 004e 6385 strh r3, [r4, #42] @ movhi 2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 5965 .loc 1 2827 5 is_stmt 1 view .LVU2107 2827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 5966 .loc 1 2827 23 is_stmt 0 view .LVU2108 5967 0050 164B ldr r3, .L394 5968 0052 E362 str r3, [r4, #44] 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 5969 .loc 1 2828 5 is_stmt 1 view .LVU2109 2828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 5970 .loc 1 2828 23 is_stmt 0 view .LVU2110 ARM GAS /tmp/ccJ8PJrU.s page 272 5971 0054 164B ldr r3, .L394+4 5972 0056 6363 str r3, [r4, #52] 2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5973 .loc 1 2829 5 is_stmt 1 view .LVU2111 2829:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5974 .loc 1 2829 23 is_stmt 0 view .LVU2112 5975 0058 E164 str r1, [r4, #76] 2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5976 .loc 1 2832 5 is_stmt 1 view .LVU2113 2832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 5977 .loc 1 2832 8 is_stmt 0 view .LVU2114 5978 005a 012D cmp r5, #1 5979 005c 19D0 beq .L393 2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5980 .loc 1 2844 7 is_stmt 1 view .LVU2115 2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5981 .loc 1 2844 30 is_stmt 0 view .LVU2116 5982 005e 130A lsrs r3, r2, #8 2844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5983 .loc 1 2844 28 view .LVU2117 5984 0060 8362 str r3, [r0, #40] 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5985 .loc 1 2847 7 is_stmt 1 view .LVU2118 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5986 .loc 1 2847 26 is_stmt 0 view .LVU2119 5987 0062 D2B2 uxtb r2, r2 5988 .LVL407: 2847:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 5989 .loc 1 2847 24 view .LVU2120 5990 0064 2265 str r2, [r4, #80] 5991 .L388: 2850:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 5992 .loc 1 2850 5 is_stmt 1 view .LVU2121 5993 0066 134B ldr r3, .L394+8 5994 0068 0093 str r3, [sp] 5995 006a 4FF08073 mov r3, #16777216 5996 006e EAB2 uxtb r2, r5 5997 0070 2046 mov r0, r4 5998 0072 FFF7FEFF bl I2C_TransferConfig 5999 .LVL408: 2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6000 .loc 1 2853 5 view .LVU2122 2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6001 .loc 1 2853 5 view .LVU2123 6002 0076 0025 movs r5, #0 6003 .LVL409: 2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6004 .loc 1 2853 5 is_stmt 0 view .LVU2124 6005 0078 84F84050 strb r5, [r4, #64] 2853:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6006 .loc 1 2853 5 is_stmt 1 view .LVU2125 2863:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6007 .loc 1 2863 5 view .LVU2126 6008 007c 0121 movs r1, #1 6009 007e 2046 mov r0, r4 6010 0080 FFF7FEFF bl I2C_Enable_IRQ 6011 .LVL410: ARM GAS /tmp/ccJ8PJrU.s page 273 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6012 .loc 1 2865 5 view .LVU2127 2865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6013 .loc 1 2865 12 is_stmt 0 view .LVU2128 6014 0084 2846 mov r0, r5 6015 0086 0BE0 b .L384 6016 .LVL411: 6017 .L385: 2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6018 .loc 1 2807 7 is_stmt 1 view .LVU2129 2807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6019 .loc 1 2807 23 is_stmt 0 view .LVU2130 6020 0088 4FF40073 mov r3, #512 6021 008c 6364 str r3, [r4, #68] 2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6022 .loc 1 2808 7 is_stmt 1 view .LVU2131 2808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6023 .loc 1 2808 15 is_stmt 0 view .LVU2132 6024 008e 0120 movs r0, #1 6025 0090 06E0 b .L384 6026 .L393: 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6027 .loc 1 2835 7 is_stmt 1 view .LVU2133 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6028 .loc 1 2835 30 is_stmt 0 view .LVU2134 6029 0092 D2B2 uxtb r2, r2 6030 .LVL412: 2835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6031 .loc 1 2835 28 view .LVU2135 6032 0094 8262 str r2, [r0, #40] 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6033 .loc 1 2838 7 is_stmt 1 view .LVU2136 2838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6034 .loc 1 2838 24 is_stmt 0 view .LVU2137 6035 0096 4FF0FF33 mov r3, #-1 6036 009a 2365 str r3, [r4, #80] 6037 009c E3E7 b .L388 6038 .LVL413: 6039 .L389: 2869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6040 .loc 1 2869 12 view .LVU2138 6041 009e 0220 movs r0, #2 6042 .LVL414: 6043 .L384: 2871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6044 .loc 1 2871 1 view .LVU2139 6045 00a0 02B0 add sp, sp, #8 6046 .cfi_remember_state 6047 .cfi_def_cfa_offset 16 6048 @ sp needed 6049 00a2 70BD pop {r4, r5, r6, pc} 6050 .LVL415: 6051 .L390: 6052 .cfi_restore_state 2813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6053 .loc 1 2813 14 view .LVU2140 6054 00a4 0220 movs r0, #2 ARM GAS /tmp/ccJ8PJrU.s page 274 6055 00a6 FBE7 b .L384 6056 .L391: 2817:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6057 .loc 1 2817 5 discriminator 1 view .LVU2141 6058 00a8 0220 movs r0, #2 6059 00aa F9E7 b .L384 6060 .L395: 6061 .align 2 6062 .L394: 6063 00ac 0000FFFF .word -65536 6064 00b0 00000000 .word I2C_Mem_ISR_IT 6065 00b4 00200080 .word -2147475456 6066 .cfi_endproc 6067 .LFE141: 6069 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits 6070 .align 1 6071 .global HAL_I2C_Mem_Read_IT 6072 .syntax unified 6073 .thumb 6074 .thumb_func 6076 HAL_I2C_Mem_Read_IT: 6077 .LVL416: 6078 .LFB142: 2887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 6079 .loc 1 2887 1 is_stmt 1 view -0 6080 .cfi_startproc 6081 @ args = 8, pretend = 0, frame = 0 6082 @ frame_needed = 0, uses_anonymous_args = 0 2887:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Check the parameters */ 6083 .loc 1 2887 1 is_stmt 0 view .LVU2143 6084 0000 70B5 push {r4, r5, r6, lr} 6085 .cfi_def_cfa_offset 16 6086 .cfi_offset 4, -16 6087 .cfi_offset 5, -12 6088 .cfi_offset 6, -8 6089 .cfi_offset 14, -4 6090 0002 82B0 sub sp, sp, #8 6091 .cfi_def_cfa_offset 24 6092 0004 0446 mov r4, r0 6093 0006 1D46 mov r5, r3 6094 0008 BDF81C30 ldrh r3, [sp, #28] 6095 .LVL417: 2889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6096 .loc 1 2889 3 is_stmt 1 view .LVU2144 2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6097 .loc 1 2891 3 view .LVU2145 2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6098 .loc 1 2891 11 is_stmt 0 view .LVU2146 6099 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6100 .LVL418: 2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6101 .loc 1 2891 11 view .LVU2147 6102 0010 C0B2 uxtb r0, r0 2891:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6103 .loc 1 2891 6 view .LVU2148 6104 0012 2028 cmp r0, #32 6105 0014 41D1 bne .L402 ARM GAS /tmp/ccJ8PJrU.s page 275 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6106 .loc 1 2893 5 is_stmt 1 view .LVU2149 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6107 .loc 1 2893 8 is_stmt 0 view .LVU2150 6108 0016 0698 ldr r0, [sp, #24] 6109 0018 0028 cmp r0, #0 6110 001a 33D0 beq .L398 2893:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6111 .loc 1 2893 25 discriminator 1 view .LVU2151 6112 001c 002B cmp r3, #0 6113 001e 31D0 beq .L398 2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6114 .loc 1 2899 5 is_stmt 1 view .LVU2152 2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6115 .loc 1 2899 9 is_stmt 0 view .LVU2153 6116 0020 2068 ldr r0, [r4] 6117 0022 8669 ldr r6, [r0, #24] 2899:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6118 .loc 1 2899 8 view .LVU2154 6119 0024 16F4004F tst r6, #32768 6120 0028 3AD1 bne .L403 2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6121 .loc 1 2905 5 is_stmt 1 view .LVU2155 2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6122 .loc 1 2905 5 view .LVU2156 6123 002a 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 6124 002e 012E cmp r6, #1 6125 0030 38D0 beq .L404 2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6126 .loc 1 2905 5 discriminator 2 view .LVU2157 6127 0032 0126 movs r6, #1 6128 0034 84F84060 strb r6, [r4, #64] 2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6129 .loc 1 2905 5 discriminator 2 view .LVU2158 2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6130 .loc 1 2907 5 view .LVU2159 2907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6131 .loc 1 2907 23 is_stmt 0 view .LVU2160 6132 0038 2226 movs r6, #34 6133 003a 84F84160 strb r6, [r4, #65] 2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6134 .loc 1 2908 5 is_stmt 1 view .LVU2161 2908:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6135 .loc 1 2908 23 is_stmt 0 view .LVU2162 6136 003e 4026 movs r6, #64 6137 0040 84F84260 strb r6, [r4, #66] 2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6138 .loc 1 2909 5 is_stmt 1 view .LVU2163 2909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6139 .loc 1 2909 23 is_stmt 0 view .LVU2164 6140 0044 0026 movs r6, #0 6141 0046 6664 str r6, [r4, #68] 2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 6142 .loc 1 2912 5 is_stmt 1 view .LVU2165 2912:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 6143 .loc 1 2912 23 is_stmt 0 view .LVU2166 6144 0048 069E ldr r6, [sp, #24] ARM GAS /tmp/ccJ8PJrU.s page 276 6145 004a 6662 str r6, [r4, #36] 2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6146 .loc 1 2913 5 is_stmt 1 view .LVU2167 2913:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6147 .loc 1 2913 23 is_stmt 0 view .LVU2168 6148 004c 6385 strh r3, [r4, #42] @ movhi 2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6149 .loc 1 2914 5 is_stmt 1 view .LVU2169 2914:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6150 .loc 1 2914 23 is_stmt 0 view .LVU2170 6151 004e 164B ldr r3, .L407 6152 0050 E362 str r3, [r4, #44] 2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6153 .loc 1 2915 5 is_stmt 1 view .LVU2171 2915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6154 .loc 1 2915 23 is_stmt 0 view .LVU2172 6155 0052 164B ldr r3, .L407+4 6156 0054 6363 str r3, [r4, #52] 2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6157 .loc 1 2916 5 is_stmt 1 view .LVU2173 2916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6158 .loc 1 2916 23 is_stmt 0 view .LVU2174 6159 0056 E164 str r1, [r4, #76] 2919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6160 .loc 1 2919 5 is_stmt 1 view .LVU2175 2919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6161 .loc 1 2919 8 is_stmt 0 view .LVU2176 6162 0058 012D cmp r5, #1 6163 005a 18D0 beq .L406 2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6164 .loc 1 2931 7 is_stmt 1 view .LVU2177 2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6165 .loc 1 2931 30 is_stmt 0 view .LVU2178 6166 005c 130A lsrs r3, r2, #8 2931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6167 .loc 1 2931 28 view .LVU2179 6168 005e 8362 str r3, [r0, #40] 2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6169 .loc 1 2934 7 is_stmt 1 view .LVU2180 2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6170 .loc 1 2934 26 is_stmt 0 view .LVU2181 6171 0060 D2B2 uxtb r2, r2 6172 .LVL419: 2934:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6173 .loc 1 2934 24 view .LVU2182 6174 0062 2265 str r2, [r4, #80] 6175 .L401: 2937:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6176 .loc 1 2937 5 is_stmt 1 view .LVU2183 6177 0064 124B ldr r3, .L407+8 6178 0066 0093 str r3, [sp] 6179 0068 0023 movs r3, #0 6180 006a EAB2 uxtb r2, r5 6181 006c 2046 mov r0, r4 6182 006e FFF7FEFF bl I2C_TransferConfig 6183 .LVL420: 2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 277 6184 .loc 1 2940 5 view .LVU2184 2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6185 .loc 1 2940 5 view .LVU2185 6186 0072 0025 movs r5, #0 6187 .LVL421: 2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6188 .loc 1 2940 5 is_stmt 0 view .LVU2186 6189 0074 84F84050 strb r5, [r4, #64] 2940:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6190 .loc 1 2940 5 is_stmt 1 view .LVU2187 2950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6191 .loc 1 2950 5 view .LVU2188 6192 0078 0121 movs r1, #1 6193 007a 2046 mov r0, r4 6194 007c FFF7FEFF bl I2C_Enable_IRQ 6195 .LVL422: 2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6196 .loc 1 2952 5 view .LVU2189 2952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6197 .loc 1 2952 12 is_stmt 0 view .LVU2190 6198 0080 2846 mov r0, r5 6199 0082 0BE0 b .L397 6200 .LVL423: 6201 .L398: 2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6202 .loc 1 2895 7 is_stmt 1 view .LVU2191 2895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6203 .loc 1 2895 23 is_stmt 0 view .LVU2192 6204 0084 4FF40073 mov r3, #512 6205 0088 6364 str r3, [r4, #68] 2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6206 .loc 1 2896 7 is_stmt 1 view .LVU2193 2896:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6207 .loc 1 2896 15 is_stmt 0 view .LVU2194 6208 008a 0120 movs r0, #1 6209 008c 06E0 b .L397 6210 .L406: 2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6211 .loc 1 2922 7 is_stmt 1 view .LVU2195 2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6212 .loc 1 2922 30 is_stmt 0 view .LVU2196 6213 008e D2B2 uxtb r2, r2 6214 .LVL424: 2922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6215 .loc 1 2922 28 view .LVU2197 6216 0090 8262 str r2, [r0, #40] 2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6217 .loc 1 2925 7 is_stmt 1 view .LVU2198 2925:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6218 .loc 1 2925 24 is_stmt 0 view .LVU2199 6219 0092 4FF0FF33 mov r3, #-1 6220 0096 2365 str r3, [r4, #80] 6221 0098 E4E7 b .L401 6222 .LVL425: 6223 .L402: 2956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6224 .loc 1 2956 12 view .LVU2200 ARM GAS /tmp/ccJ8PJrU.s page 278 6225 009a 0220 movs r0, #2 6226 .LVL426: 6227 .L397: 2958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6228 .loc 1 2958 1 view .LVU2201 6229 009c 02B0 add sp, sp, #8 6230 .cfi_remember_state 6231 .cfi_def_cfa_offset 16 6232 @ sp needed 6233 009e 70BD pop {r4, r5, r6, pc} 6234 .LVL427: 6235 .L403: 6236 .cfi_restore_state 2901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6237 .loc 1 2901 14 view .LVU2202 6238 00a0 0220 movs r0, #2 6239 00a2 FBE7 b .L397 6240 .L404: 2905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6241 .loc 1 2905 5 discriminator 1 view .LVU2203 6242 00a4 0220 movs r0, #2 6243 00a6 F9E7 b .L397 6244 .L408: 6245 .align 2 6246 .L407: 6247 00a8 0000FFFF .word -65536 6248 00ac 00000000 .word I2C_Mem_ISR_IT 6249 00b0 00200080 .word -2147475456 6250 .cfi_endproc 6251 .LFE142: 6253 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits 6254 .align 1 6255 .global HAL_I2C_Mem_Write_DMA 6256 .syntax unified 6257 .thumb 6258 .thumb_func 6260 HAL_I2C_Mem_Write_DMA: 6261 .LVL428: 6262 .LFB143: 2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6263 .loc 1 2974 1 is_stmt 1 view -0 6264 .cfi_startproc 6265 @ args = 8, pretend = 0, frame = 0 6266 @ frame_needed = 0, uses_anonymous_args = 0 2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6267 .loc 1 2974 1 is_stmt 0 view .LVU2205 6268 0000 F0B5 push {r4, r5, r6, r7, lr} 6269 .cfi_def_cfa_offset 20 6270 .cfi_offset 4, -20 6271 .cfi_offset 5, -16 6272 .cfi_offset 6, -12 6273 .cfi_offset 7, -8 6274 .cfi_offset 14, -4 6275 0002 83B0 sub sp, sp, #12 6276 .cfi_def_cfa_offset 32 6277 0004 0446 mov r4, r0 6278 0006 0E46 mov r6, r1 ARM GAS /tmp/ccJ8PJrU.s page 279 6279 0008 1F46 mov r7, r3 6280 000a 0899 ldr r1, [sp, #32] 6281 .LVL429: 2974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6282 .loc 1 2974 1 view .LVU2206 6283 000c BDF82430 ldrh r3, [sp, #36] 6284 .LVL430: 2975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6285 .loc 1 2975 3 is_stmt 1 view .LVU2207 2978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6286 .loc 1 2978 3 view .LVU2208 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6287 .loc 1 2980 3 view .LVU2209 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6288 .loc 1 2980 11 is_stmt 0 view .LVU2210 6289 0010 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6290 .LVL431: 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6291 .loc 1 2980 11 view .LVU2211 6292 0014 C0B2 uxtb r0, r0 2980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6293 .loc 1 2980 6 view .LVU2212 6294 0016 2028 cmp r0, #32 6295 0018 7AD1 bne .L420 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6296 .loc 1 2982 5 is_stmt 1 view .LVU2213 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6297 .loc 1 2982 8 is_stmt 0 view .LVU2214 6298 001a 0029 cmp r1, #0 6299 001c 4BD0 beq .L411 2982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6300 .loc 1 2982 25 discriminator 1 view .LVU2215 6301 001e 002B cmp r3, #0 6302 0020 49D0 beq .L411 2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6303 .loc 1 2988 5 is_stmt 1 view .LVU2216 2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6304 .loc 1 2988 9 is_stmt 0 view .LVU2217 6305 0022 2068 ldr r0, [r4] 6306 0024 8569 ldr r5, [r0, #24] 2988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6307 .loc 1 2988 8 view .LVU2218 6308 0026 15F4004F tst r5, #32768 6309 002a 75D1 bne .L421 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6310 .loc 1 2994 5 is_stmt 1 view .LVU2219 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6311 .loc 1 2994 5 view .LVU2220 6312 002c 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2 6313 0030 012D cmp r5, #1 6314 0032 73D0 beq .L422 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6315 .loc 1 2994 5 discriminator 2 view .LVU2221 6316 0034 0125 movs r5, #1 6317 0036 84F84050 strb r5, [r4, #64] 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6318 .loc 1 2994 5 discriminator 2 view .LVU2222 ARM GAS /tmp/ccJ8PJrU.s page 280 2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6319 .loc 1 2996 5 view .LVU2223 2996:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6320 .loc 1 2996 23 is_stmt 0 view .LVU2224 6321 003a 2125 movs r5, #33 6322 003c 84F84150 strb r5, [r4, #65] 2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6323 .loc 1 2997 5 is_stmt 1 view .LVU2225 2997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6324 .loc 1 2997 23 is_stmt 0 view .LVU2226 6325 0040 4025 movs r5, #64 6326 0042 84F84250 strb r5, [r4, #66] 2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6327 .loc 1 2998 5 is_stmt 1 view .LVU2227 2998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6328 .loc 1 2998 23 is_stmt 0 view .LVU2228 6329 0046 0025 movs r5, #0 6330 0048 6564 str r5, [r4, #68] 3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 6331 .loc 1 3001 5 is_stmt 1 view .LVU2229 3001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 6332 .loc 1 3001 23 is_stmt 0 view .LVU2230 6333 004a 6162 str r1, [r4, #36] 3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6334 .loc 1 3002 5 is_stmt 1 view .LVU2231 3002:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6335 .loc 1 3002 23 is_stmt 0 view .LVU2232 6336 004c 6385 strh r3, [r4, #42] @ movhi 3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6337 .loc 1 3003 5 is_stmt 1 view .LVU2233 3003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6338 .loc 1 3003 23 is_stmt 0 view .LVU2234 6339 004e 344B ldr r3, .L427 6340 0050 E362 str r3, [r4, #44] 3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6341 .loc 1 3004 5 is_stmt 1 view .LVU2235 3004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6342 .loc 1 3004 23 is_stmt 0 view .LVU2236 6343 0052 344B ldr r3, .L427+4 6344 0054 6363 str r3, [r4, #52] 3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6345 .loc 1 3005 5 is_stmt 1 view .LVU2237 3005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6346 .loc 1 3005 23 is_stmt 0 view .LVU2238 6347 0056 E664 str r6, [r4, #76] 3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6348 .loc 1 3007 5 is_stmt 1 view .LVU2239 3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6349 .loc 1 3007 13 is_stmt 0 view .LVU2240 6350 0058 638D ldrh r3, [r4, #42] 6351 005a 9BB2 uxth r3, r3 3007:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6352 .loc 1 3007 8 view .LVU2241 6353 005c FF2B cmp r3, #255 6354 005e 2FD9 bls .L413 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6355 .loc 1 3009 7 is_stmt 1 view .LVU2242 ARM GAS /tmp/ccJ8PJrU.s page 281 3009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6356 .loc 1 3009 22 is_stmt 0 view .LVU2243 6357 0060 FF23 movs r3, #255 6358 0062 2385 strh r3, [r4, #40] @ movhi 6359 .L414: 3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6360 .loc 1 3017 5 is_stmt 1 view .LVU2244 3017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6361 .loc 1 3017 8 is_stmt 0 view .LVU2245 6362 0064 012F cmp r7, #1 6363 0066 2ED0 beq .L425 3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6364 .loc 1 3029 7 is_stmt 1 view .LVU2246 3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6365 .loc 1 3029 30 is_stmt 0 view .LVU2247 6366 0068 130A lsrs r3, r2, #8 3029:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6367 .loc 1 3029 28 view .LVU2248 6368 006a 8362 str r3, [r0, #40] 3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6369 .loc 1 3032 7 is_stmt 1 view .LVU2249 3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6370 .loc 1 3032 26 is_stmt 0 view .LVU2250 6371 006c D2B2 uxtb r2, r2 6372 .LVL432: 3032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6373 .loc 1 3032 24 view .LVU2251 6374 006e 2265 str r2, [r4, #80] 6375 .L416: 3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6376 .loc 1 3035 5 is_stmt 1 view .LVU2252 3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6377 .loc 1 3035 13 is_stmt 0 view .LVU2253 6378 0070 A36B ldr r3, [r4, #56] 3035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6379 .loc 1 3035 8 view .LVU2254 6380 0072 002B cmp r3, #0 6381 0074 2DD0 beq .L417 3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6382 .loc 1 3038 7 is_stmt 1 view .LVU2255 3038:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6383 .loc 1 3038 38 is_stmt 0 view .LVU2256 6384 0076 2C4A ldr r2, .L427+8 6385 0078 9A62 str r2, [r3, #40] 3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6386 .loc 1 3041 7 is_stmt 1 view .LVU2257 3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6387 .loc 1 3041 11 is_stmt 0 view .LVU2258 6388 007a A36B ldr r3, [r4, #56] 3041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6389 .loc 1 3041 39 view .LVU2259 6390 007c 2B4A ldr r2, .L427+12 6391 007e 1A63 str r2, [r3, #48] 3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6392 .loc 1 3044 7 is_stmt 1 view .LVU2260 3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6393 .loc 1 3044 11 is_stmt 0 view .LVU2261 ARM GAS /tmp/ccJ8PJrU.s page 282 6394 0080 A26B ldr r2, [r4, #56] 3044:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6395 .loc 1 3044 42 view .LVU2262 6396 0082 0023 movs r3, #0 6397 0084 D362 str r3, [r2, #44] 3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6398 .loc 1 3045 7 is_stmt 1 view .LVU2263 3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6399 .loc 1 3045 11 is_stmt 0 view .LVU2264 6400 0086 A26B ldr r2, [r4, #56] 3045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6401 .loc 1 3045 39 view .LVU2265 6402 0088 5363 str r3, [r2, #52] 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 6403 .loc 1 3048 7 is_stmt 1 view .LVU2266 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 6404 .loc 1 3048 86 is_stmt 0 view .LVU2267 6405 008a 2268 ldr r2, [r4] 3048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 6406 .loc 1 3048 23 view .LVU2268 6407 008c 238D ldrh r3, [r4, #40] 6408 008e 2832 adds r2, r2, #40 6409 0090 A06B ldr r0, [r4, #56] 6410 0092 FFF7FEFF bl HAL_DMA_Start_IT 6411 .LVL433: 3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6412 .loc 1 3066 5 is_stmt 1 view .LVU2269 3066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6413 .loc 1 3066 8 is_stmt 0 view .LVU2270 6414 0096 0546 mov r5, r0 6415 0098 48B3 cbz r0, .L426 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6416 .loc 1 3086 7 is_stmt 1 view .LVU2271 3086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6417 .loc 1 3086 23 is_stmt 0 view .LVU2272 6418 009a 2023 movs r3, #32 6419 009c 84F84130 strb r3, [r4, #65] 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6420 .loc 1 3087 7 is_stmt 1 view .LVU2273 3087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6421 .loc 1 3087 23 is_stmt 0 view .LVU2274 6422 00a0 0022 movs r2, #0 6423 00a2 84F84220 strb r2, [r4, #66] 3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6424 .loc 1 3090 7 is_stmt 1 view .LVU2275 3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6425 .loc 1 3090 11 is_stmt 0 view .LVU2276 6426 00a6 636C ldr r3, [r4, #68] 3090:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6427 .loc 1 3090 23 view .LVU2277 6428 00a8 43F01003 orr r3, r3, #16 6429 00ac 6364 str r3, [r4, #68] 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6430 .loc 1 3093 7 is_stmt 1 view .LVU2278 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6431 .loc 1 3093 7 view .LVU2279 6432 00ae 84F84020 strb r2, [r4, #64] ARM GAS /tmp/ccJ8PJrU.s page 283 3093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6433 .loc 1 3093 7 view .LVU2280 3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6434 .loc 1 3095 7 view .LVU2281 3095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6435 .loc 1 3095 14 is_stmt 0 view .LVU2282 6436 00b2 0125 movs r5, #1 6437 00b4 2DE0 b .L410 6438 .LVL434: 6439 .L411: 2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6440 .loc 1 2984 7 is_stmt 1 view .LVU2283 2984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6441 .loc 1 2984 23 is_stmt 0 view .LVU2284 6442 00b6 4FF40073 mov r3, #512 6443 00ba 6364 str r3, [r4, #68] 2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6444 .loc 1 2985 7 is_stmt 1 view .LVU2285 2985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6445 .loc 1 2985 15 is_stmt 0 view .LVU2286 6446 00bc 0125 movs r5, #1 6447 00be 28E0 b .L410 6448 .L413: 3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6449 .loc 1 3013 7 is_stmt 1 view .LVU2287 3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6450 .loc 1 3013 28 is_stmt 0 view .LVU2288 6451 00c0 638D ldrh r3, [r4, #42] 3013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6452 .loc 1 3013 22 view .LVU2289 6453 00c2 2385 strh r3, [r4, #40] @ movhi 6454 00c4 CEE7 b .L414 6455 .L425: 3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6456 .loc 1 3020 7 is_stmt 1 view .LVU2290 3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6457 .loc 1 3020 30 is_stmt 0 view .LVU2291 6458 00c6 D2B2 uxtb r2, r2 6459 .LVL435: 3020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6460 .loc 1 3020 28 view .LVU2292 6461 00c8 8262 str r2, [r0, #40] 3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6462 .loc 1 3023 7 is_stmt 1 view .LVU2293 3023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6463 .loc 1 3023 24 is_stmt 0 view .LVU2294 6464 00ca 4FF0FF33 mov r3, #-1 6465 00ce 2365 str r3, [r4, #80] 6466 00d0 CEE7 b .L416 6467 .L417: 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6468 .loc 1 3054 7 is_stmt 1 view .LVU2295 3054:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6469 .loc 1 3054 23 is_stmt 0 view .LVU2296 6470 00d2 2023 movs r3, #32 6471 00d4 84F84130 strb r3, [r4, #65] 3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 284 6472 .loc 1 3055 7 is_stmt 1 view .LVU2297 3055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6473 .loc 1 3055 23 is_stmt 0 view .LVU2298 6474 00d8 0022 movs r2, #0 6475 00da 84F84220 strb r2, [r4, #66] 3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6476 .loc 1 3058 7 is_stmt 1 view .LVU2299 3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6477 .loc 1 3058 11 is_stmt 0 view .LVU2300 6478 00de 636C ldr r3, [r4, #68] 3058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6479 .loc 1 3058 23 view .LVU2301 6480 00e0 43F08003 orr r3, r3, #128 6481 00e4 6364 str r3, [r4, #68] 3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6482 .loc 1 3061 7 is_stmt 1 view .LVU2302 3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6483 .loc 1 3061 7 view .LVU2303 6484 00e6 84F84020 strb r2, [r4, #64] 3061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6485 .loc 1 3061 7 view .LVU2304 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6486 .loc 1 3063 7 view .LVU2305 3063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6487 .loc 1 3063 14 is_stmt 0 view .LVU2306 6488 00ea 0125 movs r5, #1 6489 00ec 11E0 b .L410 6490 .LVL436: 6491 .L426: 3069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6492 .loc 1 3069 7 is_stmt 1 view .LVU2307 6493 00ee 104B ldr r3, .L427+16 6494 00f0 0093 str r3, [sp] 6495 00f2 4FF08073 mov r3, #16777216 6496 00f6 FAB2 uxtb r2, r7 6497 00f8 3146 mov r1, r6 6498 00fa 2046 mov r0, r4 6499 .LVL437: 3069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6500 .loc 1 3069 7 is_stmt 0 view .LVU2308 6501 00fc FFF7FEFF bl I2C_TransferConfig 6502 .LVL438: 3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6503 .loc 1 3072 7 is_stmt 1 view .LVU2309 3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6504 .loc 1 3072 7 view .LVU2310 6505 0100 0023 movs r3, #0 6506 0102 84F84030 strb r3, [r4, #64] 3072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6507 .loc 1 3072 7 view .LVU2311 3081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6508 .loc 1 3081 7 view .LVU2312 6509 0106 0121 movs r1, #1 6510 0108 2046 mov r0, r4 6511 010a FFF7FEFF bl I2C_Enable_IRQ 6512 .LVL439: 3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 285 6513 .loc 1 3098 5 view .LVU2313 3098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6514 .loc 1 3098 12 is_stmt 0 view .LVU2314 6515 010e 00E0 b .L410 6516 .LVL440: 6517 .L420: 3102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6518 .loc 1 3102 12 view .LVU2315 6519 0110 0225 movs r5, #2 6520 .LVL441: 6521 .L410: 3104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6522 .loc 1 3104 1 view .LVU2316 6523 0112 2846 mov r0, r5 6524 0114 03B0 add sp, sp, #12 6525 .cfi_remember_state 6526 .cfi_def_cfa_offset 20 6527 @ sp needed 6528 0116 F0BD pop {r4, r5, r6, r7, pc} 6529 .LVL442: 6530 .L421: 6531 .cfi_restore_state 2990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6532 .loc 1 2990 14 view .LVU2317 6533 0118 0225 movs r5, #2 6534 011a FAE7 b .L410 6535 .L422: 2994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6536 .loc 1 2994 5 discriminator 1 view .LVU2318 6537 011c 0225 movs r5, #2 6538 011e F8E7 b .L410 6539 .L428: 6540 .align 2 6541 .L427: 6542 0120 0000FFFF .word -65536 6543 0124 00000000 .word I2C_Mem_ISR_DMA 6544 0128 00000000 .word I2C_DMAMasterTransmitCplt 6545 012c 00000000 .word I2C_DMAError 6546 0130 00200080 .word -2147475456 6547 .cfi_endproc 6548 .LFE143: 6550 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits 6551 .align 1 6552 .global HAL_I2C_Mem_Read_DMA 6553 .syntax unified 6554 .thumb 6555 .thumb_func 6557 HAL_I2C_Mem_Read_DMA: 6558 .LVL443: 6559 .LFB144: 3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6560 .loc 1 3120 1 is_stmt 1 view -0 6561 .cfi_startproc 6562 @ args = 8, pretend = 0, frame = 0 6563 @ frame_needed = 0, uses_anonymous_args = 0 3120:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6564 .loc 1 3120 1 is_stmt 0 view .LVU2320 ARM GAS /tmp/ccJ8PJrU.s page 286 6565 0000 F0B5 push {r4, r5, r6, r7, lr} 6566 .cfi_def_cfa_offset 20 6567 .cfi_offset 4, -20 6568 .cfi_offset 5, -16 6569 .cfi_offset 6, -12 6570 .cfi_offset 7, -8 6571 .cfi_offset 14, -4 6572 0002 83B0 sub sp, sp, #12 6573 .cfi_def_cfa_offset 32 6574 0004 0446 mov r4, r0 6575 0006 1F46 mov r7, r3 6576 0008 089D ldr r5, [sp, #32] 6577 000a BDF82430 ldrh r3, [sp, #36] 6578 .LVL444: 3121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6579 .loc 1 3121 3 is_stmt 1 view .LVU2321 3124:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6580 .loc 1 3124 3 view .LVU2322 3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6581 .loc 1 3126 3 view .LVU2323 3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6582 .loc 1 3126 11 is_stmt 0 view .LVU2324 6583 000e 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6584 .LVL445: 3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6585 .loc 1 3126 11 view .LVU2325 6586 0012 C0B2 uxtb r0, r0 3126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6587 .loc 1 3126 6 view .LVU2326 6588 0014 2028 cmp r0, #32 6589 0016 7BD1 bne .L440 6590 0018 0E46 mov r6, r1 3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6591 .loc 1 3128 5 is_stmt 1 view .LVU2327 3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6592 .loc 1 3128 8 is_stmt 0 view .LVU2328 6593 001a 002D cmp r5, #0 6594 001c 4CD0 beq .L431 3128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6595 .loc 1 3128 25 discriminator 1 view .LVU2329 6596 001e 002B cmp r3, #0 6597 0020 4AD0 beq .L431 3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6598 .loc 1 3134 5 is_stmt 1 view .LVU2330 3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6599 .loc 1 3134 9 is_stmt 0 view .LVU2331 6600 0022 2168 ldr r1, [r4] 6601 .LVL446: 3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6602 .loc 1 3134 9 view .LVU2332 6603 0024 8869 ldr r0, [r1, #24] 3134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6604 .loc 1 3134 8 view .LVU2333 6605 0026 10F4004F tst r0, #32768 6606 002a 75D1 bne .L441 3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6607 .loc 1 3140 5 is_stmt 1 view .LVU2334 ARM GAS /tmp/ccJ8PJrU.s page 287 3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6608 .loc 1 3140 5 view .LVU2335 6609 002c 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 6610 0030 0128 cmp r0, #1 6611 0032 73D0 beq .L442 3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6612 .loc 1 3140 5 discriminator 2 view .LVU2336 6613 0034 0120 movs r0, #1 6614 0036 84F84000 strb r0, [r4, #64] 3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6615 .loc 1 3140 5 discriminator 2 view .LVU2337 3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6616 .loc 1 3142 5 view .LVU2338 3142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6617 .loc 1 3142 23 is_stmt 0 view .LVU2339 6618 003a 2220 movs r0, #34 6619 003c 84F84100 strb r0, [r4, #65] 3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6620 .loc 1 3143 5 is_stmt 1 view .LVU2340 3143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6621 .loc 1 3143 23 is_stmt 0 view .LVU2341 6622 0040 4020 movs r0, #64 6623 0042 84F84200 strb r0, [r4, #66] 3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6624 .loc 1 3144 5 is_stmt 1 view .LVU2342 3144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6625 .loc 1 3144 23 is_stmt 0 view .LVU2343 6626 0046 0020 movs r0, #0 6627 0048 6064 str r0, [r4, #68] 3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 6628 .loc 1 3147 5 is_stmt 1 view .LVU2344 3147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 6629 .loc 1 3147 23 is_stmt 0 view .LVU2345 6630 004a 6562 str r5, [r4, #36] 3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6631 .loc 1 3148 5 is_stmt 1 view .LVU2346 3148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6632 .loc 1 3148 23 is_stmt 0 view .LVU2347 6633 004c 6385 strh r3, [r4, #42] @ movhi 3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6634 .loc 1 3149 5 is_stmt 1 view .LVU2348 3149:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6635 .loc 1 3149 23 is_stmt 0 view .LVU2349 6636 004e 344B ldr r3, .L447 6637 0050 E362 str r3, [r4, #44] 3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6638 .loc 1 3150 5 is_stmt 1 view .LVU2350 3150:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6639 .loc 1 3150 23 is_stmt 0 view .LVU2351 6640 0052 344B ldr r3, .L447+4 6641 0054 6363 str r3, [r4, #52] 3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6642 .loc 1 3151 5 is_stmt 1 view .LVU2352 3151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6643 .loc 1 3151 23 is_stmt 0 view .LVU2353 6644 0056 E664 str r6, [r4, #76] 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 288 6645 .loc 1 3153 5 is_stmt 1 view .LVU2354 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6646 .loc 1 3153 13 is_stmt 0 view .LVU2355 6647 0058 638D ldrh r3, [r4, #42] 6648 005a 9BB2 uxth r3, r3 3153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6649 .loc 1 3153 8 view .LVU2356 6650 005c FF2B cmp r3, #255 6651 005e 30D9 bls .L433 3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6652 .loc 1 3155 7 is_stmt 1 view .LVU2357 3155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6653 .loc 1 3155 22 is_stmt 0 view .LVU2358 6654 0060 FF23 movs r3, #255 6655 0062 2385 strh r3, [r4, #40] @ movhi 6656 .L434: 3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6657 .loc 1 3163 5 is_stmt 1 view .LVU2359 3163:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6658 .loc 1 3163 8 is_stmt 0 view .LVU2360 6659 0064 012F cmp r7, #1 6660 0066 2FD0 beq .L445 3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6661 .loc 1 3175 7 is_stmt 1 view .LVU2361 3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6662 .loc 1 3175 30 is_stmt 0 view .LVU2362 6663 0068 130A lsrs r3, r2, #8 3175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6664 .loc 1 3175 28 view .LVU2363 6665 006a 8B62 str r3, [r1, #40] 3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6666 .loc 1 3178 7 is_stmt 1 view .LVU2364 3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6667 .loc 1 3178 26 is_stmt 0 view .LVU2365 6668 006c D2B2 uxtb r2, r2 6669 .LVL447: 3178:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6670 .loc 1 3178 24 view .LVU2366 6671 006e 2265 str r2, [r4, #80] 6672 .L436: 3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6673 .loc 1 3181 5 is_stmt 1 view .LVU2367 3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6674 .loc 1 3181 13 is_stmt 0 view .LVU2368 6675 0070 E36B ldr r3, [r4, #60] 3181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6676 .loc 1 3181 8 view .LVU2369 6677 0072 002B cmp r3, #0 6678 0074 2ED0 beq .L437 3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6679 .loc 1 3184 7 is_stmt 1 view .LVU2370 3184:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6680 .loc 1 3184 38 is_stmt 0 view .LVU2371 6681 0076 2C4A ldr r2, .L447+8 6682 0078 9A62 str r2, [r3, #40] 3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6683 .loc 1 3187 7 is_stmt 1 view .LVU2372 ARM GAS /tmp/ccJ8PJrU.s page 289 3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6684 .loc 1 3187 11 is_stmt 0 view .LVU2373 6685 007a E36B ldr r3, [r4, #60] 3187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6686 .loc 1 3187 39 view .LVU2374 6687 007c 2B4A ldr r2, .L447+12 6688 007e 1A63 str r2, [r3, #48] 3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6689 .loc 1 3190 7 is_stmt 1 view .LVU2375 3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6690 .loc 1 3190 11 is_stmt 0 view .LVU2376 6691 0080 E26B ldr r2, [r4, #60] 3190:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6692 .loc 1 3190 42 view .LVU2377 6693 0082 0023 movs r3, #0 6694 0084 D362 str r3, [r2, #44] 3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6695 .loc 1 3191 7 is_stmt 1 view .LVU2378 3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6696 .loc 1 3191 11 is_stmt 0 view .LVU2379 6697 0086 E26B ldr r2, [r4, #60] 3191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6698 .loc 1 3191 39 view .LVU2380 6699 0088 5363 str r3, [r2, #52] 3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 6700 .loc 1 3194 7 is_stmt 1 view .LVU2381 3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 6701 .loc 1 3194 69 is_stmt 0 view .LVU2382 6702 008a 2168 ldr r1, [r4] 3194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 6703 .loc 1 3194 23 view .LVU2383 6704 008c 238D ldrh r3, [r4, #40] 6705 008e 2A46 mov r2, r5 6706 0090 2431 adds r1, r1, #36 6707 0092 E06B ldr r0, [r4, #60] 6708 0094 FFF7FEFF bl HAL_DMA_Start_IT 6709 .LVL448: 3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6710 .loc 1 3212 5 is_stmt 1 view .LVU2384 3212:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6711 .loc 1 3212 8 is_stmt 0 view .LVU2385 6712 0098 0546 mov r5, r0 6713 009a 48B3 cbz r0, .L446 3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6714 .loc 1 3232 7 is_stmt 1 view .LVU2386 3232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6715 .loc 1 3232 23 is_stmt 0 view .LVU2387 6716 009c 2023 movs r3, #32 6717 009e 84F84130 strb r3, [r4, #65] 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6718 .loc 1 3233 7 is_stmt 1 view .LVU2388 3233:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6719 .loc 1 3233 23 is_stmt 0 view .LVU2389 6720 00a2 0022 movs r2, #0 6721 00a4 84F84220 strb r2, [r4, #66] 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6722 .loc 1 3236 7 is_stmt 1 view .LVU2390 ARM GAS /tmp/ccJ8PJrU.s page 290 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6723 .loc 1 3236 11 is_stmt 0 view .LVU2391 6724 00a8 636C ldr r3, [r4, #68] 3236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6725 .loc 1 3236 23 view .LVU2392 6726 00aa 43F01003 orr r3, r3, #16 6727 00ae 6364 str r3, [r4, #68] 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6728 .loc 1 3239 7 is_stmt 1 view .LVU2393 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6729 .loc 1 3239 7 view .LVU2394 6730 00b0 84F84020 strb r2, [r4, #64] 3239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6731 .loc 1 3239 7 view .LVU2395 3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6732 .loc 1 3241 7 view .LVU2396 3241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6733 .loc 1 3241 14 is_stmt 0 view .LVU2397 6734 00b4 0125 movs r5, #1 6735 00b6 2CE0 b .L430 6736 .LVL449: 6737 .L431: 3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6738 .loc 1 3130 7 is_stmt 1 view .LVU2398 3130:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 6739 .loc 1 3130 23 is_stmt 0 view .LVU2399 6740 00b8 4FF40073 mov r3, #512 6741 00bc 6364 str r3, [r4, #68] 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6742 .loc 1 3131 7 is_stmt 1 view .LVU2400 3131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6743 .loc 1 3131 15 is_stmt 0 view .LVU2401 6744 00be 0125 movs r5, #1 6745 00c0 27E0 b .L430 6746 .LVL450: 6747 .L433: 3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6748 .loc 1 3159 7 is_stmt 1 view .LVU2402 3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6749 .loc 1 3159 28 is_stmt 0 view .LVU2403 6750 00c2 638D ldrh r3, [r4, #42] 3159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6751 .loc 1 3159 22 view .LVU2404 6752 00c4 2385 strh r3, [r4, #40] @ movhi 6753 00c6 CDE7 b .L434 6754 .L445: 3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6755 .loc 1 3166 7 is_stmt 1 view .LVU2405 3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6756 .loc 1 3166 30 is_stmt 0 view .LVU2406 6757 00c8 D2B2 uxtb r2, r2 6758 .LVL451: 3166:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6759 .loc 1 3166 28 view .LVU2407 6760 00ca 8A62 str r2, [r1, #40] 3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6761 .loc 1 3169 7 is_stmt 1 view .LVU2408 ARM GAS /tmp/ccJ8PJrU.s page 291 3169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6762 .loc 1 3169 24 is_stmt 0 view .LVU2409 6763 00cc 4FF0FF33 mov r3, #-1 6764 00d0 2365 str r3, [r4, #80] 6765 00d2 CDE7 b .L436 6766 .L437: 3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6767 .loc 1 3200 7 is_stmt 1 view .LVU2410 3200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6768 .loc 1 3200 23 is_stmt 0 view .LVU2411 6769 00d4 2023 movs r3, #32 6770 00d6 84F84130 strb r3, [r4, #65] 3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6771 .loc 1 3201 7 is_stmt 1 view .LVU2412 3201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6772 .loc 1 3201 23 is_stmt 0 view .LVU2413 6773 00da 0022 movs r2, #0 6774 00dc 84F84220 strb r2, [r4, #66] 3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6775 .loc 1 3204 7 is_stmt 1 view .LVU2414 3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6776 .loc 1 3204 11 is_stmt 0 view .LVU2415 6777 00e0 636C ldr r3, [r4, #68] 3204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6778 .loc 1 3204 23 view .LVU2416 6779 00e2 43F08003 orr r3, r3, #128 6780 00e6 6364 str r3, [r4, #68] 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6781 .loc 1 3207 7 is_stmt 1 view .LVU2417 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6782 .loc 1 3207 7 view .LVU2418 6783 00e8 84F84020 strb r2, [r4, #64] 3207:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6784 .loc 1 3207 7 view .LVU2419 3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6785 .loc 1 3209 7 view .LVU2420 3209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6786 .loc 1 3209 14 is_stmt 0 view .LVU2421 6787 00ec 0125 movs r5, #1 6788 00ee 10E0 b .L430 6789 .LVL452: 6790 .L446: 3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6791 .loc 1 3215 7 is_stmt 1 view .LVU2422 6792 00f0 0F4B ldr r3, .L447+16 6793 00f2 0093 str r3, [sp] 6794 00f4 0023 movs r3, #0 6795 00f6 FAB2 uxtb r2, r7 6796 00f8 3146 mov r1, r6 6797 00fa 2046 mov r0, r4 6798 .LVL453: 3215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6799 .loc 1 3215 7 is_stmt 0 view .LVU2423 6800 00fc FFF7FEFF bl I2C_TransferConfig 6801 .LVL454: 3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6802 .loc 1 3218 7 is_stmt 1 view .LVU2424 ARM GAS /tmp/ccJ8PJrU.s page 292 3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6803 .loc 1 3218 7 view .LVU2425 6804 0100 0023 movs r3, #0 6805 0102 84F84030 strb r3, [r4, #64] 3218:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6806 .loc 1 3218 7 view .LVU2426 3227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6807 .loc 1 3227 7 view .LVU2427 6808 0106 0121 movs r1, #1 6809 0108 2046 mov r0, r4 6810 010a FFF7FEFF bl I2C_Enable_IRQ 6811 .LVL455: 3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6812 .loc 1 3244 5 view .LVU2428 3244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6813 .loc 1 3244 12 is_stmt 0 view .LVU2429 6814 010e 00E0 b .L430 6815 .LVL456: 6816 .L440: 3248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6817 .loc 1 3248 12 view .LVU2430 6818 0110 0225 movs r5, #2 6819 .LVL457: 6820 .L430: 3250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6821 .loc 1 3250 1 view .LVU2431 6822 0112 2846 mov r0, r5 6823 0114 03B0 add sp, sp, #12 6824 .cfi_remember_state 6825 .cfi_def_cfa_offset 20 6826 @ sp needed 6827 0116 F0BD pop {r4, r5, r6, r7, pc} 6828 .LVL458: 6829 .L441: 6830 .cfi_restore_state 3136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6831 .loc 1 3136 14 view .LVU2432 6832 0118 0225 movs r5, #2 6833 011a FAE7 b .L430 6834 .L442: 3140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6835 .loc 1 3140 5 discriminator 1 view .LVU2433 6836 011c 0225 movs r5, #2 6837 011e F8E7 b .L430 6838 .L448: 6839 .align 2 6840 .L447: 6841 0120 0000FFFF .word -65536 6842 0124 00000000 .word I2C_Mem_ISR_DMA 6843 0128 00000000 .word I2C_DMAMasterReceiveCplt 6844 012c 00000000 .word I2C_DMAError 6845 0130 00200080 .word -2147475456 6846 .cfi_endproc 6847 .LFE144: 6849 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits 6850 .align 1 6851 .global HAL_I2C_IsDeviceReady ARM GAS /tmp/ccJ8PJrU.s page 293 6852 .syntax unified 6853 .thumb 6854 .thumb_func 6856 HAL_I2C_IsDeviceReady: 6857 .LVL459: 6858 .LFB145: 3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 6859 .loc 1 3265 1 is_stmt 1 view -0 6860 .cfi_startproc 6861 @ args = 0, pretend = 0, frame = 8 6862 @ frame_needed = 0, uses_anonymous_args = 0 3265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tickstart; 6863 .loc 1 3265 1 is_stmt 0 view .LVU2435 6864 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 6865 .cfi_def_cfa_offset 28 6866 .cfi_offset 4, -28 6867 .cfi_offset 5, -24 6868 .cfi_offset 6, -20 6869 .cfi_offset 7, -16 6870 .cfi_offset 8, -12 6871 .cfi_offset 9, -8 6872 .cfi_offset 14, -4 6873 0004 85B0 sub sp, sp, #20 6874 .cfi_def_cfa_offset 48 6875 0006 1D46 mov r5, r3 3266:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6876 .loc 1 3266 3 is_stmt 1 view .LVU2436 3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6877 .loc 1 3268 3 view .LVU2437 3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6878 .loc 1 3268 17 is_stmt 0 view .LVU2438 6879 0008 0023 movs r3, #0 6880 .LVL460: 3268:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6881 .loc 1 3268 17 view .LVU2439 6882 000a 0393 str r3, [sp, #12] 3270:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** FlagStatus tmp2; 6883 .loc 1 3270 3 is_stmt 1 view .LVU2440 3271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6884 .loc 1 3271 3 view .LVU2441 3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6885 .loc 1 3273 3 view .LVU2442 3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6886 .loc 1 3273 11 is_stmt 0 view .LVU2443 6887 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6888 0010 DBB2 uxtb r3, r3 3273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6889 .loc 1 3273 6 view .LVU2444 6890 0012 202B cmp r3, #32 6891 0014 40F08980 bne .L460 6892 0018 0646 mov r6, r0 6893 001a 8846 mov r8, r1 6894 001c 9146 mov r9, r2 3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6895 .loc 1 3275 5 is_stmt 1 view .LVU2445 3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6896 .loc 1 3275 9 is_stmt 0 view .LVU2446 ARM GAS /tmp/ccJ8PJrU.s page 294 6897 001e 0368 ldr r3, [r0] 6898 0020 9B69 ldr r3, [r3, #24] 3275:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6899 .loc 1 3275 8 view .LVU2447 6900 0022 13F4004F tst r3, #32768 6901 0026 40F08280 bne .L461 3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6902 .loc 1 3281 5 is_stmt 1 view .LVU2448 3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6903 .loc 1 3281 5 view .LVU2449 6904 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 6905 002e 012B cmp r3, #1 6906 0030 7FD0 beq .L462 3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6907 .loc 1 3281 5 discriminator 2 view .LVU2450 6908 0032 0123 movs r3, #1 6909 0034 80F84030 strb r3, [r0, #64] 3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6910 .loc 1 3281 5 discriminator 2 view .LVU2451 3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6911 .loc 1 3283 5 view .LVU2452 3283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6912 .loc 1 3283 17 is_stmt 0 view .LVU2453 6913 0038 2423 movs r3, #36 6914 003a 80F84130 strb r3, [r0, #65] 3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6915 .loc 1 3284 5 is_stmt 1 view .LVU2454 3284:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6916 .loc 1 3284 21 is_stmt 0 view .LVU2455 6917 003e 0023 movs r3, #0 6918 0040 4364 str r3, [r0, #68] 6919 0042 41E0 b .L459 6920 .LVL461: 6921 .L468: 3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6922 .loc 1 3289 29 discriminator 1 view .LVU2456 6923 0044 C8F30903 ubfx r3, r8, #0, #10 6924 0048 43F00073 orr r3, r3, #33554432 6925 004c 43F40053 orr r3, r3, #8192 6926 0050 43E0 b .L452 6927 .LVL462: 6928 .L454: 3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6929 .loc 1 3317 9 is_stmt 1 view .LVU2457 3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6930 .loc 1 3317 16 is_stmt 0 view .LVU2458 6931 0052 3368 ldr r3, [r6] 6932 0054 9C69 ldr r4, [r3, #24] 6933 .LVL463: 3317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6934 .loc 1 3317 16 view .LVU2459 6935 0056 C4F34014 ubfx r4, r4, #5, #1 6936 .LVL464: 3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6937 .loc 1 3318 9 is_stmt 1 view .LVU2460 3318:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6938 .loc 1 3318 16 is_stmt 0 view .LVU2461 ARM GAS /tmp/ccJ8PJrU.s page 295 6939 005a 9B69 ldr r3, [r3, #24] 6940 005c C3F30013 ubfx r3, r3, #4, #1 6941 .LVL465: 6942 .L453: 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6943 .loc 1 3298 30 is_stmt 1 view .LVU2462 6944 0060 C4B9 cbnz r4, .L456 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6945 .loc 1 3298 30 is_stmt 0 discriminator 1 view .LVU2463 6946 0062 BBB9 cbnz r3, .L456 3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6947 .loc 1 3300 9 is_stmt 1 view .LVU2464 3300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6948 .loc 1 3300 12 is_stmt 0 view .LVU2465 6949 0064 B5F1FF3F cmp r5, #-1 6950 0068 F3D0 beq .L454 3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6951 .loc 1 3302 11 is_stmt 1 view .LVU2466 3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6952 .loc 1 3302 17 is_stmt 0 view .LVU2467 6953 006a FFF7FEFF bl HAL_GetTick 6954 .LVL466: 3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6955 .loc 1 3302 31 discriminator 1 view .LVU2468 6956 006e C01B subs r0, r0, r7 3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6957 .loc 1 3302 14 discriminator 1 view .LVU2469 6958 0070 A842 cmp r0, r5 6959 0072 01D8 bhi .L455 3302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6960 .loc 1 3302 55 discriminator 1 view .LVU2470 6961 0074 002D cmp r5, #0 6962 0076 ECD1 bne .L454 6963 .L455: 3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6964 .loc 1 3305 13 is_stmt 1 view .LVU2471 3305:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6965 .loc 1 3305 25 is_stmt 0 view .LVU2472 6966 0078 2023 movs r3, #32 6967 007a 86F84130 strb r3, [r6, #65] 3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6968 .loc 1 3308 13 is_stmt 1 view .LVU2473 3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6969 .loc 1 3308 17 is_stmt 0 view .LVU2474 6970 007e 736C ldr r3, [r6, #68] 3308:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6971 .loc 1 3308 29 view .LVU2475 6972 0080 43F02003 orr r3, r3, #32 6973 0084 7364 str r3, [r6, #68] 3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6974 .loc 1 3311 13 is_stmt 1 view .LVU2476 3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6975 .loc 1 3311 13 view .LVU2477 6976 0086 0023 movs r3, #0 6977 0088 86F84030 strb r3, [r6, #64] 3311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6978 .loc 1 3311 13 view .LVU2478 ARM GAS /tmp/ccJ8PJrU.s page 296 3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6979 .loc 1 3313 13 view .LVU2479 3313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 6980 .loc 1 3313 20 is_stmt 0 view .LVU2480 6981 008c 0120 movs r0, #1 6982 .LVL467: 6983 .L450: 3375:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 6984 .loc 1 3375 1 view .LVU2481 6985 008e 05B0 add sp, sp, #20 6986 .cfi_remember_state 6987 .cfi_def_cfa_offset 28 6988 @ sp needed 6989 0090 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 6990 .LVL468: 6991 .L456: 6992 .cfi_restore_state 3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6993 .loc 1 3322 7 is_stmt 1 view .LVU2482 3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6994 .loc 1 3322 11 is_stmt 0 view .LVU2483 6995 0094 3368 ldr r3, [r6] 6996 .LVL469: 3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6997 .loc 1 3322 11 view .LVU2484 6998 0096 9B69 ldr r3, [r3, #24] 3322:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 6999 .loc 1 3322 10 view .LVU2485 7000 0098 13F0100F tst r3, #16 7001 009c 2AD0 beq .L466 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7002 .loc 1 3344 9 is_stmt 1 view .LVU2486 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7003 .loc 1 3344 13 is_stmt 0 view .LVU2487 7004 009e 0097 str r7, [sp] 7005 00a0 2B46 mov r3, r5 7006 00a2 0022 movs r2, #0 7007 00a4 2021 movs r1, #32 7008 00a6 3046 mov r0, r6 7009 00a8 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7010 .LVL470: 3344:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7011 .loc 1 3344 12 discriminator 1 view .LVU2488 7012 00ac 0028 cmp r0, #0 7013 00ae 44D1 bne .L464 3350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7014 .loc 1 3350 9 is_stmt 1 view .LVU2489 7015 00b0 3368 ldr r3, [r6] 7016 00b2 1022 movs r2, #16 7017 00b4 DA61 str r2, [r3, #28] 3353:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7018 .loc 1 3353 9 view .LVU2490 7019 00b6 3368 ldr r3, [r6] 7020 00b8 2022 movs r2, #32 7021 00ba DA61 str r2, [r3, #28] 3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7022 .loc 1 3357 7 view .LVU2491 ARM GAS /tmp/ccJ8PJrU.s page 297 3357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7023 .loc 1 3357 17 is_stmt 0 view .LVU2492 7024 00bc 039B ldr r3, [sp, #12] 7025 00be 0133 adds r3, r3, #1 7026 00c0 0393 str r3, [sp, #12] 3358:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7027 .loc 1 3358 25 is_stmt 1 view .LVU2493 7028 00c2 039B ldr r3, [sp, #12] 7029 00c4 4B45 cmp r3, r9 7030 00c6 26D2 bcs .L467 7031 .LVL471: 7032 .L459: 3286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7033 .loc 1 3286 5 view .LVU2494 3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7034 .loc 1 3289 7 view .LVU2495 3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7035 .loc 1 3289 29 is_stmt 0 view .LVU2496 7036 00c8 F368 ldr r3, [r6, #12] 7037 00ca 012B cmp r3, #1 7038 00cc BAD0 beq .L468 3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7039 .loc 1 3289 29 discriminator 2 view .LVU2497 7040 00ce C8F30903 ubfx r3, r8, #0, #10 7041 00d2 43F00073 orr r3, r3, #33554432 7042 00d6 43F42053 orr r3, r3, #10240 7043 .L452: 3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7044 .loc 1 3289 11 discriminator 4 view .LVU2498 7045 00da 3268 ldr r2, [r6] 3289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7046 .loc 1 3289 27 discriminator 4 view .LVU2499 7047 00dc 5360 str r3, [r2, #4] 3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7048 .loc 1 3293 7 is_stmt 1 view .LVU2500 3293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7049 .loc 1 3293 19 is_stmt 0 view .LVU2501 7050 00de FFF7FEFF bl HAL_GetTick 7051 .LVL472: 7052 00e2 0746 mov r7, r0 7053 .LVL473: 3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7054 .loc 1 3295 7 is_stmt 1 view .LVU2502 3295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7055 .loc 1 3295 14 is_stmt 0 view .LVU2503 7056 00e4 3368 ldr r3, [r6] 7057 00e6 9C69 ldr r4, [r3, #24] 7058 00e8 C4F34014 ubfx r4, r4, #5, #1 7059 .LVL474: 3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7060 .loc 1 3296 7 is_stmt 1 view .LVU2504 3296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7061 .loc 1 3296 14 is_stmt 0 view .LVU2505 7062 00ec 9B69 ldr r3, [r3, #24] 7063 00ee C3F30013 ubfx r3, r3, #4, #1 7064 .LVL475: 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 298 7065 .loc 1 3298 7 is_stmt 1 view .LVU2506 3298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7066 .loc 1 3298 13 is_stmt 0 view .LVU2507 7067 00f2 B5E7 b .L453 7068 .LVL476: 7069 .L466: 3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7070 .loc 1 3325 9 is_stmt 1 view .LVU2508 3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7071 .loc 1 3325 13 is_stmt 0 view .LVU2509 7072 00f4 0097 str r7, [sp] 7073 00f6 2B46 mov r3, r5 7074 00f8 0022 movs r2, #0 7075 00fa 2021 movs r1, #32 7076 00fc 3046 mov r0, r6 7077 00fe FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7078 .LVL477: 3325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7079 .loc 1 3325 12 discriminator 1 view .LVU2510 7080 0102 C0B9 cbnz r0, .L463 3331:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7081 .loc 1 3331 9 is_stmt 1 view .LVU2511 7082 0104 3268 ldr r2, [r6] 7083 0106 2023 movs r3, #32 7084 0108 D361 str r3, [r2, #28] 3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7085 .loc 1 3334 9 view .LVU2512 3334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7086 .loc 1 3334 21 is_stmt 0 view .LVU2513 7087 010a 86F84130 strb r3, [r6, #65] 3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7088 .loc 1 3337 9 is_stmt 1 view .LVU2514 3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7089 .loc 1 3337 9 view .LVU2515 7090 010e 0023 movs r3, #0 7091 0110 86F84030 strb r3, [r6, #64] 3337:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7092 .loc 1 3337 9 view .LVU2516 3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7093 .loc 1 3339 9 view .LVU2517 3339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7094 .loc 1 3339 16 is_stmt 0 view .LVU2518 7095 0114 BBE7 b .L450 7096 .L467: 3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7097 .loc 1 3361 5 is_stmt 1 view .LVU2519 3361:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7098 .loc 1 3361 17 is_stmt 0 view .LVU2520 7099 0116 86F84120 strb r2, [r6, #65] 3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7100 .loc 1 3364 5 is_stmt 1 view .LVU2521 3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7101 .loc 1 3364 9 is_stmt 0 view .LVU2522 7102 011a 736C ldr r3, [r6, #68] 3364:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7103 .loc 1 3364 21 view .LVU2523 7104 011c 1343 orrs r3, r3, r2 ARM GAS /tmp/ccJ8PJrU.s page 299 7105 011e 7364 str r3, [r6, #68] 3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7106 .loc 1 3367 5 is_stmt 1 view .LVU2524 3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7107 .loc 1 3367 5 view .LVU2525 7108 0120 0023 movs r3, #0 7109 0122 86F84030 strb r3, [r6, #64] 3367:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7110 .loc 1 3367 5 view .LVU2526 3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7111 .loc 1 3369 5 view .LVU2527 3369:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7112 .loc 1 3369 12 is_stmt 0 view .LVU2528 7113 0126 0120 movs r0, #1 7114 0128 B1E7 b .L450 7115 .LVL478: 7116 .L460: 3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7117 .loc 1 3373 12 view .LVU2529 7118 012a 0220 movs r0, #2 7119 .LVL479: 3373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7120 .loc 1 3373 12 view .LVU2530 7121 012c AFE7 b .L450 7122 .LVL480: 7123 .L461: 3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7124 .loc 1 3277 14 view .LVU2531 7125 012e 0220 movs r0, #2 7126 .LVL481: 3277:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7127 .loc 1 3277 14 view .LVU2532 7128 0130 ADE7 b .L450 7129 .LVL482: 7130 .L462: 3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7131 .loc 1 3281 5 discriminator 1 view .LVU2533 7132 0132 0220 movs r0, #2 7133 .LVL483: 3281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7134 .loc 1 3281 5 discriminator 1 view .LVU2534 7135 0134 ABE7 b .L450 7136 .LVL484: 7137 .L463: 3327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7138 .loc 1 3327 18 view .LVU2535 7139 0136 0120 movs r0, #1 7140 0138 A9E7 b .L450 7141 .L464: 3346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7142 .loc 1 3346 18 view .LVU2536 7143 013a 0120 movs r0, #1 7144 013c A7E7 b .L450 7145 .cfi_endproc 7146 .LFE145: 7148 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits 7149 .align 1 ARM GAS /tmp/ccJ8PJrU.s page 300 7150 .global HAL_I2C_Master_Seq_Transmit_IT 7151 .syntax unified 7152 .thumb 7153 .thumb_func 7155 HAL_I2C_Master_Seq_Transmit_IT: 7156 .LVL485: 7157 .LFB146: 3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 7158 .loc 1 3391 1 is_stmt 1 view -0 7159 .cfi_startproc 7160 @ args = 4, pretend = 0, frame = 0 7161 @ frame_needed = 0, uses_anonymous_args = 0 3391:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 7162 .loc 1 3391 1 is_stmt 0 view .LVU2538 7163 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 7164 .cfi_def_cfa_offset 24 7165 .cfi_offset 4, -24 7166 .cfi_offset 5, -20 7167 .cfi_offset 6, -16 7168 .cfi_offset 7, -12 7169 .cfi_offset 8, -8 7170 .cfi_offset 14, -4 7171 0004 82B0 sub sp, sp, #8 7172 .cfi_def_cfa_offset 32 7173 0006 0446 mov r4, r0 7174 0008 089E ldr r6, [sp, #32] 3392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7175 .loc 1 3392 3 is_stmt 1 view .LVU2539 3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7176 .loc 1 3393 3 view .LVU2540 7177 .LVL486: 3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7178 .loc 1 3394 3 view .LVU2541 3397:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7179 .loc 1 3397 3 view .LVU2542 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7180 .loc 1 3399 3 view .LVU2543 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7181 .loc 1 3399 11 is_stmt 0 view .LVU2544 7182 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7183 .LVL487: 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7184 .loc 1 3399 11 view .LVU2545 7185 000e C0B2 uxtb r0, r0 3399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7186 .loc 1 3399 6 view .LVU2546 7187 0010 2028 cmp r0, #32 7188 0012 71D1 bne .L480 7189 0014 0D46 mov r5, r1 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7190 .loc 1 3402 5 is_stmt 1 view .LVU2547 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7191 .loc 1 3402 5 view .LVU2548 7192 0016 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7193 .LVL488: 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7194 .loc 1 3402 5 is_stmt 0 view .LVU2549 ARM GAS /tmp/ccJ8PJrU.s page 301 7195 001a 0129 cmp r1, #1 7196 001c 6ED0 beq .L481 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7197 .loc 1 3402 5 is_stmt 1 discriminator 2 view .LVU2550 7198 001e 0121 movs r1, #1 7199 0020 84F84010 strb r1, [r4, #64] 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7200 .loc 1 3402 5 discriminator 2 view .LVU2551 3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7201 .loc 1 3404 5 view .LVU2552 3404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7202 .loc 1 3404 21 is_stmt 0 view .LVU2553 7203 0024 2121 movs r1, #33 7204 0026 84F84110 strb r1, [r4, #65] 3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7205 .loc 1 3405 5 is_stmt 1 view .LVU2554 3405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7206 .loc 1 3405 21 is_stmt 0 view .LVU2555 7207 002a 1021 movs r1, #16 7208 002c 84F84210 strb r1, [r4, #66] 3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7209 .loc 1 3406 5 is_stmt 1 view .LVU2556 3406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7210 .loc 1 3406 21 is_stmt 0 view .LVU2557 7211 0030 0021 movs r1, #0 7212 0032 6164 str r1, [r4, #68] 3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 7213 .loc 1 3409 5 is_stmt 1 view .LVU2558 3409:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 7214 .loc 1 3409 23 is_stmt 0 view .LVU2559 7215 0034 6262 str r2, [r4, #36] 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7216 .loc 1 3410 5 is_stmt 1 view .LVU2560 3410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7217 .loc 1 3410 23 is_stmt 0 view .LVU2561 7218 0036 6385 strh r3, [r4, #42] @ movhi 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7219 .loc 1 3411 5 is_stmt 1 view .LVU2562 3411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7220 .loc 1 3411 23 is_stmt 0 view .LVU2563 7221 0038 E662 str r6, [r4, #44] 3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7222 .loc 1 3412 5 is_stmt 1 view .LVU2564 3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7223 .loc 1 3412 23 is_stmt 0 view .LVU2565 7224 003a 314B ldr r3, .L487 7225 .LVL489: 3412:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7226 .loc 1 3412 23 view .LVU2566 7227 003c 6363 str r3, [r4, #52] 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7228 .loc 1 3415 5 is_stmt 1 view .LVU2567 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7229 .loc 1 3415 13 is_stmt 0 view .LVU2568 7230 003e 638D ldrh r3, [r4, #42] 7231 0040 9BB2 uxth r3, r3 3415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 302 7232 .loc 1 3415 8 view .LVU2569 7233 0042 FF2B cmp r3, #255 7234 0044 0CD9 bls .L471 3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7235 .loc 1 3417 7 is_stmt 1 view .LVU2570 3417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7236 .loc 1 3417 22 is_stmt 0 view .LVU2571 7237 0046 FF23 movs r3, #255 7238 0048 2385 strh r3, [r4, #40] @ movhi 3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7239 .loc 1 3418 7 is_stmt 1 view .LVU2572 7240 .LVL490: 3418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7241 .loc 1 3418 16 is_stmt 0 view .LVU2573 7242 004a 4FF08077 mov r7, #16777216 7243 .LVL491: 7244 .L472: 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7245 .loc 1 3426 5 is_stmt 1 view .LVU2574 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7246 .loc 1 3426 14 is_stmt 0 view .LVU2575 7247 004e 238D ldrh r3, [r4, #40] 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7248 .loc 1 3426 8 view .LVU2576 7249 0050 DBB1 cbz r3, .L482 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7250 .loc 1 3426 31 discriminator 1 view .LVU2577 7251 0052 4EB1 cbz r6, .L474 3426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7252 .loc 1 3426 68 discriminator 2 view .LVU2578 7253 0054 B6F1007F cmp r6, #33554432 7254 0058 06D0 beq .L474 3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7255 .loc 1 3394 12 view .LVU2579 7256 005a 4FF00008 mov r8, #0 7257 005e 16E0 b .L473 7258 .LVL492: 7259 .L471: 3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7260 .loc 1 3422 7 is_stmt 1 view .LVU2580 3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7261 .loc 1 3422 28 is_stmt 0 view .LVU2581 7262 0060 638D ldrh r3, [r4, #42] 3422:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7263 .loc 1 3422 22 view .LVU2582 7264 0062 2385 strh r3, [r4, #40] @ movhi 3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7265 .loc 1 3423 7 is_stmt 1 view .LVU2583 3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7266 .loc 1 3423 16 is_stmt 0 view .LVU2584 7267 0064 E76A ldr r7, [r4, #44] 7268 .LVL493: 3423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7269 .loc 1 3423 16 view .LVU2585 7270 0066 F2E7 b .L472 7271 .L474: 3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 303 7272 .loc 1 3431 7 is_stmt 1 view .LVU2586 3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7273 .loc 1 3431 11 is_stmt 0 view .LVU2587 7274 0068 2368 ldr r3, [r4] 3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7275 .loc 1 3431 30 view .LVU2588 7276 006a 1278 ldrb r2, [r2] @ zero_extendqisi2 7277 .LVL494: 3431:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7278 .loc 1 3431 28 view .LVU2589 7279 006c 9A62 str r2, [r3, #40] 7280 .LVL495: 3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7281 .loc 1 3434 7 is_stmt 1 view .LVU2590 3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7282 .loc 1 3434 11 is_stmt 0 view .LVU2591 7283 006e 636A ldr r3, [r4, #36] 3434:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7284 .loc 1 3434 21 view .LVU2592 7285 0070 0133 adds r3, r3, #1 7286 0072 6362 str r3, [r4, #36] 3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 7287 .loc 1 3436 7 is_stmt 1 view .LVU2593 3436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 7288 .loc 1 3436 24 is_stmt 0 view .LVU2594 7289 0074 B4F82880 ldrh r8, [r4, #40] 7290 .LVL496: 3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 7291 .loc 1 3437 7 is_stmt 1 view .LVU2595 3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 7292 .loc 1 3437 11 is_stmt 0 view .LVU2596 7293 0078 638D ldrh r3, [r4, #42] 7294 007a 9BB2 uxth r3, r3 3437:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 7295 .loc 1 3437 22 view .LVU2597 7296 007c 013B subs r3, r3, #1 7297 007e 9BB2 uxth r3, r3 7298 0080 6385 strh r3, [r4, #42] @ movhi 3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7299 .loc 1 3438 7 is_stmt 1 view .LVU2598 3438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7300 .loc 1 3438 21 is_stmt 0 view .LVU2599 7301 0082 08F1FF33 add r3, r8, #-1 7302 0086 2385 strh r3, [r4, #40] @ movhi 7303 0088 01E0 b .L473 7304 .LVL497: 7305 .L482: 3394:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7306 .loc 1 3394 12 view .LVU2600 7307 008a 4FF00008 mov r8, #0 7308 .LVL498: 7309 .L473: 3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7310 .loc 1 3444 5 is_stmt 1 view .LVU2601 3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7311 .loc 1 3444 14 is_stmt 0 view .LVU2602 7312 008e 236B ldr r3, [r4, #48] ARM GAS /tmp/ccJ8PJrU.s page 304 3444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7313 .loc 1 3444 8 view .LVU2603 7314 0090 112B cmp r3, #17 7315 0092 06D1 bne .L475 3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7316 .loc 1 3445 10 view .LVU2604 7317 0094 AA2E cmp r6, #170 7318 0096 04D0 beq .L475 3445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7319 .loc 1 3445 10 discriminator 2 view .LVU2605 7320 0098 B6F52A4F cmp r6, #43520 7321 009c 01D0 beq .L475 3447:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7322 .loc 1 3447 19 view .LVU2606 7323 009e 0023 movs r3, #0 7324 00a0 08E0 b .L476 7325 .L475: 3452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7326 .loc 1 3452 7 is_stmt 1 view .LVU2607 7327 00a2 2046 mov r0, r4 7328 00a4 FFF7FEFF bl I2C_ConvertOtherXferOptions 7329 .LVL499: 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7330 .loc 1 3455 7 view .LVU2608 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7331 .loc 1 3455 15 is_stmt 0 view .LVU2609 7332 00a8 638D ldrh r3, [r4, #42] 7333 00aa 9BB2 uxth r3, r3 3455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7334 .loc 1 3455 10 view .LVU2610 7335 00ac FF2B cmp r3, #255 7336 00ae 18D8 bhi .L485 3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7337 .loc 1 3457 9 is_stmt 1 view .LVU2611 3457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7338 .loc 1 3457 18 is_stmt 0 view .LVU2612 7339 00b0 E76A ldr r7, [r4, #44] 7340 .LVL500: 3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7341 .loc 1 3393 12 view .LVU2613 7342 00b2 144B ldr r3, .L487+4 7343 .L476: 7344 .LVL501: 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7345 .loc 1 3462 5 is_stmt 1 view .LVU2614 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7346 .loc 1 3462 8 is_stmt 0 view .LVU2615 7347 00b4 16B1 cbz r6, .L477 3462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7348 .loc 1 3462 42 discriminator 1 view .LVU2616 7349 00b6 B6F1007F cmp r6, #33554432 7350 00ba 14D1 bne .L478 7351 .L477: 3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7352 .loc 1 3464 7 is_stmt 1 view .LVU2617 7353 00bc 0093 str r3, [sp] 7354 00be 3B46 mov r3, r7 ARM GAS /tmp/ccJ8PJrU.s page 305 7355 .LVL502: 3464:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7356 .loc 1 3464 7 is_stmt 0 view .LVU2618 7357 00c0 5FFA88F2 uxtb r2, r8 7358 00c4 2946 mov r1, r5 7359 00c6 2046 mov r0, r4 7360 00c8 FFF7FEFF bl I2C_TransferConfig 7361 .LVL503: 7362 .L479: 3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7363 .loc 1 3472 5 is_stmt 1 view .LVU2619 3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7364 .loc 1 3472 5 view .LVU2620 7365 00cc 0025 movs r5, #0 7366 .LVL504: 3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7367 .loc 1 3472 5 is_stmt 0 view .LVU2621 7368 00ce 84F84050 strb r5, [r4, #64] 3472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7369 .loc 1 3472 5 is_stmt 1 view .LVU2622 3481:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7370 .loc 1 3481 5 view .LVU2623 7371 00d2 0121 movs r1, #1 7372 00d4 2046 mov r0, r4 7373 00d6 FFF7FEFF bl I2C_Enable_IRQ 7374 .LVL505: 3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7375 .loc 1 3483 5 view .LVU2624 3483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7376 .loc 1 3483 12 is_stmt 0 view .LVU2625 7377 00da 2846 mov r0, r5 7378 .LVL506: 7379 .L470: 3489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7380 .loc 1 3489 1 view .LVU2626 7381 00dc 02B0 add sp, sp, #8 7382 .cfi_remember_state 7383 .cfi_def_cfa_offset 24 7384 @ sp needed 7385 00de BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7386 .LVL507: 7387 .L485: 7388 .cfi_restore_state 3393:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7389 .loc 1 3393 12 view .LVU2627 7390 00e2 084B ldr r3, .L487+4 7391 00e4 E6E7 b .L476 7392 .LVL508: 7393 .L478: 3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7394 .loc 1 3468 7 is_stmt 1 view .LVU2628 7395 00e6 0093 str r3, [sp] 7396 00e8 3B46 mov r3, r7 7397 .LVL509: 3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7398 .loc 1 3468 7 is_stmt 0 view .LVU2629 7399 00ea 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 ARM GAS /tmp/ccJ8PJrU.s page 306 7400 00ee 2946 mov r1, r5 7401 00f0 2046 mov r0, r4 7402 00f2 FFF7FEFF bl I2C_TransferConfig 7403 .LVL510: 3468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7404 .loc 1 3468 7 view .LVU2630 7405 00f6 E9E7 b .L479 7406 .LVL511: 7407 .L480: 3487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7408 .loc 1 3487 12 view .LVU2631 7409 00f8 0220 movs r0, #2 7410 00fa EFE7 b .L470 7411 .LVL512: 7412 .L481: 3402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7413 .loc 1 3402 5 discriminator 1 view .LVU2632 7414 00fc 0220 movs r0, #2 7415 00fe EDE7 b .L470 7416 .L488: 7417 .align 2 7418 .L487: 7419 0100 00000000 .word I2C_Master_ISR_IT 7420 0104 00200080 .word -2147475456 7421 .cfi_endproc 7422 .LFE146: 7424 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits 7425 .align 1 7426 .global HAL_I2C_Master_Seq_Transmit_DMA 7427 .syntax unified 7428 .thumb 7429 .thumb_func 7431 HAL_I2C_Master_Seq_Transmit_DMA: 7432 .LVL513: 7433 .LFB147: 3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 7434 .loc 1 3505 1 is_stmt 1 view -0 7435 .cfi_startproc 7436 @ args = 4, pretend = 0, frame = 0 7437 @ frame_needed = 0, uses_anonymous_args = 0 3505:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 7438 .loc 1 3505 1 is_stmt 0 view .LVU2634 7439 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 7440 .cfi_def_cfa_offset 28 7441 .cfi_offset 4, -28 7442 .cfi_offset 5, -24 7443 .cfi_offset 6, -20 7444 .cfi_offset 7, -16 7445 .cfi_offset 8, -12 7446 .cfi_offset 9, -8 7447 .cfi_offset 14, -4 7448 0004 83B0 sub sp, sp, #12 7449 .cfi_def_cfa_offset 40 7450 0006 0446 mov r4, r0 7451 0008 0A9E ldr r6, [sp, #40] 3506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7452 .loc 1 3506 3 is_stmt 1 view .LVU2635 ARM GAS /tmp/ccJ8PJrU.s page 307 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7453 .loc 1 3507 3 view .LVU2636 7454 .LVL514: 3508:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7455 .loc 1 3508 3 view .LVU2637 3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7456 .loc 1 3509 3 view .LVU2638 3512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7457 .loc 1 3512 3 view .LVU2639 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7458 .loc 1 3514 3 view .LVU2640 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7459 .loc 1 3514 11 is_stmt 0 view .LVU2641 7460 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7461 .LVL515: 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7462 .loc 1 3514 11 view .LVU2642 7463 000e C0B2 uxtb r0, r0 3514:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7464 .loc 1 3514 6 view .LVU2643 7465 0010 2028 cmp r0, #32 7466 0012 40F0D480 bne .L508 7467 0016 0D46 mov r5, r1 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7468 .loc 1 3517 5 is_stmt 1 view .LVU2644 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7469 .loc 1 3517 5 view .LVU2645 7470 0018 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7471 .LVL516: 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7472 .loc 1 3517 5 is_stmt 0 view .LVU2646 7473 001c 0129 cmp r1, #1 7474 001e 00F0D280 beq .L509 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7475 .loc 1 3517 5 is_stmt 1 discriminator 2 view .LVU2647 7476 0022 0121 movs r1, #1 7477 0024 84F84010 strb r1, [r4, #64] 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7478 .loc 1 3517 5 discriminator 2 view .LVU2648 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7479 .loc 1 3519 5 view .LVU2649 3519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7480 .loc 1 3519 21 is_stmt 0 view .LVU2650 7481 0028 2121 movs r1, #33 7482 002a 84F84110 strb r1, [r4, #65] 3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7483 .loc 1 3520 5 is_stmt 1 view .LVU2651 3520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7484 .loc 1 3520 21 is_stmt 0 view .LVU2652 7485 002e 1021 movs r1, #16 7486 0030 84F84210 strb r1, [r4, #66] 3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7487 .loc 1 3521 5 is_stmt 1 view .LVU2653 3521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7488 .loc 1 3521 21 is_stmt 0 view .LVU2654 7489 0034 0021 movs r1, #0 7490 0036 6164 str r1, [r4, #68] ARM GAS /tmp/ccJ8PJrU.s page 308 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 7491 .loc 1 3524 5 is_stmt 1 view .LVU2655 3524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 7492 .loc 1 3524 23 is_stmt 0 view .LVU2656 7493 0038 6262 str r2, [r4, #36] 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7494 .loc 1 3525 5 is_stmt 1 view .LVU2657 3525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7495 .loc 1 3525 23 is_stmt 0 view .LVU2658 7496 003a 6385 strh r3, [r4, #42] @ movhi 3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7497 .loc 1 3526 5 is_stmt 1 view .LVU2659 3526:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7498 .loc 1 3526 23 is_stmt 0 view .LVU2660 7499 003c E662 str r6, [r4, #44] 3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7500 .loc 1 3527 5 is_stmt 1 view .LVU2661 3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7501 .loc 1 3527 23 is_stmt 0 view .LVU2662 7502 003e 634B ldr r3, .L516 7503 .LVL517: 3527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7504 .loc 1 3527 23 view .LVU2663 7505 0040 6363 str r3, [r4, #52] 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7506 .loc 1 3530 5 is_stmt 1 view .LVU2664 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7507 .loc 1 3530 13 is_stmt 0 view .LVU2665 7508 0042 638D ldrh r3, [r4, #42] 7509 0044 9BB2 uxth r3, r3 3530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7510 .loc 1 3530 8 view .LVU2666 7511 0046 FF2B cmp r3, #255 7512 0048 0CD9 bls .L491 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7513 .loc 1 3532 7 is_stmt 1 view .LVU2667 3532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7514 .loc 1 3532 22 is_stmt 0 view .LVU2668 7515 004a FF23 movs r3, #255 7516 004c 2385 strh r3, [r4, #40] @ movhi 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7517 .loc 1 3533 7 is_stmt 1 view .LVU2669 7518 .LVL518: 3533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7519 .loc 1 3533 16 is_stmt 0 view .LVU2670 7520 004e 4FF08077 mov r7, #16777216 7521 .LVL519: 7522 .L492: 3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7523 .loc 1 3541 5 is_stmt 1 view .LVU2671 3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7524 .loc 1 3541 14 is_stmt 0 view .LVU2672 7525 0052 238D ldrh r3, [r4, #40] 3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7526 .loc 1 3541 8 view .LVU2673 7527 0054 DBB1 cbz r3, .L510 3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) ARM GAS /tmp/ccJ8PJrU.s page 309 7528 .loc 1 3541 31 discriminator 1 view .LVU2674 7529 0056 4EB1 cbz r6, .L494 3541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7530 .loc 1 3541 68 discriminator 2 view .LVU2675 7531 0058 B6F1007F cmp r6, #33554432 7532 005c 06D0 beq .L494 3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7533 .loc 1 3509 12 view .LVU2676 7534 005e 4FF00008 mov r8, #0 7535 0062 16E0 b .L493 7536 .LVL520: 7537 .L491: 3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7538 .loc 1 3537 7 is_stmt 1 view .LVU2677 3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7539 .loc 1 3537 28 is_stmt 0 view .LVU2678 7540 0064 638D ldrh r3, [r4, #42] 3537:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7541 .loc 1 3537 22 view .LVU2679 7542 0066 2385 strh r3, [r4, #40] @ movhi 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7543 .loc 1 3538 7 is_stmt 1 view .LVU2680 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7544 .loc 1 3538 16 is_stmt 0 view .LVU2681 7545 0068 E76A ldr r7, [r4, #44] 7546 .LVL521: 3538:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7547 .loc 1 3538 16 view .LVU2682 7548 006a F2E7 b .L492 7549 .L494: 3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7550 .loc 1 3546 7 is_stmt 1 view .LVU2683 3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7551 .loc 1 3546 11 is_stmt 0 view .LVU2684 7552 006c 2368 ldr r3, [r4] 3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7553 .loc 1 3546 30 view .LVU2685 7554 006e 1278 ldrb r2, [r2] @ zero_extendqisi2 7555 .LVL522: 3546:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7556 .loc 1 3546 28 view .LVU2686 7557 0070 9A62 str r2, [r3, #40] 7558 .LVL523: 3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7559 .loc 1 3549 7 is_stmt 1 view .LVU2687 3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7560 .loc 1 3549 11 is_stmt 0 view .LVU2688 7561 0072 636A ldr r3, [r4, #36] 3549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7562 .loc 1 3549 21 view .LVU2689 7563 0074 0133 adds r3, r3, #1 7564 0076 6362 str r3, [r4, #36] 3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 7565 .loc 1 3551 7 is_stmt 1 view .LVU2690 3551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 7566 .loc 1 3551 24 is_stmt 0 view .LVU2691 7567 0078 B4F82880 ldrh r8, [r4, #40] ARM GAS /tmp/ccJ8PJrU.s page 310 7568 .LVL524: 3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 7569 .loc 1 3552 7 is_stmt 1 view .LVU2692 3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 7570 .loc 1 3552 11 is_stmt 0 view .LVU2693 7571 007c 638D ldrh r3, [r4, #42] 7572 007e 9BB2 uxth r3, r3 3552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 7573 .loc 1 3552 22 view .LVU2694 7574 0080 013B subs r3, r3, #1 7575 0082 9BB2 uxth r3, r3 7576 0084 6385 strh r3, [r4, #42] @ movhi 3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7577 .loc 1 3553 7 is_stmt 1 view .LVU2695 3553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7578 .loc 1 3553 21 is_stmt 0 view .LVU2696 7579 0086 08F1FF33 add r3, r8, #-1 7580 008a 2385 strh r3, [r4, #40] @ movhi 7581 008c 01E0 b .L493 7582 .LVL525: 7583 .L510: 3509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7584 .loc 1 3509 12 view .LVU2697 7585 008e 4FF00008 mov r8, #0 7586 .LVL526: 7587 .L493: 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7588 .loc 1 3559 5 is_stmt 1 view .LVU2698 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7589 .loc 1 3559 14 is_stmt 0 view .LVU2699 7590 0092 236B ldr r3, [r4, #48] 3559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7591 .loc 1 3559 8 view .LVU2700 7592 0094 112B cmp r3, #17 7593 0096 07D1 bne .L495 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7594 .loc 1 3560 10 view .LVU2701 7595 0098 AA2E cmp r6, #170 7596 009a 05D0 beq .L495 3560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7597 .loc 1 3560 10 discriminator 2 view .LVU2702 7598 009c B6F52A4F cmp r6, #43520 7599 00a0 02D0 beq .L495 3562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7600 .loc 1 3562 19 view .LVU2703 7601 00a2 4FF00009 mov r9, #0 7602 00a6 09E0 b .L496 7603 .L495: 3567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7604 .loc 1 3567 7 is_stmt 1 view .LVU2704 7605 00a8 2046 mov r0, r4 7606 00aa FFF7FEFF bl I2C_ConvertOtherXferOptions 7607 .LVL527: 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7608 .loc 1 3570 7 view .LVU2705 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7609 .loc 1 3570 15 is_stmt 0 view .LVU2706 ARM GAS /tmp/ccJ8PJrU.s page 311 7610 00ae 638D ldrh r3, [r4, #42] 7611 00b0 9BB2 uxth r3, r3 3570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7612 .loc 1 3570 10 view .LVU2707 7613 00b2 FF2B cmp r3, #255 7614 00b4 27D8 bhi .L513 3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7615 .loc 1 3572 9 is_stmt 1 view .LVU2708 3572:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7616 .loc 1 3572 18 is_stmt 0 view .LVU2709 7617 00b6 E76A ldr r7, [r4, #44] 7618 .LVL528: 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7619 .loc 1 3507 12 view .LVU2710 7620 00b8 DFF82091 ldr r9, .L516+16 7621 .L496: 7622 .LVL529: 3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7623 .loc 1 3576 5 is_stmt 1 view .LVU2711 3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7624 .loc 1 3576 13 is_stmt 0 view .LVU2712 7625 00bc 228D ldrh r2, [r4, #40] 3576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7626 .loc 1 3576 8 view .LVU2713 7627 00be 002A cmp r2, #0 7628 00c0 5CD0 beq .L497 3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7629 .loc 1 3578 7 is_stmt 1 view .LVU2714 3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7630 .loc 1 3578 15 is_stmt 0 view .LVU2715 7631 00c2 A36B ldr r3, [r4, #56] 3578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7632 .loc 1 3578 10 view .LVU2716 7633 00c4 13B3 cbz r3, .L498 3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7634 .loc 1 3581 9 is_stmt 1 view .LVU2717 3581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7635 .loc 1 3581 40 is_stmt 0 view .LVU2718 7636 00c6 424A ldr r2, .L516+4 7637 00c8 9A62 str r2, [r3, #40] 3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7638 .loc 1 3584 9 is_stmt 1 view .LVU2719 3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7639 .loc 1 3584 13 is_stmt 0 view .LVU2720 7640 00ca A36B ldr r3, [r4, #56] 3584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7641 .loc 1 3584 41 view .LVU2721 7642 00cc 414A ldr r2, .L516+8 7643 00ce 1A63 str r2, [r3, #48] 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7644 .loc 1 3587 9 is_stmt 1 view .LVU2722 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7645 .loc 1 3587 13 is_stmt 0 view .LVU2723 7646 00d0 A26B ldr r2, [r4, #56] 3587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7647 .loc 1 3587 44 view .LVU2724 7648 00d2 0023 movs r3, #0 ARM GAS /tmp/ccJ8PJrU.s page 312 7649 00d4 D362 str r3, [r2, #44] 3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7650 .loc 1 3588 9 is_stmt 1 view .LVU2725 3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7651 .loc 1 3588 13 is_stmt 0 view .LVU2726 7652 00d6 A26B ldr r2, [r4, #56] 3588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7653 .loc 1 3588 41 view .LVU2727 7654 00d8 5363 str r3, [r2, #52] 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 7655 .loc 1 3591 9 is_stmt 1 view .LVU2728 3592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7656 .loc 1 3592 57 is_stmt 0 view .LVU2729 7657 00da 2268 ldr r2, [r4] 3591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 7658 .loc 1 3591 25 view .LVU2730 7659 00dc 238D ldrh r3, [r4, #40] 7660 00de 2832 adds r2, r2, #40 7661 00e0 616A ldr r1, [r4, #36] 7662 00e2 A06B ldr r0, [r4, #56] 7663 00e4 FFF7FEFF bl HAL_DMA_Start_IT 7664 .LVL530: 3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7665 .loc 1 3609 7 is_stmt 1 view .LVU2731 3609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7666 .loc 1 3609 10 is_stmt 0 view .LVU2732 7667 00e8 F0B1 cbz r0, .L499 3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7668 .loc 1 3639 9 is_stmt 1 view .LVU2733 3639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7669 .loc 1 3639 25 is_stmt 0 view .LVU2734 7670 00ea 2023 movs r3, #32 7671 00ec 84F84130 strb r3, [r4, #65] 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7672 .loc 1 3640 9 is_stmt 1 view .LVU2735 3640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7673 .loc 1 3640 25 is_stmt 0 view .LVU2736 7674 00f0 0022 movs r2, #0 7675 00f2 84F84220 strb r2, [r4, #66] 3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7676 .loc 1 3643 9 is_stmt 1 view .LVU2737 3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7677 .loc 1 3643 13 is_stmt 0 view .LVU2738 7678 00f6 636C ldr r3, [r4, #68] 3643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7679 .loc 1 3643 25 view .LVU2739 7680 00f8 43F01003 orr r3, r3, #16 7681 00fc 6364 str r3, [r4, #68] 3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7682 .loc 1 3646 9 is_stmt 1 view .LVU2740 3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7683 .loc 1 3646 9 view .LVU2741 7684 00fe 84F84020 strb r2, [r4, #64] 3646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7685 .loc 1 3646 9 view .LVU2742 3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7686 .loc 1 3648 9 view .LVU2743 ARM GAS /tmp/ccJ8PJrU.s page 313 3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7687 .loc 1 3648 16 is_stmt 0 view .LVU2744 7688 0102 0120 movs r0, #1 7689 .LVL531: 3648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7690 .loc 1 3648 16 view .LVU2745 7691 0104 5CE0 b .L490 7692 .LVL532: 7693 .L513: 3507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7694 .loc 1 3507 12 view .LVU2746 7695 0106 DFF8D490 ldr r9, .L516+16 7696 010a D7E7 b .L496 7697 .LVL533: 7698 .L498: 3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7699 .loc 1 3597 9 is_stmt 1 view .LVU2747 3597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7700 .loc 1 3597 25 is_stmt 0 view .LVU2748 7701 010c 2023 movs r3, #32 7702 010e 84F84130 strb r3, [r4, #65] 3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7703 .loc 1 3598 9 is_stmt 1 view .LVU2749 3598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7704 .loc 1 3598 25 is_stmt 0 view .LVU2750 7705 0112 0022 movs r2, #0 7706 0114 84F84220 strb r2, [r4, #66] 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7707 .loc 1 3601 9 is_stmt 1 view .LVU2751 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7708 .loc 1 3601 13 is_stmt 0 view .LVU2752 7709 0118 636C ldr r3, [r4, #68] 3601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7710 .loc 1 3601 25 view .LVU2753 7711 011a 43F08003 orr r3, r3, #128 7712 011e 6364 str r3, [r4, #68] 3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7713 .loc 1 3604 9 is_stmt 1 view .LVU2754 3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7714 .loc 1 3604 9 view .LVU2755 7715 0120 84F84020 strb r2, [r4, #64] 3604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7716 .loc 1 3604 9 view .LVU2756 3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7717 .loc 1 3606 9 view .LVU2757 3606:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7718 .loc 1 3606 16 is_stmt 0 view .LVU2758 7719 0124 0120 movs r0, #1 7720 0126 4BE0 b .L490 7721 .LVL534: 7722 .L499: 3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7723 .loc 1 3612 9 is_stmt 1 view .LVU2759 3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7724 .loc 1 3612 12 is_stmt 0 view .LVU2760 7725 0128 16B1 cbz r6, .L501 3612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 314 7726 .loc 1 3612 46 discriminator 1 view .LVU2761 7727 012a B6F1007F cmp r6, #33554432 7728 012e 1BD1 bne .L502 7729 .L501: 3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7730 .loc 1 3614 11 is_stmt 1 view .LVU2762 7731 0130 CDF80090 str r9, [sp] 7732 0134 3B46 mov r3, r7 7733 0136 5FFA88F2 uxtb r2, r8 7734 013a 2946 mov r1, r5 7735 013c 2046 mov r0, r4 7736 .LVL535: 3614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7737 .loc 1 3614 11 is_stmt 0 view .LVU2763 7738 013e FFF7FEFF bl I2C_TransferConfig 7739 .LVL536: 7740 .L503: 3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7741 .loc 1 3622 9 is_stmt 1 view .LVU2764 3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7742 .loc 1 3622 13 is_stmt 0 view .LVU2765 7743 0142 638D ldrh r3, [r4, #42] 7744 0144 9BB2 uxth r3, r3 3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7745 .loc 1 3622 32 view .LVU2766 7746 0146 228D ldrh r2, [r4, #40] 3622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7747 .loc 1 3622 25 view .LVU2767 7748 0148 9B1A subs r3, r3, r2 7749 014a 9BB2 uxth r3, r3 7750 014c 6385 strh r3, [r4, #42] @ movhi 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7751 .loc 1 3625 9 is_stmt 1 view .LVU2768 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7752 .loc 1 3625 9 view .LVU2769 7753 014e 0023 movs r3, #0 7754 0150 84F84030 strb r3, [r4, #64] 3625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7755 .loc 1 3625 9 view .LVU2770 3631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7756 .loc 1 3631 9 view .LVU2771 7757 0154 1021 movs r1, #16 7758 0156 2046 mov r0, r4 7759 0158 FFF7FEFF bl I2C_Enable_IRQ 7760 .LVL537: 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7761 .loc 1 3634 9 view .LVU2772 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7762 .loc 1 3634 13 is_stmt 0 view .LVU2773 7763 015c 2268 ldr r2, [r4] 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7764 .loc 1 3634 23 view .LVU2774 7765 015e 1368 ldr r3, [r2] 3634:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7766 .loc 1 3634 29 view .LVU2775 7767 0160 43F48043 orr r3, r3, #16384 7768 0164 1360 str r3, [r2] ARM GAS /tmp/ccJ8PJrU.s page 315 7769 0166 1FE0 b .L504 7770 .LVL538: 7771 .L502: 3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7772 .loc 1 3618 11 is_stmt 1 view .LVU2776 7773 0168 CDF80090 str r9, [sp] 7774 016c 3B46 mov r3, r7 7775 016e 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7776 0172 2946 mov r1, r5 7777 0174 2046 mov r0, r4 7778 .LVL539: 3618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7779 .loc 1 3618 11 is_stmt 0 view .LVU2777 7780 0176 FFF7FEFF bl I2C_TransferConfig 7781 .LVL540: 7782 017a E2E7 b .L503 7783 .LVL541: 7784 .L497: 3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7785 .loc 1 3654 7 is_stmt 1 view .LVU2778 3654:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7786 .loc 1 3654 21 is_stmt 0 view .LVU2779 7787 017c 164B ldr r3, .L516+12 7788 017e 6363 str r3, [r4, #52] 3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7789 .loc 1 3658 7 is_stmt 1 view .LVU2780 3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7790 .loc 1 3658 10 is_stmt 0 view .LVU2781 7791 0180 16B1 cbz r6, .L505 3658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7792 .loc 1 3658 44 discriminator 1 view .LVU2782 7793 0182 B6F1007F cmp r6, #33554432 7794 0186 11D1 bne .L506 7795 .L505: 3660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7796 .loc 1 3660 9 is_stmt 1 view .LVU2783 7797 0188 CDF80090 str r9, [sp] 7798 018c 3B46 mov r3, r7 7799 018e 5FFA88F2 uxtb r2, r8 7800 0192 2946 mov r1, r5 7801 0194 2046 mov r0, r4 7802 0196 FFF7FEFF bl I2C_TransferConfig 7803 .LVL542: 7804 .L507: 3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7805 .loc 1 3668 7 view .LVU2784 3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7806 .loc 1 3668 7 view .LVU2785 7807 019a 0023 movs r3, #0 7808 019c 84F84030 strb r3, [r4, #64] 3668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7809 .loc 1 3668 7 view .LVU2786 3677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7810 .loc 1 3677 7 view .LVU2787 7811 01a0 0121 movs r1, #1 7812 01a2 2046 mov r0, r4 7813 01a4 FFF7FEFF bl I2C_Enable_IRQ ARM GAS /tmp/ccJ8PJrU.s page 316 7814 .LVL543: 7815 .L504: 3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7816 .loc 1 3680 5 view .LVU2788 3680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7817 .loc 1 3680 12 is_stmt 0 view .LVU2789 7818 01a8 0020 movs r0, #0 7819 01aa 09E0 b .L490 7820 .L506: 3664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7821 .loc 1 3664 9 is_stmt 1 view .LVU2790 7822 01ac CDF80090 str r9, [sp] 7823 01b0 3B46 mov r3, r7 7824 01b2 D2B2 uxtb r2, r2 7825 01b4 2946 mov r1, r5 7826 01b6 2046 mov r0, r4 7827 01b8 FFF7FEFF bl I2C_TransferConfig 7828 .LVL544: 7829 01bc EDE7 b .L507 7830 .LVL545: 7831 .L508: 3684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7832 .loc 1 3684 12 is_stmt 0 view .LVU2791 7833 01be 0220 movs r0, #2 7834 .LVL546: 7835 .L490: 3686:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7836 .loc 1 3686 1 view .LVU2792 7837 01c0 03B0 add sp, sp, #12 7838 .cfi_remember_state 7839 .cfi_def_cfa_offset 28 7840 @ sp needed 7841 01c2 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 7842 .LVL547: 7843 .L509: 7844 .cfi_restore_state 3517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7845 .loc 1 3517 5 discriminator 1 view .LVU2793 7846 01c6 0220 movs r0, #2 7847 01c8 FAE7 b .L490 7848 .L517: 7849 01ca 00BF .align 2 7850 .L516: 7851 01cc 00000000 .word I2C_Master_ISR_DMA 7852 01d0 00000000 .word I2C_DMAMasterTransmitCplt 7853 01d4 00000000 .word I2C_DMAError 7854 01d8 00000000 .word I2C_Master_ISR_IT 7855 01dc 00200080 .word -2147475456 7856 .cfi_endproc 7857 .LFE147: 7859 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits 7860 .align 1 7861 .global HAL_I2C_Master_Seq_Receive_IT 7862 .syntax unified 7863 .thumb 7864 .thumb_func 7866 HAL_I2C_Master_Seq_Receive_IT: ARM GAS /tmp/ccJ8PJrU.s page 317 7867 .LVL548: 7868 .LFB148: 3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 7869 .loc 1 3702 1 is_stmt 1 view -0 7870 .cfi_startproc 7871 @ args = 4, pretend = 0, frame = 0 7872 @ frame_needed = 0, uses_anonymous_args = 0 3702:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 7873 .loc 1 3702 1 is_stmt 0 view .LVU2795 7874 0000 70B5 push {r4, r5, r6, lr} 7875 .cfi_def_cfa_offset 16 7876 .cfi_offset 4, -16 7877 .cfi_offset 5, -12 7878 .cfi_offset 6, -8 7879 .cfi_offset 14, -4 7880 0002 82B0 sub sp, sp, #8 7881 .cfi_def_cfa_offset 24 7882 0004 0446 mov r4, r0 3703:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 7883 .loc 1 3703 3 is_stmt 1 view .LVU2796 3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7884 .loc 1 3704 3 view .LVU2797 7885 .LVL549: 3707:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7886 .loc 1 3707 3 view .LVU2798 3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7887 .loc 1 3709 3 view .LVU2799 3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7888 .loc 1 3709 11 is_stmt 0 view .LVU2800 7889 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7890 .LVL550: 3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7891 .loc 1 3709 11 view .LVU2801 7892 000a C0B2 uxtb r0, r0 3709:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7893 .loc 1 3709 6 view .LVU2802 7894 000c 2028 cmp r0, #32 7895 000e 49D1 bne .L524 7896 0010 0D46 mov r5, r1 3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7897 .loc 1 3712 5 is_stmt 1 view .LVU2803 3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7898 .loc 1 3712 5 view .LVU2804 7899 0012 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7900 .LVL551: 3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7901 .loc 1 3712 5 is_stmt 0 view .LVU2805 7902 0016 0129 cmp r1, #1 7903 0018 46D0 beq .L525 3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7904 .loc 1 3712 5 is_stmt 1 discriminator 2 view .LVU2806 7905 001a 0121 movs r1, #1 7906 001c 84F84010 strb r1, [r4, #64] 3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7907 .loc 1 3712 5 discriminator 2 view .LVU2807 3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7908 .loc 1 3714 5 view .LVU2808 ARM GAS /tmp/ccJ8PJrU.s page 318 3714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7909 .loc 1 3714 21 is_stmt 0 view .LVU2809 7910 0020 2221 movs r1, #34 7911 0022 84F84110 strb r1, [r4, #65] 3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7912 .loc 1 3715 5 is_stmt 1 view .LVU2810 3715:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7913 .loc 1 3715 21 is_stmt 0 view .LVU2811 7914 0026 1021 movs r1, #16 7915 0028 84F84210 strb r1, [r4, #66] 3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7916 .loc 1 3716 5 is_stmt 1 view .LVU2812 3716:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7917 .loc 1 3716 21 is_stmt 0 view .LVU2813 7918 002c 0021 movs r1, #0 7919 002e 6164 str r1, [r4, #68] 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 7920 .loc 1 3719 5 is_stmt 1 view .LVU2814 3719:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 7921 .loc 1 3719 23 is_stmt 0 view .LVU2815 7922 0030 6262 str r2, [r4, #36] 3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7923 .loc 1 3720 5 is_stmt 1 view .LVU2816 3720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7924 .loc 1 3720 23 is_stmt 0 view .LVU2817 7925 0032 6385 strh r3, [r4, #42] @ movhi 3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7926 .loc 1 3721 5 is_stmt 1 view .LVU2818 3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7927 .loc 1 3721 23 is_stmt 0 view .LVU2819 7928 0034 069B ldr r3, [sp, #24] 7929 .LVL552: 3721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7930 .loc 1 3721 23 view .LVU2820 7931 0036 E362 str r3, [r4, #44] 7932 .LVL553: 3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7933 .loc 1 3722 5 is_stmt 1 view .LVU2821 3722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7934 .loc 1 3722 23 is_stmt 0 view .LVU2822 7935 0038 1C4B ldr r3, .L529 7936 003a 6363 str r3, [r4, #52] 3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7937 .loc 1 3725 5 is_stmt 1 view .LVU2823 3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7938 .loc 1 3725 13 is_stmt 0 view .LVU2824 7939 003c 638D ldrh r3, [r4, #42] 7940 003e 9BB2 uxth r3, r3 3725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7941 .loc 1 3725 8 view .LVU2825 7942 0040 FF2B cmp r3, #255 7943 0042 0ED9 bls .L520 3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7944 .loc 1 3727 7 is_stmt 1 view .LVU2826 3727:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7945 .loc 1 3727 22 is_stmt 0 view .LVU2827 7946 0044 FF23 movs r3, #255 ARM GAS /tmp/ccJ8PJrU.s page 319 7947 0046 2385 strh r3, [r4, #40] @ movhi 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7948 .loc 1 3728 7 is_stmt 1 view .LVU2828 7949 .LVL554: 3728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7950 .loc 1 3728 16 is_stmt 0 view .LVU2829 7951 0048 4FF08076 mov r6, #16777216 7952 .LVL555: 7953 .L521: 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7954 .loc 1 3739 5 is_stmt 1 view .LVU2830 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7955 .loc 1 3739 14 is_stmt 0 view .LVU2831 7956 004c 236B ldr r3, [r4, #48] 3739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7957 .loc 1 3739 8 view .LVU2832 7958 004e 122B cmp r3, #18 7959 0050 0BD1 bne .L522 3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7960 .loc 1 3740 10 view .LVU2833 7961 0052 069B ldr r3, [sp, #24] 7962 0054 AA2B cmp r3, #170 7963 0056 08D0 beq .L522 3740:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7964 .loc 1 3740 10 discriminator 2 view .LVU2834 7965 0058 B3F52A4F cmp r3, #43520 7966 005c 05D0 beq .L522 3742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7967 .loc 1 3742 19 view .LVU2835 7968 005e 0023 movs r3, #0 7969 0060 0CE0 b .L523 7970 .LVL556: 7971 .L520: 3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7972 .loc 1 3732 7 is_stmt 1 view .LVU2836 3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7973 .loc 1 3732 28 is_stmt 0 view .LVU2837 7974 0062 638D ldrh r3, [r4, #42] 3732:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7975 .loc 1 3732 22 view .LVU2838 7976 0064 2385 strh r3, [r4, #40] @ movhi 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7977 .loc 1 3733 7 is_stmt 1 view .LVU2839 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7978 .loc 1 3733 16 is_stmt 0 view .LVU2840 7979 0066 E66A ldr r6, [r4, #44] 7980 .LVL557: 3733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7981 .loc 1 3733 16 view .LVU2841 7982 0068 F0E7 b .L521 7983 .L522: 3747:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7984 .loc 1 3747 7 is_stmt 1 view .LVU2842 7985 006a 2046 mov r0, r4 7986 006c FFF7FEFF bl I2C_ConvertOtherXferOptions 7987 .LVL558: 3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 320 7988 .loc 1 3750 7 view .LVU2843 3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7989 .loc 1 3750 15 is_stmt 0 view .LVU2844 7990 0070 638D ldrh r3, [r4, #42] 7991 0072 9BB2 uxth r3, r3 3750:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 7992 .loc 1 3750 10 view .LVU2845 7993 0074 FF2B cmp r3, #255 7994 0076 13D8 bhi .L527 3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7995 .loc 1 3752 9 is_stmt 1 view .LVU2846 3752:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 7996 .loc 1 3752 18 is_stmt 0 view .LVU2847 7997 0078 E66A ldr r6, [r4, #44] 7998 .LVL559: 3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 7999 .loc 1 3704 12 view .LVU2848 8000 007a 0D4B ldr r3, .L529+4 8001 .L523: 8002 .LVL560: 3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8003 .loc 1 3757 5 is_stmt 1 view .LVU2849 8004 007c 0093 str r3, [sp] 8005 007e 3346 mov r3, r6 8006 .LVL561: 3757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8007 .loc 1 3757 5 is_stmt 0 view .LVU2850 8008 0080 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 8009 0084 2946 mov r1, r5 8010 0086 2046 mov r0, r4 8011 0088 FFF7FEFF bl I2C_TransferConfig 8012 .LVL562: 3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8013 .loc 1 3760 5 is_stmt 1 view .LVU2851 3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8014 .loc 1 3760 5 view .LVU2852 8015 008c 0025 movs r5, #0 8016 .LVL563: 3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8017 .loc 1 3760 5 is_stmt 0 view .LVU2853 8018 008e 84F84050 strb r5, [r4, #64] 3760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8019 .loc 1 3760 5 is_stmt 1 view .LVU2854 3765:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8020 .loc 1 3765 5 view .LVU2855 8021 0092 0221 movs r1, #2 8022 0094 2046 mov r0, r4 8023 0096 FFF7FEFF bl I2C_Enable_IRQ 8024 .LVL564: 3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8025 .loc 1 3767 5 view .LVU2856 3767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8026 .loc 1 3767 12 is_stmt 0 view .LVU2857 8027 009a 2846 mov r0, r5 8028 .LVL565: 8029 .L519: 3773:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 321 8030 .loc 1 3773 1 view .LVU2858 8031 009c 02B0 add sp, sp, #8 8032 .cfi_remember_state 8033 .cfi_def_cfa_offset 16 8034 @ sp needed 8035 009e 70BD pop {r4, r5, r6, pc} 8036 .LVL566: 8037 .L527: 8038 .cfi_restore_state 3704:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8039 .loc 1 3704 12 view .LVU2859 8040 00a0 034B ldr r3, .L529+4 8041 00a2 EBE7 b .L523 8042 .LVL567: 8043 .L524: 3771:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8044 .loc 1 3771 12 view .LVU2860 8045 00a4 0220 movs r0, #2 8046 00a6 F9E7 b .L519 8047 .LVL568: 8048 .L525: 3712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8049 .loc 1 3712 5 discriminator 1 view .LVU2861 8050 00a8 0220 movs r0, #2 8051 00aa F7E7 b .L519 8052 .L530: 8053 .align 2 8054 .L529: 8055 00ac 00000000 .word I2C_Master_ISR_IT 8056 00b0 00240080 .word -2147474432 8057 .cfi_endproc 8058 .LFE148: 8060 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits 8061 .align 1 8062 .global HAL_I2C_Master_Seq_Receive_DMA 8063 .syntax unified 8064 .thumb 8065 .thumb_func 8067 HAL_I2C_Master_Seq_Receive_DMA: 8068 .LVL569: 8069 .LFB149: 3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 8070 .loc 1 3789 1 is_stmt 1 view -0 8071 .cfi_startproc 8072 @ args = 4, pretend = 0, frame = 0 8073 @ frame_needed = 0, uses_anonymous_args = 0 3789:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 8074 .loc 1 3789 1 is_stmt 0 view .LVU2863 8075 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 8076 .cfi_def_cfa_offset 24 8077 .cfi_offset 4, -24 8078 .cfi_offset 5, -20 8079 .cfi_offset 6, -16 8080 .cfi_offset 7, -12 8081 .cfi_offset 8, -8 8082 .cfi_offset 14, -4 8083 0004 82B0 sub sp, sp, #8 ARM GAS /tmp/ccJ8PJrU.s page 322 8084 .cfi_def_cfa_offset 32 8085 0006 0446 mov r4, r0 8086 0008 1546 mov r5, r2 8087 000a 089A ldr r2, [sp, #32] 8088 .LVL570: 3790:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 8089 .loc 1 3790 3 is_stmt 1 view .LVU2864 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8090 .loc 1 3791 3 view .LVU2865 3792:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8091 .loc 1 3792 3 view .LVU2866 3795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8092 .loc 1 3795 3 view .LVU2867 3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8093 .loc 1 3797 3 view .LVU2868 3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8094 .loc 1 3797 11 is_stmt 0 view .LVU2869 8095 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8096 .LVL571: 3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8097 .loc 1 3797 11 view .LVU2870 8098 0010 C0B2 uxtb r0, r0 3797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8099 .loc 1 3797 6 view .LVU2871 8100 0012 2028 cmp r0, #32 8101 0014 40F09D80 bne .L542 8102 0018 0E46 mov r6, r1 3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8103 .loc 1 3800 5 is_stmt 1 view .LVU2872 3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8104 .loc 1 3800 5 view .LVU2873 8105 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 8106 .LVL572: 3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8107 .loc 1 3800 5 is_stmt 0 view .LVU2874 8108 001e 0129 cmp r1, #1 8109 0020 00F09B80 beq .L543 3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8110 .loc 1 3800 5 is_stmt 1 discriminator 2 view .LVU2875 8111 0024 0121 movs r1, #1 8112 0026 84F84010 strb r1, [r4, #64] 3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8113 .loc 1 3800 5 discriminator 2 view .LVU2876 3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8114 .loc 1 3802 5 view .LVU2877 3802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8115 .loc 1 3802 21 is_stmt 0 view .LVU2878 8116 002a 2221 movs r1, #34 8117 002c 84F84110 strb r1, [r4, #65] 3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8118 .loc 1 3803 5 is_stmt 1 view .LVU2879 3803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8119 .loc 1 3803 21 is_stmt 0 view .LVU2880 8120 0030 1021 movs r1, #16 8121 0032 84F84210 strb r1, [r4, #66] 3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8122 .loc 1 3804 5 is_stmt 1 view .LVU2881 ARM GAS /tmp/ccJ8PJrU.s page 323 3804:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8123 .loc 1 3804 21 is_stmt 0 view .LVU2882 8124 0036 0021 movs r1, #0 8125 0038 6164 str r1, [r4, #68] 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 8126 .loc 1 3807 5 is_stmt 1 view .LVU2883 3807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 8127 .loc 1 3807 23 is_stmt 0 view .LVU2884 8128 003a 6562 str r5, [r4, #36] 3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8129 .loc 1 3808 5 is_stmt 1 view .LVU2885 3808:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8130 .loc 1 3808 23 is_stmt 0 view .LVU2886 8131 003c 6385 strh r3, [r4, #42] @ movhi 3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8132 .loc 1 3809 5 is_stmt 1 view .LVU2887 3809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8133 .loc 1 3809 23 is_stmt 0 view .LVU2888 8134 003e E262 str r2, [r4, #44] 3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8135 .loc 1 3810 5 is_stmt 1 view .LVU2889 3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8136 .loc 1 3810 23 is_stmt 0 view .LVU2890 8137 0040 474B ldr r3, .L549 8138 .LVL573: 3810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8139 .loc 1 3810 23 view .LVU2891 8140 0042 6363 str r3, [r4, #52] 3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8141 .loc 1 3813 5 is_stmt 1 view .LVU2892 3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8142 .loc 1 3813 13 is_stmt 0 view .LVU2893 8143 0044 638D ldrh r3, [r4, #42] 8144 0046 9BB2 uxth r3, r3 3813:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8145 .loc 1 3813 8 view .LVU2894 8146 0048 FF2B cmp r3, #255 8147 004a 0ED9 bls .L533 3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8148 .loc 1 3815 7 is_stmt 1 view .LVU2895 3815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8149 .loc 1 3815 22 is_stmt 0 view .LVU2896 8150 004c FF23 movs r3, #255 8151 004e 2385 strh r3, [r4, #40] @ movhi 3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8152 .loc 1 3816 7 is_stmt 1 view .LVU2897 8153 .LVL574: 3816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8154 .loc 1 3816 16 is_stmt 0 view .LVU2898 8155 0050 4FF08077 mov r7, #16777216 8156 .LVL575: 8157 .L534: 3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8158 .loc 1 3827 5 is_stmt 1 view .LVU2899 3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8159 .loc 1 3827 14 is_stmt 0 view .LVU2900 8160 0054 236B ldr r3, [r4, #48] ARM GAS /tmp/ccJ8PJrU.s page 324 3827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8161 .loc 1 3827 8 view .LVU2901 8162 0056 122B cmp r3, #18 8163 0058 0BD1 bne .L535 3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8164 .loc 1 3828 10 view .LVU2902 8165 005a AA2A cmp r2, #170 8166 005c 09D0 beq .L535 3828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8167 .loc 1 3828 10 discriminator 2 view .LVU2903 8168 005e B2F52A4F cmp r2, #43520 8169 0062 06D0 beq .L535 3830:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8170 .loc 1 3830 19 view .LVU2904 8171 0064 4FF00008 mov r8, #0 8172 0068 0DE0 b .L536 8173 .LVL576: 8174 .L533: 3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8175 .loc 1 3820 7 is_stmt 1 view .LVU2905 3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8176 .loc 1 3820 28 is_stmt 0 view .LVU2906 8177 006a 638D ldrh r3, [r4, #42] 3820:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8178 .loc 1 3820 22 view .LVU2907 8179 006c 2385 strh r3, [r4, #40] @ movhi 3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8180 .loc 1 3821 7 is_stmt 1 view .LVU2908 3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8181 .loc 1 3821 16 is_stmt 0 view .LVU2909 8182 006e E76A ldr r7, [r4, #44] 8183 .LVL577: 3821:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8184 .loc 1 3821 16 view .LVU2910 8185 0070 F0E7 b .L534 8186 .L535: 3835:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8187 .loc 1 3835 7 is_stmt 1 view .LVU2911 8188 0072 2046 mov r0, r4 8189 0074 FFF7FEFF bl I2C_ConvertOtherXferOptions 8190 .LVL578: 3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8191 .loc 1 3838 7 view .LVU2912 3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8192 .loc 1 3838 15 is_stmt 0 view .LVU2913 8193 0078 638D ldrh r3, [r4, #42] 8194 007a 9BB2 uxth r3, r3 3838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8195 .loc 1 3838 10 view .LVU2914 8196 007c FF2B cmp r3, #255 8197 007e 27D8 bhi .L545 3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8198 .loc 1 3840 9 is_stmt 1 view .LVU2915 3840:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8199 .loc 1 3840 18 is_stmt 0 view .LVU2916 8200 0080 E76A ldr r7, [r4, #44] 8201 .LVL579: ARM GAS /tmp/ccJ8PJrU.s page 325 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8202 .loc 1 3791 12 view .LVU2917 8203 0082 DFF8EC80 ldr r8, .L549+16 8204 .L536: 8205 .LVL580: 3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8206 .loc 1 3844 5 is_stmt 1 view .LVU2918 3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8207 .loc 1 3844 13 is_stmt 0 view .LVU2919 8208 0086 228D ldrh r2, [r4, #40] 3844:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8209 .loc 1 3844 8 view .LVU2920 8210 0088 002A cmp r2, #0 8211 008a 4ED0 beq .L537 3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8212 .loc 1 3846 7 is_stmt 1 view .LVU2921 3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8213 .loc 1 3846 15 is_stmt 0 view .LVU2922 8214 008c E36B ldr r3, [r4, #60] 3846:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8215 .loc 1 3846 10 view .LVU2923 8216 008e 13B3 cbz r3, .L538 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8217 .loc 1 3849 9 is_stmt 1 view .LVU2924 3849:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8218 .loc 1 3849 40 is_stmt 0 view .LVU2925 8219 0090 344A ldr r2, .L549+4 8220 0092 9A62 str r2, [r3, #40] 3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8221 .loc 1 3852 9 is_stmt 1 view .LVU2926 3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8222 .loc 1 3852 13 is_stmt 0 view .LVU2927 8223 0094 E36B ldr r3, [r4, #60] 3852:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8224 .loc 1 3852 41 view .LVU2928 8225 0096 344A ldr r2, .L549+8 8226 0098 1A63 str r2, [r3, #48] 3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8227 .loc 1 3855 9 is_stmt 1 view .LVU2929 3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8228 .loc 1 3855 13 is_stmt 0 view .LVU2930 8229 009a E26B ldr r2, [r4, #60] 3855:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8230 .loc 1 3855 44 view .LVU2931 8231 009c 0023 movs r3, #0 8232 009e D362 str r3, [r2, #44] 3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8233 .loc 1 3856 9 is_stmt 1 view .LVU2932 3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8234 .loc 1 3856 13 is_stmt 0 view .LVU2933 8235 00a0 E26B ldr r2, [r4, #60] 3856:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8236 .loc 1 3856 41 view .LVU2934 8237 00a2 5363 str r3, [r2, #52] 3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 8238 .loc 1 3859 9 is_stmt 1 view .LVU2935 3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); ARM GAS /tmp/ccJ8PJrU.s page 326 8239 .loc 1 3859 71 is_stmt 0 view .LVU2936 8240 00a4 2168 ldr r1, [r4] 3859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 8241 .loc 1 3859 25 view .LVU2937 8242 00a6 238D ldrh r3, [r4, #40] 8243 00a8 2A46 mov r2, r5 8244 00aa 2431 adds r1, r1, #36 8245 00ac E06B ldr r0, [r4, #60] 8246 00ae FFF7FEFF bl HAL_DMA_Start_IT 8247 .LVL581: 3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8248 .loc 1 3877 7 is_stmt 1 view .LVU2938 3877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8249 .loc 1 3877 10 is_stmt 0 view .LVU2939 8250 00b2 F0B1 cbz r0, .L548 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8251 .loc 1 3900 9 is_stmt 1 view .LVU2940 3900:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8252 .loc 1 3900 25 is_stmt 0 view .LVU2941 8253 00b4 2023 movs r3, #32 8254 00b6 84F84130 strb r3, [r4, #65] 3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8255 .loc 1 3901 9 is_stmt 1 view .LVU2942 3901:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8256 .loc 1 3901 25 is_stmt 0 view .LVU2943 8257 00ba 0022 movs r2, #0 8258 00bc 84F84220 strb r2, [r4, #66] 3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8259 .loc 1 3904 9 is_stmt 1 view .LVU2944 3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8260 .loc 1 3904 13 is_stmt 0 view .LVU2945 8261 00c0 636C ldr r3, [r4, #68] 3904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8262 .loc 1 3904 25 view .LVU2946 8263 00c2 43F01003 orr r3, r3, #16 8264 00c6 6364 str r3, [r4, #68] 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8265 .loc 1 3907 9 is_stmt 1 view .LVU2947 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8266 .loc 1 3907 9 view .LVU2948 8267 00c8 84F84020 strb r2, [r4, #64] 3907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8268 .loc 1 3907 9 view .LVU2949 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8269 .loc 1 3909 9 view .LVU2950 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8270 .loc 1 3909 16 is_stmt 0 view .LVU2951 8271 00cc 0120 movs r0, #1 8272 .LVL582: 3909:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8273 .loc 1 3909 16 view .LVU2952 8274 00ce 41E0 b .L532 8275 .LVL583: 8276 .L545: 3791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8277 .loc 1 3791 12 view .LVU2953 8278 00d0 DFF89C80 ldr r8, .L549+16 ARM GAS /tmp/ccJ8PJrU.s page 327 8279 00d4 D7E7 b .L536 8280 .LVL584: 8281 .L538: 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8282 .loc 1 3865 9 is_stmt 1 view .LVU2954 3865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8283 .loc 1 3865 25 is_stmt 0 view .LVU2955 8284 00d6 2023 movs r3, #32 8285 00d8 84F84130 strb r3, [r4, #65] 3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8286 .loc 1 3866 9 is_stmt 1 view .LVU2956 3866:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8287 .loc 1 3866 25 is_stmt 0 view .LVU2957 8288 00dc 0022 movs r2, #0 8289 00de 84F84220 strb r2, [r4, #66] 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8290 .loc 1 3869 9 is_stmt 1 view .LVU2958 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8291 .loc 1 3869 13 is_stmt 0 view .LVU2959 8292 00e2 636C ldr r3, [r4, #68] 3869:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8293 .loc 1 3869 25 view .LVU2960 8294 00e4 43F08003 orr r3, r3, #128 8295 00e8 6364 str r3, [r4, #68] 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8296 .loc 1 3872 9 is_stmt 1 view .LVU2961 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8297 .loc 1 3872 9 view .LVU2962 8298 00ea 84F84020 strb r2, [r4, #64] 3872:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8299 .loc 1 3872 9 view .LVU2963 3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8300 .loc 1 3874 9 view .LVU2964 3874:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8301 .loc 1 3874 16 is_stmt 0 view .LVU2965 8302 00ee 0120 movs r0, #1 8303 00f0 30E0 b .L532 8304 .LVL585: 8305 .L548: 3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8306 .loc 1 3880 9 is_stmt 1 view .LVU2966 8307 00f2 CDF80080 str r8, [sp] 8308 00f6 3B46 mov r3, r7 8309 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 8310 00fc 3146 mov r1, r6 8311 00fe 2046 mov r0, r4 8312 .LVL586: 3880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8313 .loc 1 3880 9 is_stmt 0 view .LVU2967 8314 0100 FFF7FEFF bl I2C_TransferConfig 8315 .LVL587: 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8316 .loc 1 3883 9 is_stmt 1 view .LVU2968 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8317 .loc 1 3883 13 is_stmt 0 view .LVU2969 8318 0104 638D ldrh r3, [r4, #42] 8319 0106 9BB2 uxth r3, r3 ARM GAS /tmp/ccJ8PJrU.s page 328 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8320 .loc 1 3883 32 view .LVU2970 8321 0108 228D ldrh r2, [r4, #40] 3883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8322 .loc 1 3883 25 view .LVU2971 8323 010a 9B1A subs r3, r3, r2 8324 010c 9BB2 uxth r3, r3 8325 010e 6385 strh r3, [r4, #42] @ movhi 3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8326 .loc 1 3886 9 is_stmt 1 view .LVU2972 3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8327 .loc 1 3886 9 view .LVU2973 8328 0110 0023 movs r3, #0 8329 0112 84F84030 strb r3, [r4, #64] 3886:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8330 .loc 1 3886 9 view .LVU2974 3892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8331 .loc 1 3892 9 view .LVU2975 8332 0116 1021 movs r1, #16 8333 0118 2046 mov r0, r4 8334 011a FFF7FEFF bl I2C_Enable_IRQ 8335 .LVL588: 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8336 .loc 1 3895 9 view .LVU2976 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8337 .loc 1 3895 13 is_stmt 0 view .LVU2977 8338 011e 2268 ldr r2, [r4] 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8339 .loc 1 3895 23 view .LVU2978 8340 0120 1368 ldr r3, [r2] 3895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8341 .loc 1 3895 29 view .LVU2979 8342 0122 43F40043 orr r3, r3, #32768 8343 0126 1360 str r3, [r2] 8344 0128 11E0 b .L541 8345 .LVL589: 8346 .L537: 3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8347 .loc 1 3915 7 is_stmt 1 view .LVU2980 3915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8348 .loc 1 3915 21 is_stmt 0 view .LVU2981 8349 012a 104B ldr r3, .L549+12 8350 012c 6363 str r3, [r4, #52] 3919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_GENERATE_START_READ); 8351 .loc 1 3919 7 is_stmt 1 view .LVU2982 8352 012e 104B ldr r3, .L549+16 8353 0130 0093 str r3, [sp] 8354 0132 4FF00073 mov r3, #33554432 8355 0136 D2B2 uxtb r2, r2 8356 0138 3146 mov r1, r6 8357 013a 2046 mov r0, r4 8358 013c FFF7FEFF bl I2C_TransferConfig 8359 .LVL590: 3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8360 .loc 1 3923 7 view .LVU2983 3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8361 .loc 1 3923 7 view .LVU2984 ARM GAS /tmp/ccJ8PJrU.s page 329 8362 0140 0023 movs r3, #0 8363 0142 84F84030 strb r3, [r4, #64] 3923:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8364 .loc 1 3923 7 view .LVU2985 3932:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8365 .loc 1 3932 7 view .LVU2986 8366 0146 0221 movs r1, #2 8367 0148 2046 mov r0, r4 8368 014a FFF7FEFF bl I2C_Enable_IRQ 8369 .LVL591: 8370 .L541: 3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8371 .loc 1 3935 5 view .LVU2987 3935:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8372 .loc 1 3935 12 is_stmt 0 view .LVU2988 8373 014e 0020 movs r0, #0 8374 0150 00E0 b .L532 8375 .LVL592: 8376 .L542: 3939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8377 .loc 1 3939 12 view .LVU2989 8378 0152 0220 movs r0, #2 8379 .LVL593: 8380 .L532: 3941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8381 .loc 1 3941 1 view .LVU2990 8382 0154 02B0 add sp, sp, #8 8383 .cfi_remember_state 8384 .cfi_def_cfa_offset 24 8385 @ sp needed 8386 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 8387 .LVL594: 8388 .L543: 8389 .cfi_restore_state 3800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8390 .loc 1 3800 5 discriminator 1 view .LVU2991 8391 015a 0220 movs r0, #2 8392 015c FAE7 b .L532 8393 .L550: 8394 015e 00BF .align 2 8395 .L549: 8396 0160 00000000 .word I2C_Master_ISR_DMA 8397 0164 00000000 .word I2C_DMAMasterReceiveCplt 8398 0168 00000000 .word I2C_DMAError 8399 016c 00000000 .word I2C_Master_ISR_IT 8400 0170 00240080 .word -2147474432 8401 .cfi_endproc 8402 .LFE149: 8404 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits 8405 .align 1 8406 .global HAL_I2C_Slave_Seq_Transmit_IT 8407 .syntax unified 8408 .thumb 8409 .thumb_func 8411 HAL_I2C_Slave_Seq_Transmit_IT: 8412 .LVL595: 8413 .LFB150: ARM GAS /tmp/ccJ8PJrU.s page 330 3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8414 .loc 1 3955 1 is_stmt 1 view -0 8415 .cfi_startproc 8416 @ args = 0, pretend = 0, frame = 0 8417 @ frame_needed = 0, uses_anonymous_args = 0 3955:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8418 .loc 1 3955 1 is_stmt 0 view .LVU2993 8419 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8420 .cfi_def_cfa_offset 24 8421 .cfi_offset 3, -24 8422 .cfi_offset 4, -20 8423 .cfi_offset 5, -16 8424 .cfi_offset 6, -12 8425 .cfi_offset 7, -8 8426 .cfi_offset 14, -4 8427 0002 0446 mov r4, r0 3957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8428 .loc 1 3957 3 is_stmt 1 view .LVU2994 3960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8429 .loc 1 3960 3 view .LVU2995 3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8430 .loc 1 3962 3 view .LVU2996 3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8431 .loc 1 3962 22 is_stmt 0 view .LVU2997 8432 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8433 .LVL596: 3962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8434 .loc 1 3962 6 view .LVU2998 8435 0008 00F02800 and r0, r0, #40 8436 000c 2828 cmp r0, #40 8437 000e 5ED1 bne .L557 8438 0010 0F46 mov r7, r1 8439 0012 1646 mov r6, r2 8440 0014 1D46 mov r5, r3 3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8441 .loc 1 3964 5 is_stmt 1 view .LVU2999 3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8442 .loc 1 3964 8 is_stmt 0 view .LVU3000 8443 0016 01B1 cbz r1, .L553 3964:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8444 .loc 1 3964 25 discriminator 1 view .LVU3001 8445 0018 22B9 cbnz r2, .L554 8446 .L553: 3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8447 .loc 1 3966 7 is_stmt 1 view .LVU3002 3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8448 .loc 1 3966 23 is_stmt 0 view .LVU3003 8449 001a 4FF40073 mov r3, #512 8450 .LVL597: 3966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8451 .loc 1 3966 23 view .LVU3004 8452 001e 6364 str r3, [r4, #68] 3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8453 .loc 1 3967 7 is_stmt 1 view .LVU3005 3967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8454 .loc 1 3967 15 is_stmt 0 view .LVU3006 8455 0020 0120 movs r0, #1 ARM GAS /tmp/ccJ8PJrU.s page 331 8456 0022 55E0 b .L552 8457 .LVL598: 8458 .L554: 3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8459 .loc 1 3971 5 is_stmt 1 view .LVU3007 8460 0024 48F20101 movw r1, #32769 8461 .LVL599: 3971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8462 .loc 1 3971 5 is_stmt 0 view .LVU3008 8463 0028 2046 mov r0, r4 8464 002a FFF7FEFF bl I2C_Disable_IRQ 8465 .LVL600: 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8466 .loc 1 3974 5 is_stmt 1 view .LVU3009 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8467 .loc 1 3974 5 view .LVU3010 8468 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8469 0032 012B cmp r3, #1 8470 0034 4DD0 beq .L558 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8471 .loc 1 3974 5 discriminator 2 view .LVU3011 8472 0036 0123 movs r3, #1 8473 0038 84F84030 strb r3, [r4, #64] 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8474 .loc 1 3974 5 discriminator 2 view .LVU3012 3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8475 .loc 1 3978 5 view .LVU3013 3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8476 .loc 1 3978 13 is_stmt 0 view .LVU3014 8477 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8478 0040 DBB2 uxtb r3, r3 3978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8479 .loc 1 3978 8 view .LVU3015 8480 0042 2A2B cmp r3, #42 8481 0044 28D0 beq .L560 8482 .L555: 4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8483 .loc 1 4004 5 is_stmt 1 view .LVU3016 4004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8484 .loc 1 4004 21 is_stmt 0 view .LVU3017 8485 0046 2923 movs r3, #41 8486 0048 84F84130 strb r3, [r4, #65] 4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8487 .loc 1 4005 5 is_stmt 1 view .LVU3018 4005:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8488 .loc 1 4005 21 is_stmt 0 view .LVU3019 8489 004c 2023 movs r3, #32 8490 004e 84F84230 strb r3, [r4, #66] 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8491 .loc 1 4006 5 is_stmt 1 view .LVU3020 4006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8492 .loc 1 4006 21 is_stmt 0 view .LVU3021 8493 0052 0023 movs r3, #0 8494 0054 6364 str r3, [r4, #68] 4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8495 .loc 1 4009 5 is_stmt 1 view .LVU3022 4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 332 8496 .loc 1 4009 9 is_stmt 0 view .LVU3023 8497 0056 2268 ldr r2, [r4] 4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8498 .loc 1 4009 19 view .LVU3024 8499 0058 5368 ldr r3, [r2, #4] 4009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8500 .loc 1 4009 25 view .LVU3025 8501 005a 23F40043 bic r3, r3, #32768 8502 005e 5360 str r3, [r2, #4] 4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 8503 .loc 1 4012 5 is_stmt 1 view .LVU3026 4012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 8504 .loc 1 4012 23 is_stmt 0 view .LVU3027 8505 0060 6762 str r7, [r4, #36] 4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8506 .loc 1 4013 5 is_stmt 1 view .LVU3028 4013:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8507 .loc 1 4013 23 is_stmt 0 view .LVU3029 8508 0062 6685 strh r6, [r4, #42] @ movhi 4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8509 .loc 1 4014 5 is_stmt 1 view .LVU3030 4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8510 .loc 1 4014 29 is_stmt 0 view .LVU3031 8511 0064 638D ldrh r3, [r4, #42] 4014:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8512 .loc 1 4014 23 view .LVU3032 8513 0066 2385 strh r3, [r4, #40] @ movhi 4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8514 .loc 1 4015 5 is_stmt 1 view .LVU3033 4015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8515 .loc 1 4015 23 is_stmt 0 view .LVU3034 8516 0068 E562 str r5, [r4, #44] 4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8517 .loc 1 4016 5 is_stmt 1 view .LVU3035 4016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8518 .loc 1 4016 23 is_stmt 0 view .LVU3036 8519 006a 1B4B ldr r3, .L561 8520 006c 6363 str r3, [r4, #52] 4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8521 .loc 1 4018 5 is_stmt 1 view .LVU3037 4018:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8522 .loc 1 4018 11 is_stmt 0 view .LVU3038 8523 006e 2268 ldr r2, [r4] 8524 0070 9369 ldr r3, [r2, #24] 8525 0072 03F00803 and r3, r3, #8 8526 .LVL601: 4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8527 .loc 1 4019 5 is_stmt 1 view .LVU3039 4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8528 .loc 1 4019 10 is_stmt 0 view .LVU3040 8529 0076 9169 ldr r1, [r2, #24] 4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8530 .loc 1 4019 8 view .LVU3041 8531 0078 11F4803F tst r1, #65536 8532 007c 02D0 beq .L556 4019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8533 .loc 1 4019 54 discriminator 1 view .LVU3042 ARM GAS /tmp/ccJ8PJrU.s page 333 8534 007e 0BB1 cbz r3, .L556 4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8535 .loc 1 4023 7 is_stmt 1 view .LVU3043 8536 0080 0823 movs r3, #8 8537 .LVL602: 4023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8538 .loc 1 4023 7 is_stmt 0 view .LVU3044 8539 0082 D361 str r3, [r2, #28] 8540 .L556: 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8541 .loc 1 4027 5 is_stmt 1 view .LVU3045 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8542 .loc 1 4027 5 view .LVU3046 8543 0084 0025 movs r5, #0 8544 .LVL603: 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8545 .loc 1 4027 5 is_stmt 0 view .LVU3047 8546 0086 84F84050 strb r5, [r4, #64] 4027:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8547 .loc 1 4027 5 is_stmt 1 view .LVU3048 4033:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8548 .loc 1 4033 5 view .LVU3049 8549 008a 48F20101 movw r1, #32769 8550 008e 2046 mov r0, r4 8551 0090 FFF7FEFF bl I2C_Enable_IRQ 8552 .LVL604: 4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8553 .loc 1 4035 5 view .LVU3050 4035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8554 .loc 1 4035 12 is_stmt 0 view .LVU3051 8555 0094 2846 mov r0, r5 8556 0096 1BE0 b .L552 8557 .LVL605: 8558 .L560: 3981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8559 .loc 1 3981 7 is_stmt 1 view .LVU3052 8560 0098 0221 movs r1, #2 8561 009a 2046 mov r0, r4 8562 009c FFF7FEFF bl I2C_Disable_IRQ 8563 .LVL606: 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8564 .loc 1 3984 7 view .LVU3053 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8565 .loc 1 3984 16 is_stmt 0 view .LVU3054 8566 00a0 2368 ldr r3, [r4] 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8567 .loc 1 3984 26 view .LVU3055 8568 00a2 1A68 ldr r2, [r3] 3984:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8569 .loc 1 3984 10 view .LVU3056 8570 00a4 12F4004F tst r2, #32768 8571 00a8 CDD0 beq .L555 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8572 .loc 1 3986 9 is_stmt 1 view .LVU3057 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8573 .loc 1 3986 23 is_stmt 0 view .LVU3058 8574 00aa 1A68 ldr r2, [r3] ARM GAS /tmp/ccJ8PJrU.s page 334 3986:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8575 .loc 1 3986 29 view .LVU3059 8576 00ac 22F40042 bic r2, r2, #32768 8577 00b0 1A60 str r2, [r3] 3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8578 .loc 1 3988 9 is_stmt 1 view .LVU3060 3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8579 .loc 1 3988 17 is_stmt 0 view .LVU3061 8580 00b2 E36B ldr r3, [r4, #60] 3988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8581 .loc 1 3988 12 view .LVU3062 8582 00b4 002B cmp r3, #0 8583 00b6 C6D0 beq .L555 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8584 .loc 1 3992 11 is_stmt 1 view .LVU3063 3992:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8585 .loc 1 3992 43 is_stmt 0 view .LVU3064 8586 00b8 084A ldr r2, .L561+4 8587 00ba 5A63 str r2, [r3, #52] 3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8588 .loc 1 3995 11 is_stmt 1 view .LVU3065 3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8589 .loc 1 3995 15 is_stmt 0 view .LVU3066 8590 00bc E06B ldr r0, [r4, #60] 8591 00be FFF7FEFF bl HAL_DMA_Abort_IT 8592 .LVL607: 3995:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8593 .loc 1 3995 14 discriminator 1 view .LVU3067 8594 00c2 0028 cmp r0, #0 8595 00c4 BFD0 beq .L555 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8596 .loc 1 3998 13 is_stmt 1 view .LVU3068 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8597 .loc 1 3998 17 is_stmt 0 view .LVU3069 8598 00c6 E06B ldr r0, [r4, #60] 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8599 .loc 1 3998 25 view .LVU3070 8600 00c8 436B ldr r3, [r0, #52] 3998:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8601 .loc 1 3998 13 view .LVU3071 8602 00ca 9847 blx r3 8603 .LVL608: 8604 00cc BBE7 b .L555 8605 .LVL609: 8606 .L557: 4039:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8607 .loc 1 4039 12 view .LVU3072 8608 00ce 0120 movs r0, #1 8609 .LVL610: 8610 .L552: 4041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8611 .loc 1 4041 1 view .LVU3073 8612 00d0 F8BD pop {r3, r4, r5, r6, r7, pc} 8613 .LVL611: 8614 .L558: 3974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8615 .loc 1 3974 5 discriminator 1 view .LVU3074 ARM GAS /tmp/ccJ8PJrU.s page 335 8616 00d2 0220 movs r0, #2 8617 00d4 FCE7 b .L552 8618 .L562: 8619 00d6 00BF .align 2 8620 .L561: 8621 00d8 00000000 .word I2C_Slave_ISR_IT 8622 00dc 00000000 .word I2C_DMAAbort 8623 .cfi_endproc 8624 .LFE150: 8626 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits 8627 .align 1 8628 .global HAL_I2C_Slave_Seq_Transmit_DMA 8629 .syntax unified 8630 .thumb 8631 .thumb_func 8633 HAL_I2C_Slave_Seq_Transmit_DMA: 8634 .LVL612: 8635 .LFB151: 4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8636 .loc 1 4055 1 is_stmt 1 view -0 8637 .cfi_startproc 8638 @ args = 0, pretend = 0, frame = 0 8639 @ frame_needed = 0, uses_anonymous_args = 0 4055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8640 .loc 1 4055 1 is_stmt 0 view .LVU3076 8641 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8642 .cfi_def_cfa_offset 24 8643 .cfi_offset 3, -24 8644 .cfi_offset 4, -20 8645 .cfi_offset 5, -16 8646 .cfi_offset 6, -12 8647 .cfi_offset 7, -8 8648 .cfi_offset 14, -4 8649 0002 0446 mov r4, r0 4057:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8650 .loc 1 4057 3 is_stmt 1 view .LVU3077 4058:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8651 .loc 1 4058 3 view .LVU3078 4061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8652 .loc 1 4061 3 view .LVU3079 4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8653 .loc 1 4063 3 view .LVU3080 4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8654 .loc 1 4063 22 is_stmt 0 view .LVU3081 8655 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8656 .LVL613: 4063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8657 .loc 1 4063 6 view .LVU3082 8658 0008 00F02800 and r0, r0, #40 8659 000c 2828 cmp r0, #40 8660 000e 40F0C080 bne .L574 8661 0012 0F46 mov r7, r1 8662 0014 1646 mov r6, r2 8663 0016 1D46 mov r5, r3 4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8664 .loc 1 4065 5 is_stmt 1 view .LVU3083 4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 336 8665 .loc 1 4065 8 is_stmt 0 view .LVU3084 8666 0018 0029 cmp r1, #0 8667 001a 51D0 beq .L565 4065:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8668 .loc 1 4065 25 discriminator 1 view .LVU3085 8669 001c 002A cmp r2, #0 8670 001e 4FD0 beq .L565 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8671 .loc 1 4072 5 is_stmt 1 view .LVU3086 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8672 .loc 1 4072 5 view .LVU3087 8673 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8674 .LVL614: 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8675 .loc 1 4072 5 is_stmt 0 view .LVU3088 8676 0024 012B cmp r3, #1 8677 0026 00F0B780 beq .L575 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8678 .loc 1 4072 5 is_stmt 1 discriminator 2 view .LVU3089 8679 002a 0123 movs r3, #1 8680 002c 84F84030 strb r3, [r4, #64] 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8681 .loc 1 4072 5 discriminator 2 view .LVU3090 4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8682 .loc 1 4075 5 view .LVU3091 8683 0030 48F20101 movw r1, #32769 8684 .LVL615: 4075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8685 .loc 1 4075 5 is_stmt 0 view .LVU3092 8686 0034 2046 mov r0, r4 8687 0036 FFF7FEFF bl I2C_Disable_IRQ 8688 .LVL616: 4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8689 .loc 1 4079 5 is_stmt 1 view .LVU3093 4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8690 .loc 1 4079 13 is_stmt 0 view .LVU3094 8691 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8692 003e DBB2 uxtb r3, r3 4079:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8693 .loc 1 4079 8 view .LVU3095 8694 0040 2A2B cmp r3, #42 8695 0042 42D0 beq .L578 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8696 .loc 1 4104 10 is_stmt 1 view .LVU3096 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8697 .loc 1 4104 18 is_stmt 0 view .LVU3097 8698 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8699 0048 DBB2 uxtb r3, r3 4104:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8700 .loc 1 4104 13 view .LVU3098 8701 004a 292B cmp r3, #41 8702 004c 59D0 beq .L579 8703 .L568: 4129:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8704 .loc 1 4129 5 is_stmt 1 view .LVU3099 4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8705 .loc 1 4131 5 view .LVU3100 ARM GAS /tmp/ccJ8PJrU.s page 337 4131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8706 .loc 1 4131 21 is_stmt 0 view .LVU3101 8707 004e 2923 movs r3, #41 8708 0050 84F84130 strb r3, [r4, #65] 4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8709 .loc 1 4132 5 is_stmt 1 view .LVU3102 4132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8710 .loc 1 4132 21 is_stmt 0 view .LVU3103 8711 0054 2023 movs r3, #32 8712 0056 84F84230 strb r3, [r4, #66] 4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8713 .loc 1 4133 5 is_stmt 1 view .LVU3104 4133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8714 .loc 1 4133 21 is_stmt 0 view .LVU3105 8715 005a 0023 movs r3, #0 8716 005c 6364 str r3, [r4, #68] 4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8717 .loc 1 4136 5 is_stmt 1 view .LVU3106 4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8718 .loc 1 4136 9 is_stmt 0 view .LVU3107 8719 005e 2268 ldr r2, [r4] 4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8720 .loc 1 4136 19 view .LVU3108 8721 0060 5368 ldr r3, [r2, #4] 4136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8722 .loc 1 4136 25 view .LVU3109 8723 0062 23F40043 bic r3, r3, #32768 8724 0066 5360 str r3, [r2, #4] 4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 8725 .loc 1 4139 5 is_stmt 1 view .LVU3110 4139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 8726 .loc 1 4139 23 is_stmt 0 view .LVU3111 8727 0068 6762 str r7, [r4, #36] 4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8728 .loc 1 4140 5 is_stmt 1 view .LVU3112 4140:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8729 .loc 1 4140 23 is_stmt 0 view .LVU3113 8730 006a 6685 strh r6, [r4, #42] @ movhi 4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8731 .loc 1 4141 5 is_stmt 1 view .LVU3114 4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8732 .loc 1 4141 29 is_stmt 0 view .LVU3115 8733 006c 638D ldrh r3, [r4, #42] 4141:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8734 .loc 1 4141 23 view .LVU3116 8735 006e 2385 strh r3, [r4, #40] @ movhi 4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8736 .loc 1 4142 5 is_stmt 1 view .LVU3117 4142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8737 .loc 1 4142 23 is_stmt 0 view .LVU3118 8738 0070 E562 str r5, [r4, #44] 4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8739 .loc 1 4143 5 is_stmt 1 view .LVU3119 4143:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8740 .loc 1 4143 23 is_stmt 0 view .LVU3120 8741 0072 4A4B ldr r3, .L580 8742 0074 6363 str r3, [r4, #52] ARM GAS /tmp/ccJ8PJrU.s page 338 4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8743 .loc 1 4145 5 is_stmt 1 view .LVU3121 4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8744 .loc 1 4145 13 is_stmt 0 view .LVU3122 8745 0076 A36B ldr r3, [r4, #56] 4145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8746 .loc 1 4145 8 view .LVU3123 8747 0078 002B cmp r3, #0 8748 007a 59D0 beq .L569 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8749 .loc 1 4148 7 is_stmt 1 view .LVU3124 4148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8750 .loc 1 4148 38 is_stmt 0 view .LVU3125 8751 007c 484A ldr r2, .L580+4 8752 007e 9A62 str r2, [r3, #40] 4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8753 .loc 1 4151 7 is_stmt 1 view .LVU3126 4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8754 .loc 1 4151 11 is_stmt 0 view .LVU3127 8755 0080 A36B ldr r3, [r4, #56] 4151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8756 .loc 1 4151 39 view .LVU3128 8757 0082 484A ldr r2, .L580+8 8758 0084 1A63 str r2, [r3, #48] 4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8759 .loc 1 4154 7 is_stmt 1 view .LVU3129 4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8760 .loc 1 4154 11 is_stmt 0 view .LVU3130 8761 0086 A26B ldr r2, [r4, #56] 4154:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8762 .loc 1 4154 42 view .LVU3131 8763 0088 0023 movs r3, #0 8764 008a D362 str r3, [r2, #44] 4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8765 .loc 1 4155 7 is_stmt 1 view .LVU3132 4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8766 .loc 1 4155 11 is_stmt 0 view .LVU3133 8767 008c A26B ldr r2, [r4, #56] 4155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8768 .loc 1 4155 39 view .LVU3134 8769 008e 5363 str r3, [r2, #52] 4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 8770 .loc 1 4158 7 is_stmt 1 view .LVU3135 4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 8771 .loc 1 4158 86 is_stmt 0 view .LVU3136 8772 0090 2268 ldr r2, [r4] 4158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize); 8773 .loc 1 4158 23 view .LVU3137 8774 0092 238D ldrh r3, [r4, #40] 8775 0094 2832 adds r2, r2, #40 8776 0096 3946 mov r1, r7 8777 0098 A06B ldr r0, [r4, #56] 8778 009a FFF7FEFF bl HAL_DMA_Start_IT 8779 .LVL617: 4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8780 .loc 1 4176 5 is_stmt 1 view .LVU3138 4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 339 8781 .loc 1 4176 8 is_stmt 0 view .LVU3139 8782 009e 0546 mov r5, r0 8783 .LVL618: 4176:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8784 .loc 1 4176 8 view .LVU3140 8785 00a0 0028 cmp r0, #0 8786 00a2 53D0 beq .L570 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8787 .loc 1 4187 7 is_stmt 1 view .LVU3141 4187:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8788 .loc 1 4187 23 is_stmt 0 view .LVU3142 8789 00a4 2823 movs r3, #40 8790 00a6 84F84130 strb r3, [r4, #65] 4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8791 .loc 1 4188 7 is_stmt 1 view .LVU3143 4188:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8792 .loc 1 4188 23 is_stmt 0 view .LVU3144 8793 00aa 0022 movs r2, #0 8794 00ac 84F84220 strb r2, [r4, #66] 4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8795 .loc 1 4191 7 is_stmt 1 view .LVU3145 4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8796 .loc 1 4191 11 is_stmt 0 view .LVU3146 8797 00b0 636C ldr r3, [r4, #68] 4191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8798 .loc 1 4191 23 view .LVU3147 8799 00b2 43F01003 orr r3, r3, #16 8800 00b6 6364 str r3, [r4, #68] 4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8801 .loc 1 4194 7 is_stmt 1 view .LVU3148 4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8802 .loc 1 4194 7 view .LVU3149 8803 00b8 84F84020 strb r2, [r4, #64] 4194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8804 .loc 1 4194 7 view .LVU3150 4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8805 .loc 1 4196 7 view .LVU3151 4196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8806 .loc 1 4196 14 is_stmt 0 view .LVU3152 8807 00bc 0125 movs r5, #1 8808 00be 69E0 b .L564 8809 .LVL619: 8810 .L565: 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8811 .loc 1 4067 7 is_stmt 1 view .LVU3153 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8812 .loc 1 4067 23 is_stmt 0 view .LVU3154 8813 00c0 4FF40073 mov r3, #512 8814 .LVL620: 4067:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 8815 .loc 1 4067 23 view .LVU3155 8816 00c4 6364 str r3, [r4, #68] 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8817 .loc 1 4068 7 is_stmt 1 view .LVU3156 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8818 .loc 1 4068 15 is_stmt 0 view .LVU3157 8819 00c6 0125 movs r5, #1 ARM GAS /tmp/ccJ8PJrU.s page 340 8820 .LVL621: 4068:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8821 .loc 1 4068 15 view .LVU3158 8822 00c8 64E0 b .L564 8823 .LVL622: 8824 .L578: 4082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8825 .loc 1 4082 7 is_stmt 1 view .LVU3159 8826 00ca 0221 movs r1, #2 8827 00cc 2046 mov r0, r4 8828 00ce FFF7FEFF bl I2C_Disable_IRQ 8829 .LVL623: 4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8830 .loc 1 4084 7 view .LVU3160 4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8831 .loc 1 4084 16 is_stmt 0 view .LVU3161 8832 00d2 2368 ldr r3, [r4] 4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8833 .loc 1 4084 26 view .LVU3162 8834 00d4 1A68 ldr r2, [r3] 4084:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8835 .loc 1 4084 10 view .LVU3163 8836 00d6 12F4004F tst r2, #32768 8837 00da B8D0 beq .L568 4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8838 .loc 1 4087 9 is_stmt 1 view .LVU3164 4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8839 .loc 1 4087 17 is_stmt 0 view .LVU3165 8840 00dc E26B ldr r2, [r4, #60] 4087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8841 .loc 1 4087 12 view .LVU3166 8842 00de 002A cmp r2, #0 8843 00e0 B5D0 beq .L568 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8844 .loc 1 4089 11 is_stmt 1 view .LVU3167 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8845 .loc 1 4089 25 is_stmt 0 view .LVU3168 8846 00e2 1A68 ldr r2, [r3] 4089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8847 .loc 1 4089 31 view .LVU3169 8848 00e4 22F40042 bic r2, r2, #32768 8849 00e8 1A60 str r2, [r3] 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8850 .loc 1 4093 11 is_stmt 1 view .LVU3170 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8851 .loc 1 4093 15 is_stmt 0 view .LVU3171 8852 00ea E36B ldr r3, [r4, #60] 4093:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8853 .loc 1 4093 43 view .LVU3172 8854 00ec 2E4A ldr r2, .L580+12 8855 00ee 5A63 str r2, [r3, #52] 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8856 .loc 1 4096 11 is_stmt 1 view .LVU3173 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8857 .loc 1 4096 15 is_stmt 0 view .LVU3174 8858 00f0 E06B ldr r0, [r4, #60] 8859 00f2 FFF7FEFF bl HAL_DMA_Abort_IT ARM GAS /tmp/ccJ8PJrU.s page 341 8860 .LVL624: 4096:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8861 .loc 1 4096 14 discriminator 1 view .LVU3175 8862 00f6 0028 cmp r0, #0 8863 00f8 A9D0 beq .L568 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8864 .loc 1 4099 13 is_stmt 1 view .LVU3176 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8865 .loc 1 4099 17 is_stmt 0 view .LVU3177 8866 00fa E06B ldr r0, [r4, #60] 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8867 .loc 1 4099 25 view .LVU3178 8868 00fc 436B ldr r3, [r0, #52] 4099:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8869 .loc 1 4099 13 view .LVU3179 8870 00fe 9847 blx r3 8871 .LVL625: 8872 0100 A5E7 b .L568 8873 .L579: 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8874 .loc 1 4106 7 is_stmt 1 view .LVU3180 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8875 .loc 1 4106 16 is_stmt 0 view .LVU3181 8876 0102 2368 ldr r3, [r4] 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8877 .loc 1 4106 26 view .LVU3182 8878 0104 1A68 ldr r2, [r3] 4106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8879 .loc 1 4106 10 view .LVU3183 8880 0106 12F4804F tst r2, #16384 8881 010a A0D0 beq .L568 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8882 .loc 1 4108 9 is_stmt 1 view .LVU3184 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8883 .loc 1 4108 23 is_stmt 0 view .LVU3185 8884 010c 1A68 ldr r2, [r3] 4108:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8885 .loc 1 4108 29 view .LVU3186 8886 010e 22F48042 bic r2, r2, #16384 8887 0112 1A60 str r2, [r3] 4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8888 .loc 1 4111 9 is_stmt 1 view .LVU3187 4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8889 .loc 1 4111 17 is_stmt 0 view .LVU3188 8890 0114 A36B ldr r3, [r4, #56] 4111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8891 .loc 1 4111 12 view .LVU3189 8892 0116 002B cmp r3, #0 8893 0118 99D0 beq .L568 4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8894 .loc 1 4115 11 is_stmt 1 view .LVU3190 4115:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8895 .loc 1 4115 43 is_stmt 0 view .LVU3191 8896 011a 234A ldr r2, .L580+12 8897 011c 5A63 str r2, [r3, #52] 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8898 .loc 1 4118 11 is_stmt 1 view .LVU3192 ARM GAS /tmp/ccJ8PJrU.s page 342 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8899 .loc 1 4118 15 is_stmt 0 view .LVU3193 8900 011e A06B ldr r0, [r4, #56] 8901 0120 FFF7FEFF bl HAL_DMA_Abort_IT 8902 .LVL626: 4118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8903 .loc 1 4118 14 discriminator 1 view .LVU3194 8904 0124 0028 cmp r0, #0 8905 0126 92D0 beq .L568 4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8906 .loc 1 4121 13 is_stmt 1 view .LVU3195 4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8907 .loc 1 4121 17 is_stmt 0 view .LVU3196 8908 0128 A06B ldr r0, [r4, #56] 4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8909 .loc 1 4121 25 view .LVU3197 8910 012a 436B ldr r3, [r0, #52] 4121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8911 .loc 1 4121 13 view .LVU3198 8912 012c 9847 blx r3 8913 .LVL627: 8914 012e 8EE7 b .L568 8915 .L569: 4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8916 .loc 1 4164 7 is_stmt 1 view .LVU3199 4164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8917 .loc 1 4164 23 is_stmt 0 view .LVU3200 8918 0130 2823 movs r3, #40 8919 0132 84F84130 strb r3, [r4, #65] 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8920 .loc 1 4165 7 is_stmt 1 view .LVU3201 4165:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8921 .loc 1 4165 23 is_stmt 0 view .LVU3202 8922 0136 0022 movs r2, #0 8923 0138 84F84220 strb r2, [r4, #66] 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8924 .loc 1 4168 7 is_stmt 1 view .LVU3203 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8925 .loc 1 4168 11 is_stmt 0 view .LVU3204 8926 013c 636C ldr r3, [r4, #68] 4168:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8927 .loc 1 4168 23 view .LVU3205 8928 013e 43F08003 orr r3, r3, #128 8929 0142 6364 str r3, [r4, #68] 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8930 .loc 1 4171 7 is_stmt 1 view .LVU3206 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8931 .loc 1 4171 7 view .LVU3207 8932 0144 84F84020 strb r2, [r4, #64] 4171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8933 .loc 1 4171 7 view .LVU3208 4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8934 .loc 1 4173 7 view .LVU3209 4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8935 .loc 1 4173 14 is_stmt 0 view .LVU3210 8936 0148 0125 movs r5, #1 8937 .LVL628: ARM GAS /tmp/ccJ8PJrU.s page 343 4173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8938 .loc 1 4173 14 view .LVU3211 8939 014a 23E0 b .L564 8940 .LVL629: 8941 .L570: 4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8942 .loc 1 4179 7 is_stmt 1 view .LVU3212 4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8943 .loc 1 4179 11 is_stmt 0 view .LVU3213 8944 014c 638D ldrh r3, [r4, #42] 8945 014e 9BB2 uxth r3, r3 4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8946 .loc 1 4179 30 view .LVU3214 8947 0150 228D ldrh r2, [r4, #40] 4179:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8948 .loc 1 4179 23 view .LVU3215 8949 0152 9B1A subs r3, r3, r2 8950 0154 9BB2 uxth r3, r3 8951 0156 6385 strh r3, [r4, #42] @ movhi 4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8952 .loc 1 4182 7 is_stmt 1 view .LVU3216 4182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8953 .loc 1 4182 22 is_stmt 0 view .LVU3217 8954 0158 0023 movs r3, #0 8955 015a 2385 strh r3, [r4, #40] @ movhi 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8956 .loc 1 4199 5 is_stmt 1 view .LVU3218 4199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8957 .loc 1 4199 11 is_stmt 0 view .LVU3219 8958 015c 2268 ldr r2, [r4] 8959 015e 9369 ldr r3, [r2, #24] 8960 0160 03F00803 and r3, r3, #8 8961 .LVL630: 4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8962 .loc 1 4200 5 is_stmt 1 view .LVU3220 4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8963 .loc 1 4200 10 is_stmt 0 view .LVU3221 8964 0164 9169 ldr r1, [r2, #24] 4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8965 .loc 1 4200 8 view .LVU3222 8966 0166 11F4803F tst r1, #65536 8967 016a 0DD1 bne .L572 8968 .LVL631: 8969 .L573: 4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8970 .loc 1 4208 5 is_stmt 1 view .LVU3223 4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8971 .loc 1 4208 5 view .LVU3224 8972 016c 0023 movs r3, #0 8973 016e 84F84030 strb r3, [r4, #64] 4208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8974 .loc 1 4208 5 view .LVU3225 4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8975 .loc 1 4211 5 view .LVU3226 4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8976 .loc 1 4211 9 is_stmt 0 view .LVU3227 8977 0172 2268 ldr r2, [r4] ARM GAS /tmp/ccJ8PJrU.s page 344 4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8978 .loc 1 4211 19 view .LVU3228 8979 0174 1368 ldr r3, [r2] 4211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8980 .loc 1 4211 25 view .LVU3229 8981 0176 43F48043 orr r3, r3, #16384 8982 017a 1360 str r3, [r2] 4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8983 .loc 1 4217 5 is_stmt 1 view .LVU3230 8984 017c 4FF40041 mov r1, #32768 8985 0180 2046 mov r0, r4 8986 .LVL632: 4217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 8987 .loc 1 4217 5 is_stmt 0 view .LVU3231 8988 0182 FFF7FEFF bl I2C_Enable_IRQ 8989 .LVL633: 4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8990 .loc 1 4219 5 is_stmt 1 view .LVU3232 4219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8991 .loc 1 4219 12 is_stmt 0 view .LVU3233 8992 0186 05E0 b .L564 8993 .LVL634: 8994 .L572: 4200:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 8995 .loc 1 4200 54 discriminator 1 view .LVU3234 8996 0188 002B cmp r3, #0 8997 018a EFD0 beq .L573 4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 8998 .loc 1 4204 7 is_stmt 1 view .LVU3235 8999 018c 0823 movs r3, #8 9000 .LVL635: 4204:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9001 .loc 1 4204 7 is_stmt 0 view .LVU3236 9002 018e D361 str r3, [r2, #28] 9003 0190 ECE7 b .L573 9004 .LVL636: 9005 .L574: 4223:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9006 .loc 1 4223 12 view .LVU3237 9007 0192 0125 movs r5, #1 9008 .LVL637: 9009 .L564: 4225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9010 .loc 1 4225 1 view .LVU3238 9011 0194 2846 mov r0, r5 9012 0196 F8BD pop {r3, r4, r5, r6, r7, pc} 9013 .LVL638: 9014 .L575: 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9015 .loc 1 4072 5 discriminator 1 view .LVU3239 9016 0198 0225 movs r5, #2 9017 .LVL639: 4072:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9018 .loc 1 4072 5 discriminator 1 view .LVU3240 9019 019a FBE7 b .L564 9020 .L581: 9021 .align 2 ARM GAS /tmp/ccJ8PJrU.s page 345 9022 .L580: 9023 019c 00000000 .word I2C_Slave_ISR_DMA 9024 01a0 00000000 .word I2C_DMASlaveTransmitCplt 9025 01a4 00000000 .word I2C_DMAError 9026 01a8 00000000 .word I2C_DMAAbort 9027 .cfi_endproc 9028 .LFE151: 9030 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits 9031 .align 1 9032 .global HAL_I2C_Slave_Seq_Receive_IT 9033 .syntax unified 9034 .thumb 9035 .thumb_func 9037 HAL_I2C_Slave_Seq_Receive_IT: 9038 .LVL640: 9039 .LFB152: 4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9040 .loc 1 4239 1 is_stmt 1 view -0 9041 .cfi_startproc 9042 @ args = 0, pretend = 0, frame = 0 9043 @ frame_needed = 0, uses_anonymous_args = 0 4239:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9044 .loc 1 4239 1 is_stmt 0 view .LVU3242 9045 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9046 .cfi_def_cfa_offset 24 9047 .cfi_offset 3, -24 9048 .cfi_offset 4, -20 9049 .cfi_offset 5, -16 9050 .cfi_offset 6, -12 9051 .cfi_offset 7, -8 9052 .cfi_offset 14, -4 9053 0002 0446 mov r4, r0 4241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9054 .loc 1 4241 3 is_stmt 1 view .LVU3243 4244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9055 .loc 1 4244 3 view .LVU3244 4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9056 .loc 1 4246 3 view .LVU3245 4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9057 .loc 1 4246 22 is_stmt 0 view .LVU3246 9058 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 9059 .LVL641: 4246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9060 .loc 1 4246 6 view .LVU3247 9061 0008 00F02800 and r0, r0, #40 9062 000c 2828 cmp r0, #40 9063 000e 5ED1 bne .L588 9064 0010 0F46 mov r7, r1 9065 0012 1646 mov r6, r2 9066 0014 1D46 mov r5, r3 4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9067 .loc 1 4248 5 is_stmt 1 view .LVU3248 4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9068 .loc 1 4248 8 is_stmt 0 view .LVU3249 9069 0016 01B1 cbz r1, .L584 4248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9070 .loc 1 4248 25 discriminator 1 view .LVU3250 ARM GAS /tmp/ccJ8PJrU.s page 346 9071 0018 22B9 cbnz r2, .L585 9072 .L584: 4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 9073 .loc 1 4250 7 is_stmt 1 view .LVU3251 4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 9074 .loc 1 4250 23 is_stmt 0 view .LVU3252 9075 001a 4FF40073 mov r3, #512 9076 .LVL642: 4250:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 9077 .loc 1 4250 23 view .LVU3253 9078 001e 6364 str r3, [r4, #68] 4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9079 .loc 1 4251 7 is_stmt 1 view .LVU3254 4251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9080 .loc 1 4251 15 is_stmt 0 view .LVU3255 9081 0020 0120 movs r0, #1 9082 0022 55E0 b .L583 9083 .LVL643: 9084 .L585: 4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9085 .loc 1 4255 5 is_stmt 1 view .LVU3256 9086 0024 48F20201 movw r1, #32770 9087 .LVL644: 4255:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9088 .loc 1 4255 5 is_stmt 0 view .LVU3257 9089 0028 2046 mov r0, r4 9090 002a FFF7FEFF bl I2C_Disable_IRQ 9091 .LVL645: 4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9092 .loc 1 4258 5 is_stmt 1 view .LVU3258 4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9093 .loc 1 4258 5 view .LVU3259 9094 002e 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9095 0032 012B cmp r3, #1 9096 0034 4DD0 beq .L589 4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9097 .loc 1 4258 5 discriminator 2 view .LVU3260 9098 0036 0123 movs r3, #1 9099 0038 84F84030 strb r3, [r4, #64] 4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9100 .loc 1 4258 5 discriminator 2 view .LVU3261 4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9101 .loc 1 4262 5 view .LVU3262 4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9102 .loc 1 4262 13 is_stmt 0 view .LVU3263 9103 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9104 0040 DBB2 uxtb r3, r3 4262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9105 .loc 1 4262 8 view .LVU3264 9106 0042 292B cmp r3, #41 9107 0044 28D0 beq .L591 9108 .L586: 4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9109 .loc 1 4288 5 is_stmt 1 view .LVU3265 4288:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9110 .loc 1 4288 21 is_stmt 0 view .LVU3266 9111 0046 2A23 movs r3, #42 ARM GAS /tmp/ccJ8PJrU.s page 347 9112 0048 84F84130 strb r3, [r4, #65] 4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9113 .loc 1 4289 5 is_stmt 1 view .LVU3267 4289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9114 .loc 1 4289 21 is_stmt 0 view .LVU3268 9115 004c 2023 movs r3, #32 9116 004e 84F84230 strb r3, [r4, #66] 4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9117 .loc 1 4290 5 is_stmt 1 view .LVU3269 4290:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9118 .loc 1 4290 21 is_stmt 0 view .LVU3270 9119 0052 0023 movs r3, #0 9120 0054 6364 str r3, [r4, #68] 4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9121 .loc 1 4293 5 is_stmt 1 view .LVU3271 4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9122 .loc 1 4293 9 is_stmt 0 view .LVU3272 9123 0056 2268 ldr r2, [r4] 4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9124 .loc 1 4293 19 view .LVU3273 9125 0058 5368 ldr r3, [r2, #4] 4293:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9126 .loc 1 4293 25 view .LVU3274 9127 005a 23F40043 bic r3, r3, #32768 9128 005e 5360 str r3, [r2, #4] 4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 9129 .loc 1 4296 5 is_stmt 1 view .LVU3275 4296:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 9130 .loc 1 4296 23 is_stmt 0 view .LVU3276 9131 0060 6762 str r7, [r4, #36] 4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9132 .loc 1 4297 5 is_stmt 1 view .LVU3277 4297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9133 .loc 1 4297 23 is_stmt 0 view .LVU3278 9134 0062 6685 strh r6, [r4, #42] @ movhi 4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9135 .loc 1 4298 5 is_stmt 1 view .LVU3279 4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9136 .loc 1 4298 29 is_stmt 0 view .LVU3280 9137 0064 638D ldrh r3, [r4, #42] 4298:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9138 .loc 1 4298 23 view .LVU3281 9139 0066 2385 strh r3, [r4, #40] @ movhi 4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9140 .loc 1 4299 5 is_stmt 1 view .LVU3282 4299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9141 .loc 1 4299 23 is_stmt 0 view .LVU3283 9142 0068 E562 str r5, [r4, #44] 4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9143 .loc 1 4300 5 is_stmt 1 view .LVU3284 4300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9144 .loc 1 4300 23 is_stmt 0 view .LVU3285 9145 006a 1B4B ldr r3, .L592 9146 006c 6363 str r3, [r4, #52] 4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9147 .loc 1 4302 5 is_stmt 1 view .LVU3286 4302:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) ARM GAS /tmp/ccJ8PJrU.s page 348 9148 .loc 1 4302 11 is_stmt 0 view .LVU3287 9149 006e 2268 ldr r2, [r4] 9150 0070 9369 ldr r3, [r2, #24] 9151 0072 03F00803 and r3, r3, #8 9152 .LVL646: 4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9153 .loc 1 4303 5 is_stmt 1 view .LVU3288 4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9154 .loc 1 4303 10 is_stmt 0 view .LVU3289 9155 0076 9169 ldr r1, [r2, #24] 4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9156 .loc 1 4303 8 view .LVU3290 9157 0078 11F4803F tst r1, #65536 9158 007c 02D1 bne .L587 4303:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9159 .loc 1 4303 55 discriminator 1 view .LVU3291 9160 007e 0BB1 cbz r3, .L587 4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9161 .loc 1 4307 7 is_stmt 1 view .LVU3292 9162 0080 0823 movs r3, #8 9163 .LVL647: 4307:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9164 .loc 1 4307 7 is_stmt 0 view .LVU3293 9165 0082 D361 str r3, [r2, #28] 9166 .L587: 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9167 .loc 1 4311 5 is_stmt 1 view .LVU3294 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9168 .loc 1 4311 5 view .LVU3295 9169 0084 0025 movs r5, #0 9170 .LVL648: 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9171 .loc 1 4311 5 is_stmt 0 view .LVU3296 9172 0086 84F84050 strb r5, [r4, #64] 4311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9173 .loc 1 4311 5 is_stmt 1 view .LVU3297 4317:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9174 .loc 1 4317 5 view .LVU3298 9175 008a 48F20201 movw r1, #32770 9176 008e 2046 mov r0, r4 9177 0090 FFF7FEFF bl I2C_Enable_IRQ 9178 .LVL649: 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9179 .loc 1 4319 5 view .LVU3299 4319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9180 .loc 1 4319 12 is_stmt 0 view .LVU3300 9181 0094 2846 mov r0, r5 9182 0096 1BE0 b .L583 9183 .LVL650: 9184 .L591: 4265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9185 .loc 1 4265 7 is_stmt 1 view .LVU3301 9186 0098 0121 movs r1, #1 9187 009a 2046 mov r0, r4 9188 009c FFF7FEFF bl I2C_Disable_IRQ 9189 .LVL651: 4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 349 9190 .loc 1 4267 7 view .LVU3302 4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9191 .loc 1 4267 16 is_stmt 0 view .LVU3303 9192 00a0 2368 ldr r3, [r4] 4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9193 .loc 1 4267 26 view .LVU3304 9194 00a2 1A68 ldr r2, [r3] 4267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9195 .loc 1 4267 10 view .LVU3305 9196 00a4 12F4804F tst r2, #16384 9197 00a8 CDD0 beq .L586 4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9198 .loc 1 4269 9 is_stmt 1 view .LVU3306 4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9199 .loc 1 4269 23 is_stmt 0 view .LVU3307 9200 00aa 1A68 ldr r2, [r3] 4269:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9201 .loc 1 4269 29 view .LVU3308 9202 00ac 22F48042 bic r2, r2, #16384 9203 00b0 1A60 str r2, [r3] 4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9204 .loc 1 4272 9 is_stmt 1 view .LVU3309 4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9205 .loc 1 4272 17 is_stmt 0 view .LVU3310 9206 00b2 A36B ldr r3, [r4, #56] 4272:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9207 .loc 1 4272 12 view .LVU3311 9208 00b4 002B cmp r3, #0 9209 00b6 C6D0 beq .L586 4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9210 .loc 1 4276 11 is_stmt 1 view .LVU3312 4276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9211 .loc 1 4276 43 is_stmt 0 view .LVU3313 9212 00b8 084A ldr r2, .L592+4 9213 00ba 5A63 str r2, [r3, #52] 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9214 .loc 1 4279 11 is_stmt 1 view .LVU3314 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9215 .loc 1 4279 15 is_stmt 0 view .LVU3315 9216 00bc A06B ldr r0, [r4, #56] 9217 00be FFF7FEFF bl HAL_DMA_Abort_IT 9218 .LVL652: 4279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9219 .loc 1 4279 14 discriminator 1 view .LVU3316 9220 00c2 0028 cmp r0, #0 9221 00c4 BFD0 beq .L586 4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9222 .loc 1 4282 13 is_stmt 1 view .LVU3317 4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9223 .loc 1 4282 17 is_stmt 0 view .LVU3318 9224 00c6 A06B ldr r0, [r4, #56] 4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9225 .loc 1 4282 25 view .LVU3319 9226 00c8 436B ldr r3, [r0, #52] 4282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9227 .loc 1 4282 13 view .LVU3320 9228 00ca 9847 blx r3 ARM GAS /tmp/ccJ8PJrU.s page 350 9229 .LVL653: 9230 00cc BBE7 b .L586 9231 .LVL654: 9232 .L588: 4323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9233 .loc 1 4323 12 view .LVU3321 9234 00ce 0120 movs r0, #1 9235 .LVL655: 9236 .L583: 4325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9237 .loc 1 4325 1 view .LVU3322 9238 00d0 F8BD pop {r3, r4, r5, r6, r7, pc} 9239 .LVL656: 9240 .L589: 4258:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9241 .loc 1 4258 5 discriminator 1 view .LVU3323 9242 00d2 0220 movs r0, #2 9243 00d4 FCE7 b .L583 9244 .L593: 9245 00d6 00BF .align 2 9246 .L592: 9247 00d8 00000000 .word I2C_Slave_ISR_IT 9248 00dc 00000000 .word I2C_DMAAbort 9249 .cfi_endproc 9250 .LFE152: 9252 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits 9253 .align 1 9254 .global HAL_I2C_Slave_Seq_Receive_DMA 9255 .syntax unified 9256 .thumb 9257 .thumb_func 9259 HAL_I2C_Slave_Seq_Receive_DMA: 9260 .LVL657: 9261 .LFB153: 4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9262 .loc 1 4339 1 is_stmt 1 view -0 9263 .cfi_startproc 9264 @ args = 0, pretend = 0, frame = 0 9265 @ frame_needed = 0, uses_anonymous_args = 0 4339:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9266 .loc 1 4339 1 is_stmt 0 view .LVU3325 9267 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9268 .cfi_def_cfa_offset 24 9269 .cfi_offset 3, -24 9270 .cfi_offset 4, -20 9271 .cfi_offset 5, -16 9272 .cfi_offset 6, -12 9273 .cfi_offset 7, -8 9274 .cfi_offset 14, -4 9275 0002 0446 mov r4, r0 4341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 9276 .loc 1 4341 3 is_stmt 1 view .LVU3326 4342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9277 .loc 1 4342 3 view .LVU3327 4345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9278 .loc 1 4345 3 view .LVU3328 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 351 9279 .loc 1 4347 3 view .LVU3329 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9280 .loc 1 4347 22 is_stmt 0 view .LVU3330 9281 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 9282 .LVL658: 4347:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9283 .loc 1 4347 6 view .LVU3331 9284 0008 00F02800 and r0, r0, #40 9285 000c 2828 cmp r0, #40 9286 000e 40F0BE80 bne .L605 9287 0012 0F46 mov r7, r1 9288 0014 1646 mov r6, r2 9289 0016 1D46 mov r5, r3 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9290 .loc 1 4349 5 is_stmt 1 view .LVU3332 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9291 .loc 1 4349 8 is_stmt 0 view .LVU3333 9292 0018 01B1 cbz r1, .L596 4349:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9293 .loc 1 4349 25 discriminator 1 view .LVU3334 9294 001a 22B9 cbnz r2, .L597 9295 .L596: 4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 9296 .loc 1 4351 7 is_stmt 1 view .LVU3335 4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 9297 .loc 1 4351 23 is_stmt 0 view .LVU3336 9298 001c 4FF40073 mov r3, #512 9299 .LVL659: 4351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return HAL_ERROR; 9300 .loc 1 4351 23 view .LVU3337 9301 0020 6364 str r3, [r4, #68] 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9302 .loc 1 4352 7 is_stmt 1 view .LVU3338 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9303 .loc 1 4352 15 is_stmt 0 view .LVU3339 9304 0022 0125 movs r5, #1 9305 .LVL660: 4352:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9306 .loc 1 4352 15 view .LVU3340 9307 0024 B4E0 b .L595 9308 .LVL661: 9309 .L597: 4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9310 .loc 1 4356 5 is_stmt 1 view .LVU3341 9311 0026 48F20201 movw r1, #32770 9312 .LVL662: 4356:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9313 .loc 1 4356 5 is_stmt 0 view .LVU3342 9314 002a 2046 mov r0, r4 9315 002c FFF7FEFF bl I2C_Disable_IRQ 9316 .LVL663: 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9317 .loc 1 4359 5 is_stmt 1 view .LVU3343 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9318 .loc 1 4359 5 view .LVU3344 9319 0030 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9320 0034 012B cmp r3, #1 ARM GAS /tmp/ccJ8PJrU.s page 352 9321 0036 00F0AD80 beq .L606 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9322 .loc 1 4359 5 discriminator 2 view .LVU3345 9323 003a 0123 movs r3, #1 9324 003c 84F84030 strb r3, [r4, #64] 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9325 .loc 1 4359 5 discriminator 2 view .LVU3346 4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9326 .loc 1 4363 5 view .LVU3347 4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9327 .loc 1 4363 13 is_stmt 0 view .LVU3348 9328 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9329 0044 DBB2 uxtb r3, r3 4363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9330 .loc 1 4363 8 view .LVU3349 9331 0046 292B cmp r3, #41 9332 0048 3DD0 beq .L609 4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9333 .loc 1 4388 10 is_stmt 1 view .LVU3350 4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9334 .loc 1 4388 18 is_stmt 0 view .LVU3351 9335 004a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9336 004e DBB2 uxtb r3, r3 4388:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9337 .loc 1 4388 13 view .LVU3352 9338 0050 2A2B cmp r3, #42 9339 0052 54D0 beq .L610 9340 .L599: 4413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9341 .loc 1 4413 5 is_stmt 1 view .LVU3353 4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9342 .loc 1 4415 5 view .LVU3354 4415:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9343 .loc 1 4415 21 is_stmt 0 view .LVU3355 9344 0054 2A23 movs r3, #42 9345 0056 84F84130 strb r3, [r4, #65] 4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9346 .loc 1 4416 5 is_stmt 1 view .LVU3356 4416:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9347 .loc 1 4416 21 is_stmt 0 view .LVU3357 9348 005a 2023 movs r3, #32 9349 005c 84F84230 strb r3, [r4, #66] 4417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9350 .loc 1 4417 5 is_stmt 1 view .LVU3358 4417:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9351 .loc 1 4417 21 is_stmt 0 view .LVU3359 9352 0060 0023 movs r3, #0 9353 0062 6364 str r3, [r4, #68] 4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9354 .loc 1 4420 5 is_stmt 1 view .LVU3360 4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9355 .loc 1 4420 9 is_stmt 0 view .LVU3361 9356 0064 2268 ldr r2, [r4] 4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9357 .loc 1 4420 19 view .LVU3362 9358 0066 5368 ldr r3, [r2, #4] 4420:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 353 9359 .loc 1 4420 25 view .LVU3363 9360 0068 23F40043 bic r3, r3, #32768 9361 006c 5360 str r3, [r2, #4] 4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 9362 .loc 1 4423 5 is_stmt 1 view .LVU3364 4423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = Size; 9363 .loc 1 4423 23 is_stmt 0 view .LVU3365 9364 006e 6762 str r7, [r4, #36] 4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9365 .loc 1 4424 5 is_stmt 1 view .LVU3366 4424:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9366 .loc 1 4424 23 is_stmt 0 view .LVU3367 9367 0070 6685 strh r6, [r4, #42] @ movhi 4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9368 .loc 1 4425 5 is_stmt 1 view .LVU3368 4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9369 .loc 1 4425 29 is_stmt 0 view .LVU3369 9370 0072 638D ldrh r3, [r4, #42] 4425:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9371 .loc 1 4425 23 view .LVU3370 9372 0074 2385 strh r3, [r4, #40] @ movhi 4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9373 .loc 1 4426 5 is_stmt 1 view .LVU3371 4426:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9374 .loc 1 4426 23 is_stmt 0 view .LVU3372 9375 0076 E562 str r5, [r4, #44] 4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9376 .loc 1 4427 5 is_stmt 1 view .LVU3373 4427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9377 .loc 1 4427 23 is_stmt 0 view .LVU3374 9378 0078 474B ldr r3, .L611 9379 007a 6363 str r3, [r4, #52] 4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9380 .loc 1 4429 5 is_stmt 1 view .LVU3375 4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9381 .loc 1 4429 13 is_stmt 0 view .LVU3376 9382 007c E36B ldr r3, [r4, #60] 4429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9383 .loc 1 4429 8 view .LVU3377 9384 007e 002B cmp r3, #0 9385 0080 54D0 beq .L600 4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9386 .loc 1 4432 7 is_stmt 1 view .LVU3378 4432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9387 .loc 1 4432 38 is_stmt 0 view .LVU3379 9388 0082 464A ldr r2, .L611+4 9389 0084 9A62 str r2, [r3, #40] 4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9390 .loc 1 4435 7 is_stmt 1 view .LVU3380 4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9391 .loc 1 4435 11 is_stmt 0 view .LVU3381 9392 0086 E36B ldr r3, [r4, #60] 4435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9393 .loc 1 4435 39 view .LVU3382 9394 0088 454A ldr r2, .L611+8 9395 008a 1A63 str r2, [r3, #48] 4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; ARM GAS /tmp/ccJ8PJrU.s page 354 9396 .loc 1 4438 7 is_stmt 1 view .LVU3383 4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9397 .loc 1 4438 11 is_stmt 0 view .LVU3384 9398 008c E26B ldr r2, [r4, #60] 4438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9399 .loc 1 4438 42 view .LVU3385 9400 008e 0023 movs r3, #0 9401 0090 D362 str r3, [r2, #44] 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9402 .loc 1 4439 7 is_stmt 1 view .LVU3386 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9403 .loc 1 4439 11 is_stmt 0 view .LVU3387 9404 0092 E26B ldr r2, [r4, #60] 4439:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9405 .loc 1 4439 39 view .LVU3388 9406 0094 5363 str r3, [r2, #52] 4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9407 .loc 1 4442 7 is_stmt 1 view .LVU3389 4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9408 .loc 1 4442 69 is_stmt 0 view .LVU3390 9409 0096 2168 ldr r1, [r4] 4442:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9410 .loc 1 4442 23 view .LVU3391 9411 0098 238D ldrh r3, [r4, #40] 9412 009a 3A46 mov r2, r7 9413 009c 2431 adds r1, r1, #36 9414 009e E06B ldr r0, [r4, #60] 9415 00a0 FFF7FEFF bl HAL_DMA_Start_IT 9416 .LVL664: 4460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9417 .loc 1 4460 5 is_stmt 1 view .LVU3392 4460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9418 .loc 1 4460 8 is_stmt 0 view .LVU3393 9419 00a4 0546 mov r5, r0 9420 .LVL665: 4460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9421 .loc 1 4460 8 view .LVU3394 9422 00a6 0028 cmp r0, #0 9423 00a8 4ED0 beq .L601 4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9424 .loc 1 4471 7 is_stmt 1 view .LVU3395 4471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9425 .loc 1 4471 23 is_stmt 0 view .LVU3396 9426 00aa 2823 movs r3, #40 9427 00ac 84F84130 strb r3, [r4, #65] 4472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9428 .loc 1 4472 7 is_stmt 1 view .LVU3397 4472:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9429 .loc 1 4472 23 is_stmt 0 view .LVU3398 9430 00b0 0022 movs r2, #0 9431 00b2 84F84220 strb r2, [r4, #66] 4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9432 .loc 1 4475 7 is_stmt 1 view .LVU3399 4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9433 .loc 1 4475 11 is_stmt 0 view .LVU3400 9434 00b6 636C ldr r3, [r4, #68] 4475:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 355 9435 .loc 1 4475 23 view .LVU3401 9436 00b8 43F01003 orr r3, r3, #16 9437 00bc 6364 str r3, [r4, #68] 4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9438 .loc 1 4478 7 is_stmt 1 view .LVU3402 4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9439 .loc 1 4478 7 view .LVU3403 9440 00be 84F84020 strb r2, [r4, #64] 4478:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9441 .loc 1 4478 7 view .LVU3404 4480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9442 .loc 1 4480 7 view .LVU3405 4480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9443 .loc 1 4480 14 is_stmt 0 view .LVU3406 9444 00c2 0125 movs r5, #1 9445 00c4 64E0 b .L595 9446 .LVL666: 9447 .L609: 4366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9448 .loc 1 4366 7 is_stmt 1 view .LVU3407 9449 00c6 0121 movs r1, #1 9450 00c8 2046 mov r0, r4 9451 00ca FFF7FEFF bl I2C_Disable_IRQ 9452 .LVL667: 4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9453 .loc 1 4368 7 view .LVU3408 4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9454 .loc 1 4368 16 is_stmt 0 view .LVU3409 9455 00ce 2368 ldr r3, [r4] 4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9456 .loc 1 4368 26 view .LVU3410 9457 00d0 1A68 ldr r2, [r3] 4368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9458 .loc 1 4368 10 view .LVU3411 9459 00d2 12F4804F tst r2, #16384 9460 00d6 BDD0 beq .L599 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9461 .loc 1 4371 9 is_stmt 1 view .LVU3412 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9462 .loc 1 4371 17 is_stmt 0 view .LVU3413 9463 00d8 A26B ldr r2, [r4, #56] 4371:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9464 .loc 1 4371 12 view .LVU3414 9465 00da 002A cmp r2, #0 9466 00dc BAD0 beq .L599 4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9467 .loc 1 4373 11 is_stmt 1 view .LVU3415 4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9468 .loc 1 4373 25 is_stmt 0 view .LVU3416 9469 00de 1A68 ldr r2, [r3] 4373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9470 .loc 1 4373 31 view .LVU3417 9471 00e0 22F48042 bic r2, r2, #16384 9472 00e4 1A60 str r2, [r3] 4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9473 .loc 1 4377 11 is_stmt 1 view .LVU3418 4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 356 9474 .loc 1 4377 15 is_stmt 0 view .LVU3419 9475 00e6 A36B ldr r3, [r4, #56] 4377:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9476 .loc 1 4377 43 view .LVU3420 9477 00e8 2E4A ldr r2, .L611+12 9478 00ea 5A63 str r2, [r3, #52] 4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9479 .loc 1 4380 11 is_stmt 1 view .LVU3421 4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9480 .loc 1 4380 15 is_stmt 0 view .LVU3422 9481 00ec A06B ldr r0, [r4, #56] 9482 00ee FFF7FEFF bl HAL_DMA_Abort_IT 9483 .LVL668: 4380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9484 .loc 1 4380 14 discriminator 1 view .LVU3423 9485 00f2 0028 cmp r0, #0 9486 00f4 AED0 beq .L599 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9487 .loc 1 4383 13 is_stmt 1 view .LVU3424 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9488 .loc 1 4383 17 is_stmt 0 view .LVU3425 9489 00f6 A06B ldr r0, [r4, #56] 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9490 .loc 1 4383 25 view .LVU3426 9491 00f8 436B ldr r3, [r0, #52] 4383:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9492 .loc 1 4383 13 view .LVU3427 9493 00fa 9847 blx r3 9494 .LVL669: 9495 00fc AAE7 b .L599 9496 .L610: 4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9497 .loc 1 4390 7 is_stmt 1 view .LVU3428 4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9498 .loc 1 4390 16 is_stmt 0 view .LVU3429 9499 00fe 2368 ldr r3, [r4] 4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9500 .loc 1 4390 26 view .LVU3430 9501 0100 1A68 ldr r2, [r3] 4390:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9502 .loc 1 4390 10 view .LVU3431 9503 0102 12F4004F tst r2, #32768 9504 0106 A5D0 beq .L599 4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9505 .loc 1 4392 9 is_stmt 1 view .LVU3432 4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9506 .loc 1 4392 23 is_stmt 0 view .LVU3433 9507 0108 1A68 ldr r2, [r3] 4392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9508 .loc 1 4392 29 view .LVU3434 9509 010a 22F40042 bic r2, r2, #32768 9510 010e 1A60 str r2, [r3] 4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9511 .loc 1 4395 9 is_stmt 1 view .LVU3435 4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9512 .loc 1 4395 17 is_stmt 0 view .LVU3436 9513 0110 E36B ldr r3, [r4, #60] ARM GAS /tmp/ccJ8PJrU.s page 357 4395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9514 .loc 1 4395 12 view .LVU3437 9515 0112 002B cmp r3, #0 9516 0114 9ED0 beq .L599 4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9517 .loc 1 4399 11 is_stmt 1 view .LVU3438 4399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9518 .loc 1 4399 43 is_stmt 0 view .LVU3439 9519 0116 234A ldr r2, .L611+12 9520 0118 5A63 str r2, [r3, #52] 4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9521 .loc 1 4402 11 is_stmt 1 view .LVU3440 4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9522 .loc 1 4402 15 is_stmt 0 view .LVU3441 9523 011a E06B ldr r0, [r4, #60] 9524 011c FFF7FEFF bl HAL_DMA_Abort_IT 9525 .LVL670: 4402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9526 .loc 1 4402 14 discriminator 1 view .LVU3442 9527 0120 0028 cmp r0, #0 9528 0122 97D0 beq .L599 4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9529 .loc 1 4405 13 is_stmt 1 view .LVU3443 4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9530 .loc 1 4405 17 is_stmt 0 view .LVU3444 9531 0124 E06B ldr r0, [r4, #60] 4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9532 .loc 1 4405 25 view .LVU3445 9533 0126 436B ldr r3, [r0, #52] 4405:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9534 .loc 1 4405 13 view .LVU3446 9535 0128 9847 blx r3 9536 .LVL671: 9537 012a 93E7 b .L599 9538 .L600: 4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9539 .loc 1 4448 7 is_stmt 1 view .LVU3447 4448:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9540 .loc 1 4448 23 is_stmt 0 view .LVU3448 9541 012c 2823 movs r3, #40 9542 012e 84F84130 strb r3, [r4, #65] 4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9543 .loc 1 4449 7 is_stmt 1 view .LVU3449 4449:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9544 .loc 1 4449 23 is_stmt 0 view .LVU3450 9545 0132 0022 movs r2, #0 9546 0134 84F84220 strb r2, [r4, #66] 4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9547 .loc 1 4452 7 is_stmt 1 view .LVU3451 4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9548 .loc 1 4452 11 is_stmt 0 view .LVU3452 9549 0138 636C ldr r3, [r4, #68] 4452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9550 .loc 1 4452 23 view .LVU3453 9551 013a 43F08003 orr r3, r3, #128 9552 013e 6364 str r3, [r4, #68] 4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 358 9553 .loc 1 4455 7 is_stmt 1 view .LVU3454 4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9554 .loc 1 4455 7 view .LVU3455 9555 0140 84F84020 strb r2, [r4, #64] 4455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9556 .loc 1 4455 7 view .LVU3456 4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9557 .loc 1 4457 7 view .LVU3457 4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9558 .loc 1 4457 14 is_stmt 0 view .LVU3458 9559 0144 0125 movs r5, #1 9560 .LVL672: 4457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9561 .loc 1 4457 14 view .LVU3459 9562 0146 23E0 b .L595 9563 .LVL673: 9564 .L601: 4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9565 .loc 1 4463 7 is_stmt 1 view .LVU3460 4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9566 .loc 1 4463 11 is_stmt 0 view .LVU3461 9567 0148 638D ldrh r3, [r4, #42] 9568 014a 9BB2 uxth r3, r3 4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9569 .loc 1 4463 30 view .LVU3462 9570 014c 228D ldrh r2, [r4, #40] 4463:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9571 .loc 1 4463 23 view .LVU3463 9572 014e 9B1A subs r3, r3, r2 9573 0150 9BB2 uxth r3, r3 9574 0152 6385 strh r3, [r4, #42] @ movhi 4466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9575 .loc 1 4466 7 is_stmt 1 view .LVU3464 4466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9576 .loc 1 4466 22 is_stmt 0 view .LVU3465 9577 0154 0023 movs r3, #0 9578 0156 2385 strh r3, [r4, #40] @ movhi 4483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9579 .loc 1 4483 5 is_stmt 1 view .LVU3466 4483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9580 .loc 1 4483 11 is_stmt 0 view .LVU3467 9581 0158 2268 ldr r2, [r4] 9582 015a 9369 ldr r3, [r2, #24] 9583 015c 03F00803 and r3, r3, #8 9584 .LVL674: 4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9585 .loc 1 4484 5 is_stmt 1 view .LVU3468 4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9586 .loc 1 4484 10 is_stmt 0 view .LVU3469 9587 0160 9169 ldr r1, [r2, #24] 4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9588 .loc 1 4484 8 view .LVU3470 9589 0162 11F4803F tst r1, #65536 9590 0166 0DD0 beq .L603 9591 .LVL675: 9592 .L604: 4492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 359 9593 .loc 1 4492 5 is_stmt 1 view .LVU3471 4492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9594 .loc 1 4492 5 view .LVU3472 9595 0168 0023 movs r3, #0 9596 016a 84F84030 strb r3, [r4, #64] 4492:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9597 .loc 1 4492 5 view .LVU3473 4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9598 .loc 1 4495 5 view .LVU3474 4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9599 .loc 1 4495 9 is_stmt 0 view .LVU3475 9600 016e 2268 ldr r2, [r4] 4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9601 .loc 1 4495 19 view .LVU3476 9602 0170 1368 ldr r3, [r2] 4495:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9603 .loc 1 4495 25 view .LVU3477 9604 0172 43F40043 orr r3, r3, #32768 9605 0176 1360 str r3, [r2] 4501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9606 .loc 1 4501 5 is_stmt 1 view .LVU3478 9607 0178 48F20201 movw r1, #32770 9608 017c 2046 mov r0, r4 9609 .LVL676: 4501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9610 .loc 1 4501 5 is_stmt 0 view .LVU3479 9611 017e FFF7FEFF bl I2C_Enable_IRQ 9612 .LVL677: 4503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9613 .loc 1 4503 5 is_stmt 1 view .LVU3480 4503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9614 .loc 1 4503 12 is_stmt 0 view .LVU3481 9615 0182 05E0 b .L595 9616 .LVL678: 9617 .L603: 4484:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9618 .loc 1 4484 55 discriminator 1 view .LVU3482 9619 0184 002B cmp r3, #0 9620 0186 EFD0 beq .L604 4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9621 .loc 1 4488 7 is_stmt 1 view .LVU3483 9622 0188 0823 movs r3, #8 9623 .LVL679: 4488:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9624 .loc 1 4488 7 is_stmt 0 view .LVU3484 9625 018a D361 str r3, [r2, #28] 9626 018c ECE7 b .L604 9627 .LVL680: 9628 .L605: 4507:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9629 .loc 1 4507 12 view .LVU3485 9630 018e 0125 movs r5, #1 9631 .LVL681: 9632 .L595: 4509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9633 .loc 1 4509 1 view .LVU3486 9634 0190 2846 mov r0, r5 ARM GAS /tmp/ccJ8PJrU.s page 360 9635 0192 F8BD pop {r3, r4, r5, r6, r7, pc} 9636 .LVL682: 9637 .L606: 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9638 .loc 1 4359 5 discriminator 1 view .LVU3487 9639 0194 0225 movs r5, #2 9640 .LVL683: 4359:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9641 .loc 1 4359 5 discriminator 1 view .LVU3488 9642 0196 FBE7 b .L595 9643 .L612: 9644 .align 2 9645 .L611: 9646 0198 00000000 .word I2C_Slave_ISR_DMA 9647 019c 00000000 .word I2C_DMASlaveReceiveCplt 9648 01a0 00000000 .word I2C_DMAError 9649 01a4 00000000 .word I2C_DMAAbort 9650 .cfi_endproc 9651 .LFE153: 9653 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits 9654 .align 1 9655 .global HAL_I2C_EnableListen_IT 9656 .syntax unified 9657 .thumb 9658 .thumb_func 9660 HAL_I2C_EnableListen_IT: 9661 .LVL684: 9662 .LFB154: 4518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9663 .loc 1 4518 1 is_stmt 1 view -0 9664 .cfi_startproc 9665 @ args = 0, pretend = 0, frame = 0 9666 @ frame_needed = 0, uses_anonymous_args = 0 4518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9667 .loc 1 4518 1 is_stmt 0 view .LVU3490 9668 0000 08B5 push {r3, lr} 9669 .cfi_def_cfa_offset 8 9670 .cfi_offset 3, -8 9671 .cfi_offset 14, -4 4519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9672 .loc 1 4519 3 is_stmt 1 view .LVU3491 4519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9673 .loc 1 4519 11 is_stmt 0 view .LVU3492 9674 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9675 0006 DBB2 uxtb r3, r3 4519:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9676 .loc 1 4519 6 view .LVU3493 9677 0008 202B cmp r3, #32 9678 000a 01D0 beq .L617 4531:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9679 .loc 1 4531 12 view .LVU3494 9680 000c 0220 movs r0, #2 9681 .LVL685: 9682 .L614: 4533:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9683 .loc 1 4533 1 view .LVU3495 9684 000e 08BD pop {r3, pc} ARM GAS /tmp/ccJ8PJrU.s page 361 9685 .LVL686: 9686 .L617: 4521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9687 .loc 1 4521 5 is_stmt 1 view .LVU3496 4521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9688 .loc 1 4521 17 is_stmt 0 view .LVU3497 9689 0010 2823 movs r3, #40 9690 0012 80F84130 strb r3, [r0, #65] 4522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9691 .loc 1 4522 5 is_stmt 1 view .LVU3498 4522:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9692 .loc 1 4522 19 is_stmt 0 view .LVU3499 9693 0016 044B ldr r3, .L618 9694 0018 4363 str r3, [r0, #52] 4525:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9695 .loc 1 4525 5 is_stmt 1 view .LVU3500 9696 001a 4FF40041 mov r1, #32768 9697 001e FFF7FEFF bl I2C_Enable_IRQ 9698 .LVL687: 4527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9699 .loc 1 4527 5 view .LVU3501 4527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9700 .loc 1 4527 12 is_stmt 0 view .LVU3502 9701 0022 0020 movs r0, #0 9702 0024 F3E7 b .L614 9703 .L619: 9704 0026 00BF .align 2 9705 .L618: 9706 0028 00000000 .word I2C_Slave_ISR_IT 9707 .cfi_endproc 9708 .LFE154: 9710 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits 9711 .align 1 9712 .global HAL_I2C_DisableListen_IT 9713 .syntax unified 9714 .thumb 9715 .thumb_func 9717 HAL_I2C_DisableListen_IT: 9718 .LVL688: 9719 .LFB155: 4542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9720 .loc 1 4542 1 is_stmt 1 view -0 9721 .cfi_startproc 9722 @ args = 0, pretend = 0, frame = 0 9723 @ frame_needed = 0, uses_anonymous_args = 0 4544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9724 .loc 1 4544 3 view .LVU3504 4547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9725 .loc 1 4547 3 view .LVU3505 4547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9726 .loc 1 4547 11 is_stmt 0 view .LVU3506 9727 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9728 0004 DBB2 uxtb r3, r3 4547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9729 .loc 1 4547 6 view .LVU3507 9730 0006 282B cmp r3, #40 9731 0008 01D0 beq .L627 ARM GAS /tmp/ccJ8PJrU.s page 362 4562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9732 .loc 1 4562 12 view .LVU3508 9733 000a 0220 movs r0, #2 9734 .LVL689: 4564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9735 .loc 1 4564 1 view .LVU3509 9736 000c 7047 bx lr 9737 .LVL690: 9738 .L627: 4542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9739 .loc 1 4542 1 view .LVU3510 9740 000e 10B5 push {r4, lr} 9741 .cfi_def_cfa_offset 8 9742 .cfi_offset 4, -8 9743 .cfi_offset 14, -4 4549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9744 .loc 1 4549 5 is_stmt 1 view .LVU3511 4549:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9745 .loc 1 4549 26 is_stmt 0 view .LVU3512 9746 0010 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 9747 .LVL691: 4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9748 .loc 1 4550 5 is_stmt 1 view .LVU3513 4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9749 .loc 1 4550 48 is_stmt 0 view .LVU3514 9750 0014 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9751 .loc 1 4550 31 view .LVU3515 9752 0018 02F00302 and r2, r2, #3 9753 .LVL692: 4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9754 .loc 1 4550 31 view .LVU3516 9755 001c 1343 orrs r3, r3, r2 4550:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9756 .loc 1 4550 25 view .LVU3517 9757 001e 0363 str r3, [r0, #48] 4551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9758 .loc 1 4551 5 is_stmt 1 view .LVU3518 4551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9759 .loc 1 4551 17 is_stmt 0 view .LVU3519 9760 0020 2023 movs r3, #32 9761 0022 80F84130 strb r3, [r0, #65] 4552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 9762 .loc 1 4552 5 is_stmt 1 view .LVU3520 4552:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 9763 .loc 1 4552 16 is_stmt 0 view .LVU3521 9764 0026 0024 movs r4, #0 9765 0028 80F84240 strb r4, [r0, #66] 4553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9766 .loc 1 4553 5 is_stmt 1 view .LVU3522 4553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9767 .loc 1 4553 19 is_stmt 0 view .LVU3523 9768 002c 4463 str r4, [r0, #52] 4556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9769 .loc 1 4556 5 is_stmt 1 view .LVU3524 9770 002e 4FF40041 mov r1, #32768 9771 0032 FFF7FEFF bl I2C_Disable_IRQ ARM GAS /tmp/ccJ8PJrU.s page 363 9772 .LVL693: 4558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9773 .loc 1 4558 5 view .LVU3525 4558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9774 .loc 1 4558 12 is_stmt 0 view .LVU3526 9775 0036 2046 mov r0, r4 4564:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9776 .loc 1 4564 1 view .LVU3527 9777 0038 10BD pop {r4, pc} 9778 .cfi_endproc 9779 .LFE155: 9781 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits 9782 .align 1 9783 .global HAL_I2C_Master_Abort_IT 9784 .syntax unified 9785 .thumb 9786 .thumb_func 9788 HAL_I2C_Master_Abort_IT: 9789 .LVL694: 9790 .LFB156: 4575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 9791 .loc 1 4575 1 is_stmt 1 view -0 9792 .cfi_startproc 9793 @ args = 0, pretend = 0, frame = 0 9794 @ frame_needed = 0, uses_anonymous_args = 0 4575:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 9795 .loc 1 4575 1 is_stmt 0 view .LVU3529 9796 0000 30B5 push {r4, r5, lr} 9797 .cfi_def_cfa_offset 12 9798 .cfi_offset 4, -12 9799 .cfi_offset 5, -8 9800 .cfi_offset 14, -4 9801 0002 83B0 sub sp, sp, #12 9802 .cfi_def_cfa_offset 24 9803 0004 0446 mov r4, r0 9804 0006 0D46 mov r5, r1 4576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9805 .loc 1 4576 3 is_stmt 1 view .LVU3530 4576:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9806 .loc 1 4576 23 is_stmt 0 view .LVU3531 9807 0008 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 9808 000c DBB2 uxtb r3, r3 9809 .LVL695: 4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9810 .loc 1 4578 3 is_stmt 1 view .LVU3532 4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9811 .loc 1 4578 6 is_stmt 0 view .LVU3533 9812 000e 102B cmp r3, #16 9813 0010 01D0 beq .L629 4578:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9814 .loc 1 4578 41 discriminator 1 view .LVU3534 9815 0012 402B cmp r3, #64 9816 0014 34D1 bne .L633 9817 .L629: 4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9818 .loc 1 4581 5 is_stmt 1 view .LVU3535 4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 364 9819 .loc 1 4581 5 view .LVU3536 9820 0016 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9821 .LVL696: 4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9822 .loc 1 4581 5 is_stmt 0 view .LVU3537 9823 001a 012B cmp r3, #1 9824 001c 32D0 beq .L634 4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9825 .loc 1 4581 5 is_stmt 1 discriminator 2 view .LVU3538 9826 001e 0123 movs r3, #1 9827 0020 84F84030 strb r3, [r4, #64] 4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9828 .loc 1 4581 5 discriminator 2 view .LVU3539 4584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9829 .loc 1 4584 5 view .LVU3540 4584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9830 .loc 1 4584 13 is_stmt 0 view .LVU3541 9831 0024 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9832 0028 DBB2 uxtb r3, r3 4584:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9833 .loc 1 4584 8 view .LVU3542 9834 002a 212B cmp r3, #33 9835 002c 1AD0 beq .L636 4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9836 .loc 1 4589 10 is_stmt 1 view .LVU3543 4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9837 .loc 1 4589 18 is_stmt 0 view .LVU3544 9838 002e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9839 0032 DBB2 uxtb r3, r3 4589:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9840 .loc 1 4589 13 view .LVU3545 9841 0034 222B cmp r3, #34 9842 0036 1CD0 beq .L637 9843 .LVL697: 9844 .L632: 4597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9845 .loc 1 4597 5 is_stmt 1 view .LVU3546 4600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9846 .loc 1 4600 5 view .LVU3547 4600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9847 .loc 1 4600 17 is_stmt 0 view .LVU3548 9848 0038 6023 movs r3, #96 9849 003a 84F84130 strb r3, [r4, #65] 4604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9850 .loc 1 4604 5 is_stmt 1 view .LVU3549 9851 003e 124B ldr r3, .L638 9852 0040 0093 str r3, [sp] 9853 0042 4FF00073 mov r3, #33554432 9854 0046 0122 movs r2, #1 9855 0048 2946 mov r1, r5 9856 004a 2046 mov r0, r4 9857 004c FFF7FEFF bl I2C_TransferConfig 9858 .LVL698: 4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9859 .loc 1 4607 5 view .LVU3550 4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9860 .loc 1 4607 5 view .LVU3551 ARM GAS /tmp/ccJ8PJrU.s page 365 9861 0050 0025 movs r5, #0 9862 .LVL699: 4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9863 .loc 1 4607 5 is_stmt 0 view .LVU3552 9864 0052 84F84050 strb r5, [r4, #64] 4607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9865 .loc 1 4607 5 is_stmt 1 view .LVU3553 4612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9866 .loc 1 4612 5 view .LVU3554 9867 0056 2021 movs r1, #32 9868 0058 2046 mov r0, r4 9869 005a FFF7FEFF bl I2C_Enable_IRQ 9870 .LVL700: 4614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9871 .loc 1 4614 5 view .LVU3555 4614:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9872 .loc 1 4614 12 is_stmt 0 view .LVU3556 9873 005e 2846 mov r0, r5 9874 .L630: 4622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9875 .loc 1 4622 1 view .LVU3557 9876 0060 03B0 add sp, sp, #12 9877 .cfi_remember_state 9878 .cfi_def_cfa_offset 12 9879 @ sp needed 9880 0062 30BD pop {r4, r5, pc} 9881 .LVL701: 9882 .L636: 9883 .cfi_restore_state 4586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9884 .loc 1 4586 7 is_stmt 1 view .LVU3558 9885 0064 0121 movs r1, #1 9886 .LVL702: 4586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9887 .loc 1 4586 7 is_stmt 0 view .LVU3559 9888 0066 2046 mov r0, r4 9889 .LVL703: 4586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9890 .loc 1 4586 7 view .LVU3560 9891 0068 FFF7FEFF bl I2C_Disable_IRQ 9892 .LVL704: 4587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9893 .loc 1 4587 7 is_stmt 1 view .LVU3561 4587:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9894 .loc 1 4587 27 is_stmt 0 view .LVU3562 9895 006c 1123 movs r3, #17 9896 006e 2363 str r3, [r4, #48] 9897 0070 E2E7 b .L632 9898 .LVL705: 9899 .L637: 4591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9900 .loc 1 4591 7 is_stmt 1 view .LVU3563 9901 0072 0221 movs r1, #2 9902 .LVL706: 4591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9903 .loc 1 4591 7 is_stmt 0 view .LVU3564 9904 0074 2046 mov r0, r4 ARM GAS /tmp/ccJ8PJrU.s page 366 9905 .LVL707: 4591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9906 .loc 1 4591 7 view .LVU3565 9907 0076 FFF7FEFF bl I2C_Disable_IRQ 9908 .LVL708: 4592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9909 .loc 1 4592 7 is_stmt 1 view .LVU3566 4592:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9910 .loc 1 4592 27 is_stmt 0 view .LVU3567 9911 007a 1223 movs r3, #18 9912 007c 2363 str r3, [r4, #48] 9913 007e DBE7 b .L632 9914 .LVL709: 9915 .L633: 4620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9916 .loc 1 4620 12 view .LVU3568 9917 0080 0120 movs r0, #1 9918 .LVL710: 4620:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9919 .loc 1 4620 12 view .LVU3569 9920 0082 EDE7 b .L630 9921 .LVL711: 9922 .L634: 4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9923 .loc 1 4581 5 discriminator 1 view .LVU3570 9924 0084 0220 movs r0, #2 9925 .LVL712: 4581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9926 .loc 1 4581 5 discriminator 1 view .LVU3571 9927 0086 EBE7 b .L630 9928 .L639: 9929 .align 2 9930 .L638: 9931 0088 00400080 .word -2147467264 9932 .cfi_endproc 9933 .LFE156: 9935 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits 9936 .align 1 9937 .global HAL_I2C_EV_IRQHandler 9938 .syntax unified 9939 .thumb 9940 .thumb_func 9942 HAL_I2C_EV_IRQHandler: 9943 .LVL713: 9944 .LFB157: 4639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 9945 .loc 1 4639 1 is_stmt 1 view -0 9946 .cfi_startproc 9947 @ args = 0, pretend = 0, frame = 0 9948 @ frame_needed = 0, uses_anonymous_args = 0 4639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 9949 .loc 1 4639 1 is_stmt 0 view .LVU3573 9950 0000 08B5 push {r3, lr} 9951 .cfi_def_cfa_offset 8 9952 .cfi_offset 3, -8 9953 .cfi_offset 14, -4 4641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); ARM GAS /tmp/ccJ8PJrU.s page 367 9954 .loc 1 4641 3 is_stmt 1 view .LVU3574 4641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9955 .loc 1 4641 24 is_stmt 0 view .LVU3575 9956 0002 0368 ldr r3, [r0] 4641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9957 .loc 1 4641 12 view .LVU3576 9958 0004 9969 ldr r1, [r3, #24] 9959 .LVL714: 4642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9960 .loc 1 4642 3 is_stmt 1 view .LVU3577 4642:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9961 .loc 1 4642 12 is_stmt 0 view .LVU3578 9962 0006 1A68 ldr r2, [r3] 9963 .LVL715: 4645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9964 .loc 1 4645 3 is_stmt 1 view .LVU3579 4645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9965 .loc 1 4645 11 is_stmt 0 view .LVU3580 9966 0008 436B ldr r3, [r0, #52] 4645:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 9967 .loc 1 4645 6 view .LVU3581 9968 000a 03B1 cbz r3, .L640 4647:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 9969 .loc 1 4647 5 is_stmt 1 view .LVU3582 9970 000c 9847 blx r3 9971 .LVL716: 9972 .L640: 4649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9973 .loc 1 4649 1 is_stmt 0 view .LVU3583 9974 000e 08BD pop {r3, pc} 9975 .cfi_endproc 9976 .LFE157: 9978 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits 9979 .align 1 9980 .weak HAL_I2C_MasterTxCpltCallback 9981 .syntax unified 9982 .thumb 9983 .thumb_func 9985 HAL_I2C_MasterTxCpltCallback: 9986 .LVL717: 9987 .LFB159: 4710:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9988 .loc 1 4710 1 is_stmt 1 view -0 9989 .cfi_startproc 9990 @ args = 0, pretend = 0, frame = 0 9991 @ frame_needed = 0, uses_anonymous_args = 0 9992 @ link register save eliminated. 4712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9993 .loc 1 4712 3 view .LVU3585 4717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 9994 .loc 1 4717 1 is_stmt 0 view .LVU3586 9995 0000 7047 bx lr 9996 .cfi_endproc 9997 .LFE159: 9999 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits 10000 .align 1 10001 .weak HAL_I2C_MasterRxCpltCallback ARM GAS /tmp/ccJ8PJrU.s page 368 10002 .syntax unified 10003 .thumb 10004 .thumb_func 10006 HAL_I2C_MasterRxCpltCallback: 10007 .LVL718: 10008 .LFB160: 4726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10009 .loc 1 4726 1 is_stmt 1 view -0 10010 .cfi_startproc 10011 @ args = 0, pretend = 0, frame = 0 10012 @ frame_needed = 0, uses_anonymous_args = 0 10013 @ link register save eliminated. 4728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10014 .loc 1 4728 3 view .LVU3588 4733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10015 .loc 1 4733 1 is_stmt 0 view .LVU3589 10016 0000 7047 bx lr 10017 .cfi_endproc 10018 .LFE160: 10020 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits 10021 .align 1 10022 .syntax unified 10023 .thumb 10024 .thumb_func 10026 I2C_ITMasterSeqCplt: 10027 .LVL719: 10028 .LFB181: 6053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */ 10029 .loc 1 6053 1 is_stmt 1 view -0 10030 .cfi_startproc 10031 @ args = 0, pretend = 0, frame = 0 10032 @ frame_needed = 0, uses_anonymous_args = 0 6053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset I2C handle mode */ 10033 .loc 1 6053 1 is_stmt 0 view .LVU3591 10034 0000 38B5 push {r3, r4, r5, lr} 10035 .cfi_def_cfa_offset 16 10036 .cfi_offset 3, -16 10037 .cfi_offset 4, -12 10038 .cfi_offset 5, -8 10039 .cfi_offset 14, -4 10040 0002 0446 mov r4, r0 6055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10041 .loc 1 6055 3 is_stmt 1 view .LVU3592 6055:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10042 .loc 1 6055 14 is_stmt 0 view .LVU3593 10043 0004 0023 movs r3, #0 10044 0006 80F84230 strb r3, [r0, #66] 6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10045 .loc 1 6059 3 is_stmt 1 view .LVU3594 6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10046 .loc 1 6059 11 is_stmt 0 view .LVU3595 10047 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10048 000e DBB2 uxtb r3, r3 6059:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10049 .loc 1 6059 6 view .LVU3596 10050 0010 212B cmp r3, #33 10051 0012 0FD0 beq .L649 ARM GAS /tmp/ccJ8PJrU.s page 369 6081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10052 .loc 1 6081 5 is_stmt 1 view .LVU3597 6081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10053 .loc 1 6081 25 is_stmt 0 view .LVU3598 10054 0014 2023 movs r3, #32 10055 0016 80F84130 strb r3, [r0, #65] 6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 10056 .loc 1 6082 5 is_stmt 1 view .LVU3599 6082:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 10057 .loc 1 6082 25 is_stmt 0 view .LVU3600 10058 001a 1223 movs r3, #18 10059 001c 0363 str r3, [r0, #48] 6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10060 .loc 1 6083 5 is_stmt 1 view .LVU3601 6083:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10061 .loc 1 6083 25 is_stmt 0 view .LVU3602 10062 001e 0025 movs r5, #0 10063 0020 4563 str r5, [r0, #52] 6086:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10064 .loc 1 6086 5 is_stmt 1 view .LVU3603 10065 0022 0221 movs r1, #2 10066 0024 FFF7FEFF bl I2C_Disable_IRQ 10067 .LVL720: 6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10068 .loc 1 6089 5 view .LVU3604 6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10069 .loc 1 6089 5 view .LVU3605 10070 0028 84F84050 strb r5, [r4, #64] 6089:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10071 .loc 1 6089 5 view .LVU3606 6095:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10072 .loc 1 6095 5 view .LVU3607 10073 002c 2046 mov r0, r4 10074 002e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 10075 .LVL721: 10076 .L645: 6098:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10077 .loc 1 6098 1 is_stmt 0 view .LVU3608 10078 0032 38BD pop {r3, r4, r5, pc} 10079 .LVL722: 10080 .L649: 6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10081 .loc 1 6061 5 is_stmt 1 view .LVU3609 6061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10082 .loc 1 6061 25 is_stmt 0 view .LVU3610 10083 0034 2023 movs r3, #32 10084 0036 80F84130 strb r3, [r0, #65] 6062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 10085 .loc 1 6062 5 is_stmt 1 view .LVU3611 6062:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 10086 .loc 1 6062 25 is_stmt 0 view .LVU3612 10087 003a 1123 movs r3, #17 10088 003c 0363 str r3, [r0, #48] 6063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10089 .loc 1 6063 5 is_stmt 1 view .LVU3613 6063:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10090 .loc 1 6063 25 is_stmt 0 view .LVU3614 ARM GAS /tmp/ccJ8PJrU.s page 370 10091 003e 0025 movs r5, #0 10092 0040 4563 str r5, [r0, #52] 6066:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10093 .loc 1 6066 5 is_stmt 1 view .LVU3615 10094 0042 0121 movs r1, #1 10095 0044 FFF7FEFF bl I2C_Disable_IRQ 10096 .LVL723: 6069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10097 .loc 1 6069 5 view .LVU3616 6069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10098 .loc 1 6069 5 view .LVU3617 10099 0048 84F84050 strb r5, [r4, #64] 6069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10100 .loc 1 6069 5 view .LVU3618 6075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10101 .loc 1 6075 5 view .LVU3619 10102 004c 2046 mov r0, r4 10103 004e FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 10104 .LVL724: 10105 0052 EEE7 b .L645 10106 .cfi_endproc 10107 .LFE181: 10109 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits 10110 .align 1 10111 .weak HAL_I2C_SlaveTxCpltCallback 10112 .syntax unified 10113 .thumb 10114 .thumb_func 10116 HAL_I2C_SlaveTxCpltCallback: 10117 .LVL725: 10118 .LFB161: 4741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10119 .loc 1 4741 1 view -0 10120 .cfi_startproc 10121 @ args = 0, pretend = 0, frame = 0 10122 @ frame_needed = 0, uses_anonymous_args = 0 10123 @ link register save eliminated. 4743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10124 .loc 1 4743 3 view .LVU3621 4748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10125 .loc 1 4748 1 is_stmt 0 view .LVU3622 10126 0000 7047 bx lr 10127 .cfi_endproc 10128 .LFE161: 10130 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits 10131 .align 1 10132 .weak HAL_I2C_SlaveRxCpltCallback 10133 .syntax unified 10134 .thumb 10135 .thumb_func 10137 HAL_I2C_SlaveRxCpltCallback: 10138 .LVL726: 10139 .LFB162: 4757:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10140 .loc 1 4757 1 is_stmt 1 view -0 10141 .cfi_startproc 10142 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccJ8PJrU.s page 371 10143 @ frame_needed = 0, uses_anonymous_args = 0 10144 @ link register save eliminated. 4759:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10145 .loc 1 4759 3 view .LVU3624 4764:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10146 .loc 1 4764 1 is_stmt 0 view .LVU3625 10147 0000 7047 bx lr 10148 .cfi_endproc 10149 .LFE162: 10151 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits 10152 .align 1 10153 .syntax unified 10154 .thumb 10155 .thumb_func 10157 I2C_ITSlaveSeqCplt: 10158 .LVL727: 10159 .LFB182: 6106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10160 .loc 1 6106 1 is_stmt 1 view -0 10161 .cfi_startproc 10162 @ args = 0, pretend = 0, frame = 0 10163 @ frame_needed = 0, uses_anonymous_args = 0 6106:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10164 .loc 1 6106 1 is_stmt 0 view .LVU3627 10165 0000 10B5 push {r4, lr} 10166 .cfi_def_cfa_offset 8 10167 .cfi_offset 4, -8 10168 .cfi_offset 14, -4 10169 0002 0446 mov r4, r0 6107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10170 .loc 1 6107 3 is_stmt 1 view .LVU3628 6107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10171 .loc 1 6107 26 is_stmt 0 view .LVU3629 10172 0004 0368 ldr r3, [r0] 6107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10173 .loc 1 6107 12 view .LVU3630 10174 0006 1A68 ldr r2, [r3] 10175 .LVL728: 6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10176 .loc 1 6110 3 is_stmt 1 view .LVU3631 6110:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10177 .loc 1 6110 14 is_stmt 0 view .LVU3632 10178 0008 0021 movs r1, #0 10179 000a 80F84210 strb r1, [r0, #66] 6113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10180 .loc 1 6113 3 is_stmt 1 view .LVU3633 6113:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10181 .loc 1 6113 6 is_stmt 0 view .LVU3634 10182 000e 12F4804F tst r2, #16384 10183 0012 0ED0 beq .L653 6116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10184 .loc 1 6116 5 is_stmt 1 view .LVU3635 6116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10185 .loc 1 6116 19 is_stmt 0 view .LVU3636 10186 0014 1A68 ldr r2, [r3] 10187 .LVL729: 6116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 372 10188 .loc 1 6116 25 view .LVU3637 10189 0016 22F48042 bic r2, r2, #16384 10190 001a 1A60 str r2, [r3] 10191 .L654: 6126:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10192 .loc 1 6126 3 is_stmt 1 view .LVU3638 6128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10193 .loc 1 6128 3 view .LVU3639 6128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10194 .loc 1 6128 11 is_stmt 0 view .LVU3640 10195 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10196 0020 DBB2 uxtb r3, r3 6128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10197 .loc 1 6128 6 view .LVU3641 10198 0022 292B cmp r3, #41 10199 0024 0DD0 beq .L658 6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10200 .loc 1 6148 8 is_stmt 1 view .LVU3642 6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10201 .loc 1 6148 16 is_stmt 0 view .LVU3643 10202 0026 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10203 002a DBB2 uxtb r3, r3 6148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10204 .loc 1 6148 11 view .LVU3644 10205 002c 2A2B cmp r3, #42 10206 002e 18D0 beq .L659 10207 .LVL730: 10208 .L652: 6171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10209 .loc 1 6171 1 view .LVU3645 10210 0030 10BD pop {r4, pc} 10211 .LVL731: 10212 .L653: 6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10213 .loc 1 6118 8 is_stmt 1 view .LVU3646 6118:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10214 .loc 1 6118 11 is_stmt 0 view .LVU3647 10215 0032 12F4004F tst r2, #32768 10216 0036 F1D0 beq .L654 6121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10217 .loc 1 6121 5 is_stmt 1 view .LVU3648 6121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10218 .loc 1 6121 19 is_stmt 0 view .LVU3649 10219 0038 1A68 ldr r2, [r3] 10220 .LVL732: 6121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10221 .loc 1 6121 25 view .LVU3650 10222 003a 22F40042 bic r2, r2, #32768 10223 003e 1A60 str r2, [r3] 10224 0040 ECE7 b .L654 10225 .L658: 6131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10226 .loc 1 6131 5 is_stmt 1 view .LVU3651 6131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10227 .loc 1 6131 25 is_stmt 0 view .LVU3652 10228 0042 2823 movs r3, #40 10229 0044 84F84130 strb r3, [r4, #65] ARM GAS /tmp/ccJ8PJrU.s page 373 6132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10230 .loc 1 6132 5 is_stmt 1 view .LVU3653 6132:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10231 .loc 1 6132 25 is_stmt 0 view .LVU3654 10232 0048 2123 movs r3, #33 10233 004a 2363 str r3, [r4, #48] 6135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10234 .loc 1 6135 5 is_stmt 1 view .LVU3655 10235 004c 0121 movs r1, #1 10236 004e 2046 mov r0, r4 10237 .LVL733: 6135:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10238 .loc 1 6135 5 is_stmt 0 view .LVU3656 10239 0050 FFF7FEFF bl I2C_Disable_IRQ 10240 .LVL734: 6138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10241 .loc 1 6138 5 is_stmt 1 view .LVU3657 6138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10242 .loc 1 6138 5 view .LVU3658 10243 0054 0023 movs r3, #0 10244 0056 84F84030 strb r3, [r4, #64] 6138:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10245 .loc 1 6138 5 view .LVU3659 6144:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10246 .loc 1 6144 5 view .LVU3660 10247 005a 2046 mov r0, r4 10248 005c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 10249 .LVL735: 10250 0060 E6E7 b .L652 10251 .LVL736: 10252 .L659: 6151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10253 .loc 1 6151 5 view .LVU3661 6151:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10254 .loc 1 6151 25 is_stmt 0 view .LVU3662 10255 0062 2823 movs r3, #40 10256 0064 84F84130 strb r3, [r4, #65] 6152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10257 .loc 1 6152 5 is_stmt 1 view .LVU3663 6152:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10258 .loc 1 6152 25 is_stmt 0 view .LVU3664 10259 0068 2223 movs r3, #34 10260 006a 2363 str r3, [r4, #48] 6155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10261 .loc 1 6155 5 is_stmt 1 view .LVU3665 10262 006c 0221 movs r1, #2 10263 006e 2046 mov r0, r4 10264 .LVL737: 6155:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10265 .loc 1 6155 5 is_stmt 0 view .LVU3666 10266 0070 FFF7FEFF bl I2C_Disable_IRQ 10267 .LVL738: 6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10268 .loc 1 6158 5 is_stmt 1 view .LVU3667 6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10269 .loc 1 6158 5 view .LVU3668 10270 0074 0023 movs r3, #0 ARM GAS /tmp/ccJ8PJrU.s page 374 10271 0076 84F84030 strb r3, [r4, #64] 6158:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10272 .loc 1 6158 5 view .LVU3669 6164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10273 .loc 1 6164 5 view .LVU3670 10274 007a 2046 mov r0, r4 10275 007c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 10276 .LVL739: 6170:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10277 .loc 1 6170 3 view .LVU3671 6171:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10278 .loc 1 6171 1 is_stmt 0 view .LVU3672 10279 0080 D6E7 b .L652 10280 .cfi_endproc 10281 .LFE182: 10283 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits 10284 .align 1 10285 .syntax unified 10286 .thumb 10287 .thumb_func 10289 I2C_DMASlaveTransmitCplt: 10290 .LVL740: 10291 .LFB190: 6831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10292 .loc 1 6831 1 is_stmt 1 view -0 10293 .cfi_startproc 10294 @ args = 0, pretend = 0, frame = 0 10295 @ frame_needed = 0, uses_anonymous_args = 0 6831:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10296 .loc 1 6831 1 is_stmt 0 view .LVU3674 10297 0000 08B5 push {r3, lr} 10298 .cfi_def_cfa_offset 8 10299 .cfi_offset 3, -8 10300 .cfi_offset 14, -4 6833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10301 .loc 1 6833 3 is_stmt 1 view .LVU3675 6833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10302 .loc 1 6833 22 is_stmt 0 view .LVU3676 10303 0002 406A ldr r0, [r0, #36] 10304 .LVL741: 6834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10305 .loc 1 6834 3 is_stmt 1 view .LVU3677 6834:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10306 .loc 1 6834 12 is_stmt 0 view .LVU3678 10307 0004 C36A ldr r3, [r0, #44] 10308 .LVL742: 6836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10309 .loc 1 6836 3 is_stmt 1 view .LVU3679 6836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10310 .loc 1 6836 6 is_stmt 0 view .LVU3680 10311 0006 B3F1807F cmp r3, #16777216 10312 000a 00D0 beq .L661 6836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10313 .loc 1 6836 38 discriminator 1 view .LVU3681 10314 000c 33B9 cbnz r3, .L660 10315 .L661: 6839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 375 10316 .loc 1 6839 5 is_stmt 1 view .LVU3682 6839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10317 .loc 1 6839 9 is_stmt 0 view .LVU3683 10318 000e 0268 ldr r2, [r0] 6839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10319 .loc 1 6839 19 view .LVU3684 10320 0010 1368 ldr r3, [r2] 10321 .LVL743: 6839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10322 .loc 1 6839 25 view .LVU3685 10323 0012 23F48043 bic r3, r3, #16384 10324 0016 1360 str r3, [r2] 6843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10325 .loc 1 6843 5 is_stmt 1 view .LVU3686 10326 0018 FFF7FEFF bl I2C_ITSlaveSeqCplt 10327 .LVL744: 10328 .L660: 6851:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10329 .loc 1 6851 1 is_stmt 0 view .LVU3687 10330 001c 08BD pop {r3, pc} 10331 .cfi_endproc 10332 .LFE190: 10334 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits 10335 .align 1 10336 .syntax unified 10337 .thumb 10338 .thumb_func 10340 I2C_DMASlaveReceiveCplt: 10341 .LVL745: 10342 .LFB192: 6919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10343 .loc 1 6919 1 is_stmt 1 view -0 10344 .cfi_startproc 10345 @ args = 0, pretend = 0, frame = 0 10346 @ frame_needed = 0, uses_anonymous_args = 0 6919:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10347 .loc 1 6919 1 is_stmt 0 view .LVU3689 10348 0000 08B5 push {r3, lr} 10349 .cfi_def_cfa_offset 8 10350 .cfi_offset 3, -8 10351 .cfi_offset 14, -4 6921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10352 .loc 1 6921 3 is_stmt 1 view .LVU3690 6921:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10353 .loc 1 6921 22 is_stmt 0 view .LVU3691 10354 0002 406A ldr r0, [r0, #36] 10355 .LVL746: 6922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10356 .loc 1 6922 3 is_stmt 1 view .LVU3692 6922:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10357 .loc 1 6922 12 is_stmt 0 view .LVU3693 10358 0004 C26A ldr r2, [r0, #44] 10359 .LVL747: 6924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10360 .loc 1 6924 3 is_stmt 1 view .LVU3694 6924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10361 .loc 1 6924 8 is_stmt 0 view .LVU3695 ARM GAS /tmp/ccJ8PJrU.s page 376 10362 0006 C36B ldr r3, [r0, #60] 10363 0008 1B68 ldr r3, [r3] 10364 000a 5B68 ldr r3, [r3, #4] 6924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10365 .loc 1 6924 6 view .LVU3696 10366 000c 13B9 cbnz r3, .L664 6924:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10367 .loc 1 6924 53 discriminator 1 view .LVU3697 10368 000e 12F5803F cmn r2, #65536 10369 0012 00D1 bne .L667 10370 .LVL748: 10371 .L664: 6939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10372 .loc 1 6939 1 view .LVU3698 10373 0014 08BD pop {r3, pc} 10374 .LVL749: 10375 .L667: 6928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10376 .loc 1 6928 5 is_stmt 1 view .LVU3699 6928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10377 .loc 1 6928 9 is_stmt 0 view .LVU3700 10378 0016 0268 ldr r2, [r0] 10379 .LVL750: 6928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10380 .loc 1 6928 19 view .LVU3701 10381 0018 1368 ldr r3, [r2] 6928:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10382 .loc 1 6928 25 view .LVU3702 10383 001a 23F40043 bic r3, r3, #32768 10384 001e 1360 str r3, [r2] 6931:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10385 .loc 1 6931 5 is_stmt 1 view .LVU3703 10386 0020 FFF7FEFF bl I2C_ITSlaveSeqCplt 10387 .LVL751: 6938:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10388 .loc 1 6938 3 view .LVU3704 6939:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10389 .loc 1 6939 1 is_stmt 0 view .LVU3705 10390 0024 F6E7 b .L664 10391 .cfi_endproc 10392 .LFE192: 10394 .section .text.HAL_I2C_AddrCallback,"ax",%progbits 10395 .align 1 10396 .weak HAL_I2C_AddrCallback 10397 .syntax unified 10398 .thumb 10399 .thumb_func 10401 HAL_I2C_AddrCallback: 10402 .LVL752: 10403 .LFB163: 4775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10404 .loc 1 4775 1 is_stmt 1 view -0 10405 .cfi_startproc 10406 @ args = 0, pretend = 0, frame = 0 10407 @ frame_needed = 0, uses_anonymous_args = 0 10408 @ link register save eliminated. 4777:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(TransferDirection); ARM GAS /tmp/ccJ8PJrU.s page 377 10409 .loc 1 4777 3 view .LVU3707 4778:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(AddrMatchCode); 10410 .loc 1 4778 3 view .LVU3708 4779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10411 .loc 1 4779 3 view .LVU3709 4784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10412 .loc 1 4784 1 is_stmt 0 view .LVU3710 10413 0000 7047 bx lr 10414 .cfi_endproc 10415 .LFE163: 10417 .section .text.I2C_ITAddrCplt,"ax",%progbits 10418 .align 1 10419 .syntax unified 10420 .thumb 10421 .thumb_func 10423 I2C_ITAddrCplt: 10424 .LVL753: 10425 .LFB180: 5958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection; 10426 .loc 1 5958 1 is_stmt 1 view -0 10427 .cfi_startproc 10428 @ args = 0, pretend = 0, frame = 0 10429 @ frame_needed = 0, uses_anonymous_args = 0 5958:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint8_t transferdirection; 10430 .loc 1 5958 1 is_stmt 0 view .LVU3712 10431 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 10432 .cfi_def_cfa_offset 24 10433 .cfi_offset 3, -24 10434 .cfi_offset 4, -20 10435 .cfi_offset 5, -16 10436 .cfi_offset 6, -12 10437 .cfi_offset 7, -8 10438 .cfi_offset 14, -4 10439 0002 0446 mov r4, r0 5959:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t slaveaddrcode; 10440 .loc 1 5959 3 is_stmt 1 view .LVU3713 5960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd1code; 10441 .loc 1 5960 3 view .LVU3714 5961:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t ownadd2code; 10442 .loc 1 5961 3 view .LVU3715 5962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10443 .loc 1 5962 3 view .LVU3716 5965:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10444 .loc 1 5965 3 view .LVU3717 5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10445 .loc 1 5968 3 view .LVU3718 5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10446 .loc 1 5968 22 is_stmt 0 view .LVU3719 10447 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 5968:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10448 .loc 1 5968 6 view .LVU3720 10449 0008 03F02803 and r3, r3, #40 10450 000c 282B cmp r3, #40 10451 000e 06D0 beq .L675 6040:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10452 .loc 1 6040 5 is_stmt 1 view .LVU3721 10453 0010 0368 ldr r3, [r0] ARM GAS /tmp/ccJ8PJrU.s page 378 10454 0012 0822 movs r2, #8 10455 0014 DA61 str r2, [r3, #28] 6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10456 .loc 1 6043 5 view .LVU3722 6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10457 .loc 1 6043 5 view .LVU3723 10458 0016 0023 movs r3, #0 10459 0018 80F84030 strb r3, [r0, #64] 6043:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10460 .loc 1 6043 5 discriminator 1 view .LVU3724 10461 .LVL754: 10462 .L669: 6045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10463 .loc 1 6045 1 is_stmt 0 view .LVU3725 10464 001c F8BD pop {r3, r4, r5, r6, r7, pc} 10465 .LVL755: 10466 .L675: 5970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10467 .loc 1 5970 5 is_stmt 1 view .LVU3726 5970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10468 .loc 1 5970 25 is_stmt 0 view .LVU3727 10469 001e 0368 ldr r3, [r0] 10470 0020 9E69 ldr r6, [r3, #24] 5970:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10471 .loc 1 5970 23 view .LVU3728 10472 0022 C6F30046 ubfx r6, r6, #16, #1 10473 .LVL756: 5971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10474 .loc 1 5971 5 is_stmt 1 view .LVU3729 5971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10475 .loc 1 5971 25 is_stmt 0 view .LVU3730 10476 0026 9A69 ldr r2, [r3, #24] 10477 0028 120C lsrs r2, r2, #16 5971:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10478 .loc 1 5971 23 view .LVU3731 10479 002a 02F0FE05 and r5, r2, #254 10480 .LVL757: 5972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10481 .loc 1 5972 5 is_stmt 1 view .LVU3732 5972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10482 .loc 1 5972 25 is_stmt 0 view .LVU3733 10483 002e 9A68 ldr r2, [r3, #8] 5972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10484 .loc 1 5972 23 view .LVU3734 10485 0030 C2F30902 ubfx r2, r2, #0, #10 10486 .LVL758: 5973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10487 .loc 1 5973 5 is_stmt 1 view .LVU3735 5973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10488 .loc 1 5973 25 is_stmt 0 view .LVU3736 10489 0034 DF68 ldr r7, [r3, #12] 5973:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10490 .loc 1 5973 23 view .LVU3737 10491 0036 07F0FE07 and r7, r7, #254 10492 .LVL759: 5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10493 .loc 1 5976 5 is_stmt 1 view .LVU3738 ARM GAS /tmp/ccJ8PJrU.s page 379 5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10494 .loc 1 5976 19 is_stmt 0 view .LVU3739 10495 003a C168 ldr r1, [r0, #12] 10496 .LVL760: 5976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10497 .loc 1 5976 8 view .LVU3740 10498 003c 0229 cmp r1, #2 10499 003e 22D1 bne .L671 5978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10500 .loc 1 5978 7 is_stmt 1 view .LVU3741 5978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10501 .loc 1 5978 44 is_stmt 0 view .LVU3742 10502 0040 85EAD215 eor r5, r5, r2, lsr #7 10503 .LVL761: 5978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10504 .loc 1 5978 10 view .LVU3743 10505 0044 15F0060F tst r5, #6 10506 0048 10D1 bne .L672 5980:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->AddrEventCount++; 10507 .loc 1 5980 9 is_stmt 1 view .LVU3744 10508 .LVL762: 5981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10509 .loc 1 5981 9 view .LVU3745 5981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10510 .loc 1 5981 13 is_stmt 0 view .LVU3746 10511 004a 816C ldr r1, [r0, #72] 5981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10512 .loc 1 5981 29 view .LVU3747 10513 004c 0131 adds r1, r1, #1 10514 004e 8164 str r1, [r0, #72] 5982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10515 .loc 1 5982 9 is_stmt 1 view .LVU3748 5982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10516 .loc 1 5982 17 is_stmt 0 view .LVU3749 10517 0050 816C ldr r1, [r0, #72] 5982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10518 .loc 1 5982 12 view .LVU3750 10519 0052 0229 cmp r1, #2 10520 0054 E2D1 bne .L669 5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10521 .loc 1 5985 11 is_stmt 1 view .LVU3751 5985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10522 .loc 1 5985 32 is_stmt 0 view .LVU3752 10523 0056 0021 movs r1, #0 10524 0058 8164 str r1, [r0, #72] 5988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10525 .loc 1 5988 11 is_stmt 1 view .LVU3753 10526 005a 0820 movs r0, #8 10527 .LVL763: 5988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10528 .loc 1 5988 11 is_stmt 0 view .LVU3754 10529 005c D861 str r0, [r3, #28] 5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10530 .loc 1 5991 11 is_stmt 1 view .LVU3755 5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10531 .loc 1 5991 11 view .LVU3756 10532 005e 84F84010 strb r1, [r4, #64] ARM GAS /tmp/ccJ8PJrU.s page 380 5991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10533 .loc 1 5991 11 view .LVU3757 5997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10534 .loc 1 5997 11 view .LVU3758 10535 0062 3146 mov r1, r6 10536 0064 2046 mov r0, r4 10537 0066 FFF7FEFF bl HAL_I2C_AddrCallback 10538 .LVL764: 5997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10539 .loc 1 5997 11 is_stmt 0 view .LVU3759 10540 006a D7E7 b .L669 10541 .LVL765: 10542 .L672: 6003:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10543 .loc 1 6003 9 is_stmt 1 view .LVU3760 6006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10544 .loc 1 6006 9 view .LVU3761 10545 006c 4FF40041 mov r1, #32768 10546 0070 FFF7FEFF bl I2C_Disable_IRQ 10547 .LVL766: 6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10548 .loc 1 6009 9 view .LVU3762 6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10549 .loc 1 6009 9 view .LVU3763 10550 0074 0023 movs r3, #0 10551 0076 84F84030 strb r3, [r4, #64] 6009:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10552 .loc 1 6009 9 view .LVU3764 6015:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10553 .loc 1 6015 9 view .LVU3765 10554 007a 3A46 mov r2, r7 10555 007c 3146 mov r1, r6 10556 007e 2046 mov r0, r4 10557 0080 FFF7FEFF bl HAL_I2C_AddrCallback 10558 .LVL767: 10559 0084 CAE7 b .L669 10560 .LVL768: 10561 .L671: 6023:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10562 .loc 1 6023 7 view .LVU3766 10563 0086 4FF40041 mov r1, #32768 10564 008a FFF7FEFF bl I2C_Disable_IRQ 10565 .LVL769: 6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10566 .loc 1 6026 7 view .LVU3767 6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10567 .loc 1 6026 7 view .LVU3768 10568 008e 0023 movs r3, #0 10569 0090 84F84030 strb r3, [r4, #64] 6026:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10570 .loc 1 6026 7 view .LVU3769 6032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10571 .loc 1 6032 7 view .LVU3770 10572 0094 2A46 mov r2, r5 10573 0096 3146 mov r1, r6 10574 0098 2046 mov r0, r4 10575 009a FFF7FEFF bl HAL_I2C_AddrCallback ARM GAS /tmp/ccJ8PJrU.s page 381 10576 .LVL770: 10577 009e BDE7 b .L669 10578 .cfi_endproc 10579 .LFE180: 10581 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits 10582 .align 1 10583 .weak HAL_I2C_ListenCpltCallback 10584 .syntax unified 10585 .thumb 10586 .thumb_func 10588 HAL_I2C_ListenCpltCallback: 10589 .LVL771: 10590 .LFB164: 4793:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10591 .loc 1 4793 1 view -0 10592 .cfi_startproc 10593 @ args = 0, pretend = 0, frame = 0 10594 @ frame_needed = 0, uses_anonymous_args = 0 10595 @ link register save eliminated. 4795:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10596 .loc 1 4795 3 view .LVU3772 4800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10597 .loc 1 4800 1 is_stmt 0 view .LVU3773 10598 0000 7047 bx lr 10599 .cfi_endproc 10600 .LFE164: 10602 .section .text.I2C_ITListenCplt,"ax",%progbits 10603 .align 1 10604 .syntax unified 10605 .thumb 10606 .thumb_func 10608 I2C_ITListenCplt: 10609 .LVL772: 10610 .LFB185: 6539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */ 10611 .loc 1 6539 1 is_stmt 1 view -0 10612 .cfi_startproc 10613 @ args = 0, pretend = 0, frame = 0 10614 @ frame_needed = 0, uses_anonymous_args = 0 6539:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Reset handle parameters */ 10615 .loc 1 6539 1 is_stmt 0 view .LVU3775 10616 0000 10B5 push {r4, lr} 10617 .cfi_def_cfa_offset 8 10618 .cfi_offset 4, -8 10619 .cfi_offset 14, -4 10620 0002 0446 mov r4, r0 6541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10621 .loc 1 6541 3 is_stmt 1 view .LVU3776 6541:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10622 .loc 1 6541 21 is_stmt 0 view .LVU3777 10623 0004 174B ldr r3, .L680 10624 0006 C362 str r3, [r0, #44] 6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10625 .loc 1 6542 3 is_stmt 1 view .LVU3778 6542:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10626 .loc 1 6542 23 is_stmt 0 view .LVU3779 10627 0008 0023 movs r3, #0 ARM GAS /tmp/ccJ8PJrU.s page 382 10628 000a 0363 str r3, [r0, #48] 6543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10629 .loc 1 6543 3 is_stmt 1 view .LVU3780 6543:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10630 .loc 1 6543 15 is_stmt 0 view .LVU3781 10631 000c 2022 movs r2, #32 10632 000e 80F84120 strb r2, [r0, #65] 6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 10633 .loc 1 6544 3 is_stmt 1 view .LVU3782 6544:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 10634 .loc 1 6544 14 is_stmt 0 view .LVU3783 10635 0012 80F84230 strb r3, [r0, #66] 6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10636 .loc 1 6545 3 is_stmt 1 view .LVU3784 6545:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10637 .loc 1 6545 17 is_stmt 0 view .LVU3785 10638 0016 4363 str r3, [r0, #52] 6548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10639 .loc 1 6548 3 is_stmt 1 view .LVU3786 6548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10640 .loc 1 6548 6 is_stmt 0 view .LVU3787 10641 0018 11F0040F tst r1, #4 10642 001c 13D0 beq .L678 6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10643 .loc 1 6551 5 is_stmt 1 view .LVU3788 6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10644 .loc 1 6551 36 is_stmt 0 view .LVU3789 10645 001e 0368 ldr r3, [r0] 6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10646 .loc 1 6551 46 view .LVU3790 10647 0020 5A6A ldr r2, [r3, #36] 6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10648 .loc 1 6551 10 view .LVU3791 10649 0022 436A ldr r3, [r0, #36] 6551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10650 .loc 1 6551 21 view .LVU3792 10651 0024 1A70 strb r2, [r3] 6554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10652 .loc 1 6554 5 is_stmt 1 view .LVU3793 6554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10653 .loc 1 6554 9 is_stmt 0 view .LVU3794 10654 0026 436A ldr r3, [r0, #36] 6554:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10655 .loc 1 6554 19 view .LVU3795 10656 0028 0133 adds r3, r3, #1 10657 002a 4362 str r3, [r0, #36] 6556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10658 .loc 1 6556 5 is_stmt 1 view .LVU3796 6556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10659 .loc 1 6556 14 is_stmt 0 view .LVU3797 10660 002c 038D ldrh r3, [r0, #40] 6556:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10661 .loc 1 6556 8 view .LVU3798 10662 002e 53B1 cbz r3, .L678 6558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 10663 .loc 1 6558 7 is_stmt 1 view .LVU3799 6558:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; ARM GAS /tmp/ccJ8PJrU.s page 383 10664 .loc 1 6558 21 is_stmt 0 view .LVU3800 10665 0030 013B subs r3, r3, #1 10666 0032 0385 strh r3, [r0, #40] @ movhi 6559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10667 .loc 1 6559 7 is_stmt 1 view .LVU3801 6559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10668 .loc 1 6559 11 is_stmt 0 view .LVU3802 10669 0034 438D ldrh r3, [r0, #42] 10670 0036 9BB2 uxth r3, r3 6559:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10671 .loc 1 6559 22 view .LVU3803 10672 0038 013B subs r3, r3, #1 10673 003a 9BB2 uxth r3, r3 10674 003c 4385 strh r3, [r0, #42] @ movhi 6562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10675 .loc 1 6562 7 is_stmt 1 view .LVU3804 6562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10676 .loc 1 6562 11 is_stmt 0 view .LVU3805 10677 003e 436C ldr r3, [r0, #68] 6562:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10678 .loc 1 6562 23 view .LVU3806 10679 0040 43F00403 orr r3, r3, #4 10680 0044 4364 str r3, [r0, #68] 10681 .L678: 6567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10682 .loc 1 6567 3 is_stmt 1 view .LVU3807 10683 0046 48F20301 movw r1, #32771 10684 .LVL773: 6567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10685 .loc 1 6567 3 is_stmt 0 view .LVU3808 10686 004a 2046 mov r0, r4 10687 .LVL774: 6567:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10688 .loc 1 6567 3 view .LVU3809 10689 004c FFF7FEFF bl I2C_Disable_IRQ 10690 .LVL775: 6570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10691 .loc 1 6570 3 is_stmt 1 view .LVU3810 10692 0050 2368 ldr r3, [r4] 10693 0052 1022 movs r2, #16 10694 0054 DA61 str r2, [r3, #28] 6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10695 .loc 1 6573 3 view .LVU3811 6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10696 .loc 1 6573 3 view .LVU3812 10697 0056 0023 movs r3, #0 10698 0058 84F84030 strb r3, [r4, #64] 6573:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10699 .loc 1 6573 3 view .LVU3813 6579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10700 .loc 1 6579 3 view .LVU3814 10701 005c 2046 mov r0, r4 10702 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback 10703 .LVL776: 6581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10704 .loc 1 6581 1 is_stmt 0 view .LVU3815 10705 0062 10BD pop {r4, pc} ARM GAS /tmp/ccJ8PJrU.s page 384 10706 .LVL777: 10707 .L681: 6581:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10708 .loc 1 6581 1 view .LVU3816 10709 .align 2 10710 .L680: 10711 0064 0000FFFF .word -65536 10712 .cfi_endproc 10713 .LFE185: 10715 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits 10716 .align 1 10717 .weak HAL_I2C_MemTxCpltCallback 10718 .syntax unified 10719 .thumb 10720 .thumb_func 10722 HAL_I2C_MemTxCpltCallback: 10723 .LVL778: 10724 .LFB165: 4809:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10725 .loc 1 4809 1 is_stmt 1 view -0 10726 .cfi_startproc 10727 @ args = 0, pretend = 0, frame = 0 10728 @ frame_needed = 0, uses_anonymous_args = 0 10729 @ link register save eliminated. 4811:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10730 .loc 1 4811 3 view .LVU3818 4816:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10731 .loc 1 4816 1 is_stmt 0 view .LVU3819 10732 0000 7047 bx lr 10733 .cfi_endproc 10734 .LFE165: 10736 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits 10737 .align 1 10738 .weak HAL_I2C_MemRxCpltCallback 10739 .syntax unified 10740 .thumb 10741 .thumb_func 10743 HAL_I2C_MemRxCpltCallback: 10744 .LVL779: 10745 .LFB166: 4825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10746 .loc 1 4825 1 is_stmt 1 view -0 10747 .cfi_startproc 10748 @ args = 0, pretend = 0, frame = 0 10749 @ frame_needed = 0, uses_anonymous_args = 0 10750 @ link register save eliminated. 4827:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10751 .loc 1 4827 3 view .LVU3821 4832:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10752 .loc 1 4832 1 is_stmt 0 view .LVU3822 10753 0000 7047 bx lr 10754 .cfi_endproc 10755 .LFE166: 10757 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits 10758 .align 1 10759 .weak HAL_I2C_ErrorCallback 10760 .syntax unified ARM GAS /tmp/ccJ8PJrU.s page 385 10761 .thumb 10762 .thumb_func 10764 HAL_I2C_ErrorCallback: 10765 .LVL780: 10766 .LFB167: 4841:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10767 .loc 1 4841 1 is_stmt 1 view -0 10768 .cfi_startproc 10769 @ args = 0, pretend = 0, frame = 0 10770 @ frame_needed = 0, uses_anonymous_args = 0 10771 @ link register save eliminated. 4843:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10772 .loc 1 4843 3 view .LVU3824 4848:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10773 .loc 1 4848 1 is_stmt 0 view .LVU3825 10774 0000 7047 bx lr 10775 .cfi_endproc 10776 .LFE167: 10778 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits 10779 .align 1 10780 .weak HAL_I2C_AbortCpltCallback 10781 .syntax unified 10782 .thumb 10783 .thumb_func 10785 HAL_I2C_AbortCpltCallback: 10786 .LVL781: 10787 .LFB168: 4857:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10788 .loc 1 4857 1 is_stmt 1 view -0 10789 .cfi_startproc 10790 @ args = 0, pretend = 0, frame = 0 10791 @ frame_needed = 0, uses_anonymous_args = 0 10792 @ link register save eliminated. 4859:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10793 .loc 1 4859 3 view .LVU3827 4864:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10794 .loc 1 4864 1 is_stmt 0 view .LVU3828 10795 0000 7047 bx lr 10796 .cfi_endproc 10797 .LFE168: 10799 .section .text.I2C_TreatErrorCallback,"ax",%progbits 10800 .align 1 10801 .syntax unified 10802 .thumb 10803 .thumb_func 10805 I2C_TreatErrorCallback: 10806 .LVL782: 10807 .LFB187: 6721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10808 .loc 1 6721 1 is_stmt 1 view -0 10809 .cfi_startproc 10810 @ args = 0, pretend = 0, frame = 0 10811 @ frame_needed = 0, uses_anonymous_args = 0 6721:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10812 .loc 1 6721 1 is_stmt 0 view .LVU3830 10813 0000 08B5 push {r3, lr} 10814 .cfi_def_cfa_offset 8 ARM GAS /tmp/ccJ8PJrU.s page 386 10815 .cfi_offset 3, -8 10816 .cfi_offset 14, -4 6722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10817 .loc 1 6722 3 is_stmt 1 view .LVU3831 6722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10818 .loc 1 6722 11 is_stmt 0 view .LVU3832 10819 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10820 0006 DBB2 uxtb r3, r3 6722:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10821 .loc 1 6722 6 view .LVU3833 10822 0008 602B cmp r3, #96 10823 000a 06D0 beq .L690 6739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10824 .loc 1 6739 5 is_stmt 1 view .LVU3834 6739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10825 .loc 1 6739 25 is_stmt 0 view .LVU3835 10826 000c 0023 movs r3, #0 10827 000e 0363 str r3, [r0, #48] 6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10828 .loc 1 6742 5 is_stmt 1 view .LVU3836 6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10829 .loc 1 6742 5 view .LVU3837 10830 0010 80F84030 strb r3, [r0, #64] 6742:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10831 .loc 1 6742 5 view .LVU3838 6748:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10832 .loc 1 6748 5 view .LVU3839 10833 0014 FFF7FEFF bl HAL_I2C_ErrorCallback 10834 .LVL783: 10835 .L686: 6751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10836 .loc 1 6751 1 is_stmt 0 view .LVU3840 10837 0018 08BD pop {r3, pc} 10838 .LVL784: 10839 .L690: 6724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10840 .loc 1 6724 5 is_stmt 1 view .LVU3841 6724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10841 .loc 1 6724 17 is_stmt 0 view .LVU3842 10842 001a 2023 movs r3, #32 10843 001c 80F84130 strb r3, [r0, #65] 6725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10844 .loc 1 6725 5 is_stmt 1 view .LVU3843 6725:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10845 .loc 1 6725 25 is_stmt 0 view .LVU3844 10846 0020 0023 movs r3, #0 10847 0022 0363 str r3, [r0, #48] 6728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10848 .loc 1 6728 5 is_stmt 1 view .LVU3845 6728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10849 .loc 1 6728 5 view .LVU3846 10850 0024 80F84030 strb r3, [r0, #64] 6728:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10851 .loc 1 6728 5 view .LVU3847 6734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10852 .loc 1 6734 5 view .LVU3848 10853 0028 FFF7FEFF bl HAL_I2C_AbortCpltCallback ARM GAS /tmp/ccJ8PJrU.s page 387 10854 .LVL785: 6734:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10855 .loc 1 6734 5 is_stmt 0 view .LVU3849 10856 002c F4E7 b .L686 10857 .cfi_endproc 10858 .LFE187: 10860 .section .text.I2C_ITError,"ax",%progbits 10861 .align 1 10862 .syntax unified 10863 .thumb 10864 .thumb_func 10866 I2C_ITError: 10867 .LVL786: 10868 .LFB186: 6590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10869 .loc 1 6590 1 is_stmt 1 view -0 10870 .cfi_startproc 10871 @ args = 0, pretend = 0, frame = 0 10872 @ frame_needed = 0, uses_anonymous_args = 0 6590:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10873 .loc 1 6590 1 is_stmt 0 view .LVU3851 10874 0000 10B5 push {r4, lr} 10875 .cfi_def_cfa_offset 8 10876 .cfi_offset 4, -8 10877 .cfi_offset 14, -4 10878 0002 0446 mov r4, r0 6591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10879 .loc 1 6591 3 is_stmt 1 view .LVU3852 6591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10880 .loc 1 6591 24 is_stmt 0 view .LVU3853 10881 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10882 .LVL787: 6593:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10883 .loc 1 6593 3 is_stmt 1 view .LVU3854 6596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10884 .loc 1 6596 3 view .LVU3855 6596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10885 .loc 1 6596 23 is_stmt 0 view .LVU3856 10886 0008 0022 movs r2, #0 10887 000a 80F84220 strb r2, [r0, #66] 6597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U; 10888 .loc 1 6597 3 is_stmt 1 view .LVU3857 6597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U; 10889 .loc 1 6597 23 is_stmt 0 view .LVU3858 10890 000e 4548 ldr r0, .L706 10891 .LVL788: 6597:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount = 0U; 10892 .loc 1 6597 23 view .LVU3859 10893 0010 E062 str r0, [r4, #44] 6598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10894 .loc 1 6598 3 is_stmt 1 view .LVU3860 6598:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10895 .loc 1 6598 23 is_stmt 0 view .LVU3861 10896 0012 6285 strh r2, [r4, #42] @ movhi 6601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10897 .loc 1 6601 3 is_stmt 1 view .LVU3862 6601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 388 10898 .loc 1 6601 7 is_stmt 0 view .LVU3863 10899 0014 626C ldr r2, [r4, #68] 6601:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10900 .loc 1 6601 19 view .LVU3864 10901 0016 0A43 orrs r2, r2, r1 10902 0018 6264 str r2, [r4, #68] 6604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 10903 .loc 1 6604 3 is_stmt 1 view .LVU3865 6605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 10904 .loc 1 6605 50 is_stmt 0 view .LVU3866 10905 001a 283B subs r3, r3, #40 10906 .LVL789: 6605:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 10907 .loc 1 6605 50 view .LVU3867 10908 001c DBB2 uxtb r3, r3 10909 .LVL790: 6604:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 10910 .loc 1 6604 6 view .LVU3868 10911 001e 022B cmp r3, #2 10912 0020 19D8 bhi .L692 6609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10913 .loc 1 6609 5 is_stmt 1 view .LVU3869 10914 0022 0321 movs r1, #3 10915 .LVL791: 6609:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10916 .loc 1 6609 5 is_stmt 0 view .LVU3870 10917 0024 2046 mov r0, r4 10918 0026 FFF7FEFF bl I2C_Disable_IRQ 10919 .LVL792: 6612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10920 .loc 1 6612 5 is_stmt 1 view .LVU3871 6612:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10921 .loc 1 6612 25 is_stmt 0 view .LVU3872 10922 002a 2823 movs r3, #40 10923 002c 84F84130 strb r3, [r4, #65] 6613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10924 .loc 1 6613 5 is_stmt 1 view .LVU3873 6613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10925 .loc 1 6613 25 is_stmt 0 view .LVU3874 10926 0030 3D4B ldr r3, .L706+4 10927 0032 6363 str r3, [r4, #52] 10928 .L693: 6648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10929 .loc 1 6648 3 is_stmt 1 view .LVU3875 6648:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10930 .loc 1 6648 20 is_stmt 0 view .LVU3876 10931 0034 236B ldr r3, [r4, #48] 10932 .LVL793: 6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10933 .loc 1 6650 3 is_stmt 1 view .LVU3877 6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10934 .loc 1 6650 12 is_stmt 0 view .LVU3878 10935 0036 A26B ldr r2, [r4, #56] 6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10936 .loc 1 6650 6 view .LVU3879 10937 0038 1AB1 cbz r2, .L696 6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) ARM GAS /tmp/ccJ8PJrU.s page 389 10938 .loc 1 6650 30 discriminator 1 view .LVU3880 10939 003a 112B cmp r3, #17 10940 003c 30D0 beq .L697 6650:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10941 .loc 1 6650 81 discriminator 2 view .LVU3881 10942 003e 212B cmp r3, #33 10943 0040 2ED0 beq .L697 10944 .L696: 6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10945 .loc 1 6680 8 is_stmt 1 view .LVU3882 6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10946 .loc 1 6680 17 is_stmt 0 view .LVU3883 10947 0042 E26B ldr r2, [r4, #60] 6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10948 .loc 1 6680 11 view .LVU3884 10949 0044 1AB1 cbz r2, .L701 6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10950 .loc 1 6680 35 discriminator 1 view .LVU3885 10951 0046 122B cmp r3, #18 10952 0048 4BD0 beq .L702 6680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 10953 .loc 1 6680 86 discriminator 2 view .LVU3886 10954 004a 222B cmp r3, #34 10955 004c 49D0 beq .L702 10956 .L701: 6711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 10957 .loc 1 6711 5 is_stmt 1 view .LVU3887 10958 004e 2046 mov r0, r4 10959 0050 FFF7FEFF bl I2C_TreatErrorCallback 10960 .LVL794: 10961 .L691: 6713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10962 .loc 1 6713 1 is_stmt 0 view .LVU3888 10963 0054 10BD pop {r4, pc} 10964 .LVL795: 10965 .L692: 6618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10966 .loc 1 6618 5 is_stmt 1 view .LVU3889 10967 0056 48F20301 movw r1, #32771 10968 .LVL796: 6618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10969 .loc 1 6618 5 is_stmt 0 view .LVU3890 10970 005a 2046 mov r0, r4 10971 005c FFF7FEFF bl I2C_Disable_IRQ 10972 .LVL797: 6621:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10973 .loc 1 6621 5 is_stmt 1 view .LVU3891 10974 0060 2046 mov r0, r4 10975 0062 FFF7FEFF bl I2C_Flush_TXDR 10976 .LVL798: 6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10977 .loc 1 6625 5 view .LVU3892 6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10978 .loc 1 6625 13 is_stmt 0 view .LVU3893 10979 0066 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10980 006a DBB2 uxtb r3, r3 6625:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 390 10981 .loc 1 6625 8 view .LVU3894 10982 006c 602B cmp r3, #96 10983 006e 14D0 beq .L694 6628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10984 .loc 1 6628 7 is_stmt 1 view .LVU3895 6628:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 10985 .loc 1 6628 27 is_stmt 0 view .LVU3896 10986 0070 2023 movs r3, #32 10987 0072 84F84130 strb r3, [r4, #65] 6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10988 .loc 1 6631 7 is_stmt 1 view .LVU3897 6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10989 .loc 1 6631 11 is_stmt 0 view .LVU3898 10990 0076 2368 ldr r3, [r4] 10991 0078 9A69 ldr r2, [r3, #24] 6631:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10992 .loc 1 6631 10 view .LVU3899 10993 007a 12F0200F tst r2, #32 10994 007e 0CD0 beq .L694 6633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10995 .loc 1 6633 9 is_stmt 1 view .LVU3900 6633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10996 .loc 1 6633 13 is_stmt 0 view .LVU3901 10997 0080 9A69 ldr r2, [r3, #24] 6633:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 10998 .loc 1 6633 12 view .LVU3902 10999 0082 12F0100F tst r2, #16 11000 0086 05D0 beq .L695 6635:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 11001 .loc 1 6635 11 is_stmt 1 view .LVU3903 11002 0088 1022 movs r2, #16 11003 008a DA61 str r2, [r3, #28] 6636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11004 .loc 1 6636 11 view .LVU3904 6636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11005 .loc 1 6636 15 is_stmt 0 view .LVU3905 11006 008c 636C ldr r3, [r4, #68] 6636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11007 .loc 1 6636 27 view .LVU3906 11008 008e 43F00403 orr r3, r3, #4 11009 0092 6364 str r3, [r4, #68] 11010 .L695: 6640:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11011 .loc 1 6640 9 is_stmt 1 view .LVU3907 11012 0094 2368 ldr r3, [r4] 11013 0096 2022 movs r2, #32 11014 0098 DA61 str r2, [r3, #28] 11015 .L694: 6644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11016 .loc 1 6644 5 view .LVU3908 6644:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11017 .loc 1 6644 25 is_stmt 0 view .LVU3909 11018 009a 0023 movs r3, #0 11019 009c 6363 str r3, [r4, #52] 11020 009e C9E7 b .L693 11021 .LVL799: 11022 .L697: ARM GAS /tmp/ccJ8PJrU.s page 391 6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11023 .loc 1 6653 5 is_stmt 1 view .LVU3910 6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11024 .loc 1 6653 14 is_stmt 0 view .LVU3911 11025 00a0 2368 ldr r3, [r4] 11026 .LVL800: 6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11027 .loc 1 6653 24 view .LVU3912 11028 00a2 1A68 ldr r2, [r3] 6653:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11029 .loc 1 6653 8 view .LVU3913 11030 00a4 12F4804F tst r2, #16384 11031 00a8 03D0 beq .L698 6655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11032 .loc 1 6655 7 is_stmt 1 view .LVU3914 6655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11033 .loc 1 6655 21 is_stmt 0 view .LVU3915 11034 00aa 1A68 ldr r2, [r3] 6655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11035 .loc 1 6655 27 view .LVU3916 11036 00ac 22F48042 bic r2, r2, #16384 11037 00b0 1A60 str r2, [r3] 11038 .L698: 6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11039 .loc 1 6658 5 is_stmt 1 view .LVU3917 6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11040 .loc 1 6658 9 is_stmt 0 view .LVU3918 11041 00b2 A06B ldr r0, [r4, #56] 11042 00b4 FFF7FEFF bl HAL_DMA_GetState 11043 .LVL801: 6658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11044 .loc 1 6658 8 discriminator 1 view .LVU3919 11045 00b8 0128 cmp r0, #1 11046 00ba 0ED0 beq .L699 6662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11047 .loc 1 6662 7 is_stmt 1 view .LVU3920 6662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11048 .loc 1 6662 11 is_stmt 0 view .LVU3921 11049 00bc A36B ldr r3, [r4, #56] 6662:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11050 .loc 1 6662 39 view .LVU3922 11051 00be 1B4A ldr r2, .L706+8 11052 00c0 5A63 str r2, [r3, #52] 6665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11053 .loc 1 6665 7 is_stmt 1 view .LVU3923 6665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11054 .loc 1 6665 7 view .LVU3924 11055 00c2 0023 movs r3, #0 11056 00c4 84F84030 strb r3, [r4, #64] 6665:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11057 .loc 1 6665 7 view .LVU3925 6668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11058 .loc 1 6668 7 view .LVU3926 6668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11059 .loc 1 6668 11 is_stmt 0 view .LVU3927 11060 00c8 A06B ldr r0, [r4, #56] 11061 00ca FFF7FEFF bl HAL_DMA_Abort_IT ARM GAS /tmp/ccJ8PJrU.s page 392 11062 .LVL802: 6668:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11063 .loc 1 6668 10 discriminator 1 view .LVU3928 11064 00ce 0028 cmp r0, #0 11065 00d0 C0D0 beq .L691 6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11066 .loc 1 6671 9 is_stmt 1 view .LVU3929 6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11067 .loc 1 6671 13 is_stmt 0 view .LVU3930 11068 00d2 A06B ldr r0, [r4, #56] 6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11069 .loc 1 6671 21 view .LVU3931 11070 00d4 436B ldr r3, [r0, #52] 6671:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11071 .loc 1 6671 9 view .LVU3932 11072 00d6 9847 blx r3 11073 .LVL803: 11074 00d8 BCE7 b .L691 11075 .L699: 6676:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11076 .loc 1 6676 7 is_stmt 1 view .LVU3933 11077 00da 2046 mov r0, r4 11078 00dc FFF7FEFF bl I2C_TreatErrorCallback 11079 .LVL804: 11080 00e0 B8E7 b .L691 11081 .LVL805: 11082 .L702: 6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11083 .loc 1 6683 5 view .LVU3934 6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11084 .loc 1 6683 14 is_stmt 0 view .LVU3935 11085 00e2 2368 ldr r3, [r4] 11086 .LVL806: 6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11087 .loc 1 6683 24 view .LVU3936 11088 00e4 1A68 ldr r2, [r3] 6683:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11089 .loc 1 6683 8 view .LVU3937 11090 00e6 12F4004F tst r2, #32768 11091 00ea 03D0 beq .L703 6685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11092 .loc 1 6685 7 is_stmt 1 view .LVU3938 6685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11093 .loc 1 6685 21 is_stmt 0 view .LVU3939 11094 00ec 1A68 ldr r2, [r3] 6685:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11095 .loc 1 6685 27 view .LVU3940 11096 00ee 22F40042 bic r2, r2, #32768 11097 00f2 1A60 str r2, [r3] 11098 .L703: 6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11099 .loc 1 6688 5 is_stmt 1 view .LVU3941 6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11100 .loc 1 6688 9 is_stmt 0 view .LVU3942 11101 00f4 E06B ldr r0, [r4, #60] 11102 00f6 FFF7FEFF bl HAL_DMA_GetState 11103 .LVL807: ARM GAS /tmp/ccJ8PJrU.s page 393 6688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11104 .loc 1 6688 8 discriminator 1 view .LVU3943 11105 00fa 0128 cmp r0, #1 11106 00fc 0ED0 beq .L704 6692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11107 .loc 1 6692 7 is_stmt 1 view .LVU3944 6692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11108 .loc 1 6692 11 is_stmt 0 view .LVU3945 11109 00fe E36B ldr r3, [r4, #60] 6692:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11110 .loc 1 6692 39 view .LVU3946 11111 0100 0A4A ldr r2, .L706+8 11112 0102 5A63 str r2, [r3, #52] 6695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11113 .loc 1 6695 7 is_stmt 1 view .LVU3947 6695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11114 .loc 1 6695 7 view .LVU3948 11115 0104 0023 movs r3, #0 11116 0106 84F84030 strb r3, [r4, #64] 6695:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11117 .loc 1 6695 7 view .LVU3949 6698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11118 .loc 1 6698 7 view .LVU3950 6698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11119 .loc 1 6698 11 is_stmt 0 view .LVU3951 11120 010a E06B ldr r0, [r4, #60] 11121 010c FFF7FEFF bl HAL_DMA_Abort_IT 11122 .LVL808: 6698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11123 .loc 1 6698 10 discriminator 1 view .LVU3952 11124 0110 0028 cmp r0, #0 11125 0112 9FD0 beq .L691 6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11126 .loc 1 6701 9 is_stmt 1 view .LVU3953 6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11127 .loc 1 6701 13 is_stmt 0 view .LVU3954 11128 0114 E06B ldr r0, [r4, #60] 6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11129 .loc 1 6701 21 view .LVU3955 11130 0116 436B ldr r3, [r0, #52] 6701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11131 .loc 1 6701 9 view .LVU3956 11132 0118 9847 blx r3 11133 .LVL809: 11134 011a 9BE7 b .L691 11135 .L704: 6706:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11136 .loc 1 6706 7 is_stmt 1 view .LVU3957 11137 011c 2046 mov r0, r4 11138 011e FFF7FEFF bl I2C_TreatErrorCallback 11139 .LVL810: 11140 0122 97E7 b .L691 11141 .L707: 11142 .align 2 11143 .L706: 11144 0124 0000FFFF .word -65536 11145 0128 00000000 .word I2C_Slave_ISR_IT ARM GAS /tmp/ccJ8PJrU.s page 394 11146 012c 00000000 .word I2C_DMAAbort 11147 .cfi_endproc 11148 .LFE186: 11150 .section .text.I2C_ITSlaveCplt,"ax",%progbits 11151 .align 1 11152 .syntax unified 11153 .thumb 11154 .thumb_func 11156 I2C_ITSlaveCplt: 11157 .LVL811: 11158 .LFB184: 6323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11159 .loc 1 6323 1 view -0 11160 .cfi_startproc 11161 @ args = 0, pretend = 0, frame = 0 11162 @ frame_needed = 0, uses_anonymous_args = 0 6323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11163 .loc 1 6323 1 is_stmt 0 view .LVU3959 11164 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 11165 .cfi_def_cfa_offset 24 11166 .cfi_offset 3, -24 11167 .cfi_offset 4, -20 11168 .cfi_offset 5, -16 11169 .cfi_offset 6, -12 11170 .cfi_offset 7, -8 11171 .cfi_offset 14, -4 11172 0002 0446 mov r4, r0 11173 0004 0D46 mov r5, r1 6324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11174 .loc 1 6324 3 is_stmt 1 view .LVU3960 6324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11175 .loc 1 6324 26 is_stmt 0 view .LVU3961 11176 0006 0268 ldr r2, [r0] 6324:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11177 .loc 1 6324 12 view .LVU3962 11178 0008 1668 ldr r6, [r2] 11179 .LVL812: 6325:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11180 .loc 1 6325 3 is_stmt 1 view .LVU3963 6326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11181 .loc 1 6326 3 view .LVU3964 6326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11182 .loc 1 6326 12 is_stmt 0 view .LVU3965 11183 000a C76A ldr r7, [r0, #44] 11184 .LVL813: 6327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11185 .loc 1 6327 3 is_stmt 1 view .LVU3966 6327:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11186 .loc 1 6327 24 is_stmt 0 view .LVU3967 11187 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11188 .LVL814: 6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11189 .loc 1 6330 3 is_stmt 1 view .LVU3968 11190 0010 2021 movs r1, #32 11191 .LVL815: 6330:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11192 .loc 1 6330 3 is_stmt 0 view .LVU3969 ARM GAS /tmp/ccJ8PJrU.s page 395 11193 0012 D161 str r1, [r2, #28] 6333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11194 .loc 1 6333 3 is_stmt 1 view .LVU3970 11195 0014 213B subs r3, r3, #33 11196 .LVL816: 6333:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11197 .loc 1 6333 3 is_stmt 0 view .LVU3971 11198 0016 092B cmp r3, #9 11199 0018 0CD8 bhi .L709 11200 001a DFE803F0 tbb [pc, r3] 11201 .L711: 11202 001e 05 .byte (.L712-.L711)/2 11203 001f 7A .byte (.L710-.L711)/2 11204 0020 0B .byte (.L709-.L711)/2 11205 0021 0B .byte (.L709-.L711)/2 11206 0022 0B .byte (.L709-.L711)/2 11207 0023 0B .byte (.L709-.L711)/2 11208 0024 0B .byte (.L709-.L711)/2 11209 0025 81 .byte (.L713-.L711)/2 11210 0026 05 .byte (.L712-.L711)/2 11211 0027 7A .byte (.L710-.L711)/2 11212 .p2align 1 11213 .L712: 6335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 11214 .loc 1 6335 5 is_stmt 1 view .LVU3972 11215 0028 48F20101 movw r1, #32769 11216 002c FFF7FEFF bl I2C_Disable_IRQ 11217 .LVL817: 6336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11218 .loc 1 6336 5 view .LVU3973 6336:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11219 .loc 1 6336 25 is_stmt 0 view .LVU3974 11220 0030 2123 movs r3, #33 11221 0032 2363 str r3, [r4, #48] 11222 .L709: 6351:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11223 .loc 1 6351 3 is_stmt 1 view .LVU3975 6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11224 .loc 1 6354 3 view .LVU3976 6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11225 .loc 1 6354 7 is_stmt 0 view .LVU3977 11226 0034 2268 ldr r2, [r4] 6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11227 .loc 1 6354 17 view .LVU3978 11228 0036 5368 ldr r3, [r2, #4] 6354:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11229 .loc 1 6354 23 view .LVU3979 11230 0038 43F40043 orr r3, r3, #32768 11231 003c 5360 str r3, [r2, #4] 6357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11232 .loc 1 6357 3 is_stmt 1 view .LVU3980 11233 003e 2268 ldr r2, [r4] 11234 0040 5368 ldr r3, [r2, #4] 11235 0042 23F0FF73 bic r3, r3, #33423360 11236 0046 23F48B33 bic r3, r3, #71168 11237 004a 23F4FF73 bic r3, r3, #510 11238 004e 23F00103 bic r3, r3, #1 ARM GAS /tmp/ccJ8PJrU.s page 396 11239 0052 5360 str r3, [r2, #4] 6360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11240 .loc 1 6360 3 view .LVU3981 11241 0054 2046 mov r0, r4 11242 0056 FFF7FEFF bl I2C_Flush_TXDR 11243 .LVL818: 6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11244 .loc 1 6363 3 view .LVU3982 6363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11245 .loc 1 6363 6 is_stmt 0 view .LVU3983 11246 005a 16F4804F tst r6, #16384 11247 005e 66D0 beq .L714 6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11248 .loc 1 6366 5 is_stmt 1 view .LVU3984 6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11249 .loc 1 6366 9 is_stmt 0 view .LVU3985 11250 0060 2268 ldr r2, [r4] 6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11251 .loc 1 6366 19 view .LVU3986 11252 0062 1368 ldr r3, [r2] 6366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11253 .loc 1 6366 25 view .LVU3987 11254 0064 23F48043 bic r3, r3, #16384 11255 0068 1360 str r3, [r2] 6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11256 .loc 1 6368 5 is_stmt 1 view .LVU3988 6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11257 .loc 1 6368 13 is_stmt 0 view .LVU3989 11258 006a A36B ldr r3, [r4, #56] 6368:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11259 .loc 1 6368 8 view .LVU3990 11260 006c 1BB1 cbz r3, .L715 6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11261 .loc 1 6370 7 is_stmt 1 view .LVU3991 6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11262 .loc 1 6370 35 is_stmt 0 view .LVU3992 11263 006e 1B68 ldr r3, [r3] 11264 0070 5B68 ldr r3, [r3, #4] 6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11265 .loc 1 6370 25 view .LVU3993 11266 0072 9BB2 uxth r3, r3 6370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11267 .loc 1 6370 23 view .LVU3994 11268 0074 6385 strh r3, [r4, #42] @ movhi 11269 .L715: 6386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11270 .loc 1 6386 3 is_stmt 1 view .LVU3995 6389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11271 .loc 1 6389 3 view .LVU3996 6389:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11272 .loc 1 6389 6 is_stmt 0 view .LVU3997 11273 0076 15F0040F tst r5, #4 11274 007a 11D0 beq .L716 6392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11275 .loc 1 6392 5 is_stmt 1 view .LVU3998 6392:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11276 .loc 1 6392 16 is_stmt 0 view .LVU3999 ARM GAS /tmp/ccJ8PJrU.s page 397 11277 007c 25F00405 bic r5, r5, #4 11278 .LVL819: 6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11279 .loc 1 6395 5 is_stmt 1 view .LVU4000 6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11280 .loc 1 6395 36 is_stmt 0 view .LVU4001 11281 0080 2368 ldr r3, [r4] 6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11282 .loc 1 6395 46 view .LVU4002 11283 0082 5A6A ldr r2, [r3, #36] 6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11284 .loc 1 6395 10 view .LVU4003 11285 0084 636A ldr r3, [r4, #36] 6395:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11286 .loc 1 6395 21 view .LVU4004 11287 0086 1A70 strb r2, [r3] 6398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11288 .loc 1 6398 5 is_stmt 1 view .LVU4005 6398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11289 .loc 1 6398 9 is_stmt 0 view .LVU4006 11290 0088 636A ldr r3, [r4, #36] 6398:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11291 .loc 1 6398 19 view .LVU4007 11292 008a 0133 adds r3, r3, #1 11293 008c 6362 str r3, [r4, #36] 6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11294 .loc 1 6400 5 is_stmt 1 view .LVU4008 6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11295 .loc 1 6400 14 is_stmt 0 view .LVU4009 11296 008e 238D ldrh r3, [r4, #40] 6400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11297 .loc 1 6400 8 view .LVU4010 11298 0090 33B1 cbz r3, .L716 6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 11299 .loc 1 6402 7 is_stmt 1 view .LVU4011 6402:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 11300 .loc 1 6402 21 is_stmt 0 view .LVU4012 11301 0092 013B subs r3, r3, #1 11302 0094 2385 strh r3, [r4, #40] @ movhi 6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11303 .loc 1 6403 7 is_stmt 1 view .LVU4013 6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11304 .loc 1 6403 11 is_stmt 0 view .LVU4014 11305 0096 638D ldrh r3, [r4, #42] 11306 0098 9BB2 uxth r3, r3 6403:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11307 .loc 1 6403 22 view .LVU4015 11308 009a 013B subs r3, r3, #1 11309 009c 9BB2 uxth r3, r3 11310 009e 6385 strh r3, [r4, #42] @ movhi 11311 .L716: 6408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11312 .loc 1 6408 3 is_stmt 1 view .LVU4016 6408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11313 .loc 1 6408 11 is_stmt 0 view .LVU4017 11314 00a0 638D ldrh r3, [r4, #42] 11315 00a2 9BB2 uxth r3, r3 ARM GAS /tmp/ccJ8PJrU.s page 398 6408:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11316 .loc 1 6408 6 view .LVU4018 11317 00a4 1BB1 cbz r3, .L717 6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11318 .loc 1 6411 5 is_stmt 1 view .LVU4019 6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11319 .loc 1 6411 9 is_stmt 0 view .LVU4020 11320 00a6 636C ldr r3, [r4, #68] 6411:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11321 .loc 1 6411 21 view .LVU4021 11322 00a8 43F00403 orr r3, r3, #4 11323 00ac 6364 str r3, [r4, #68] 11324 .L717: 6414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11325 .loc 1 6414 3 is_stmt 1 view .LVU4022 6414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11326 .loc 1 6414 6 is_stmt 0 view .LVU4023 11327 00ae 15F0100F tst r5, #16 11328 00b2 13D0 beq .L718 6414:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11329 .loc 1 6414 58 discriminator 1 view .LVU4024 11330 00b4 16F0100F tst r6, #16 11331 00b8 10D0 beq .L718 6421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11332 .loc 1 6421 5 is_stmt 1 view .LVU4025 6421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11333 .loc 1 6421 13 is_stmt 0 view .LVU4026 11334 00ba 638D ldrh r3, [r4, #42] 11335 00bc 9BB2 uxth r3, r3 6421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11336 .loc 1 6421 8 view .LVU4027 11337 00be 002B cmp r3, #0 11338 00c0 5AD1 bne .L719 6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11339 .loc 1 6423 7 is_stmt 1 view .LVU4028 6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11340 .loc 1 6423 16 is_stmt 0 view .LVU4029 11341 00c2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11342 00c6 DBB2 uxtb r3, r3 6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11343 .loc 1 6423 10 view .LVU4030 11344 00c8 282B cmp r3, #40 11345 00ca 40D0 beq .L729 11346 .L720: 6430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11347 .loc 1 6430 12 is_stmt 1 view .LVU4031 6430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11348 .loc 1 6430 21 is_stmt 0 view .LVU4032 11349 00cc 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11350 00d0 DBB2 uxtb r3, r3 6430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11351 .loc 1 6430 15 view .LVU4033 11352 00d2 292B cmp r3, #41 11353 00d4 43D0 beq .L730 11354 .L721: 6445:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11355 .loc 1 6445 9 is_stmt 1 view .LVU4034 ARM GAS /tmp/ccJ8PJrU.s page 399 11356 00d6 2368 ldr r3, [r4] 11357 00d8 1022 movs r2, #16 11358 00da DA61 str r2, [r3, #28] 11359 .L718: 6465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 11360 .loc 1 6465 3 view .LVU4035 6465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferISR = NULL; 11361 .loc 1 6465 14 is_stmt 0 view .LVU4036 11362 00dc 0023 movs r3, #0 11363 00de 84F84230 strb r3, [r4, #66] 6466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11364 .loc 1 6466 3 is_stmt 1 view .LVU4037 6466:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11365 .loc 1 6466 17 is_stmt 0 view .LVU4038 11366 00e2 6363 str r3, [r4, #52] 6468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11367 .loc 1 6468 3 is_stmt 1 view .LVU4039 6468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11368 .loc 1 6468 11 is_stmt 0 view .LVU4040 11369 00e4 636C ldr r3, [r4, #68] 6468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11370 .loc 1 6468 6 view .LVU4041 11371 00e6 002B cmp r3, #0 11372 00e8 56D1 bne .L731 6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11373 .loc 1 6480 8 is_stmt 1 view .LVU4042 6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11374 .loc 1 6480 16 is_stmt 0 view .LVU4043 11375 00ea E36A ldr r3, [r4, #44] 6480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11376 .loc 1 6480 11 view .LVU4044 11377 00ec 13F5803F cmn r3, #65536 11378 00f0 60D1 bne .L732 6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11379 .loc 1 6500 8 is_stmt 1 view .LVU4045 6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11380 .loc 1 6500 16 is_stmt 0 view .LVU4046 11381 00f2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11382 00f6 DBB2 uxtb r3, r3 6500:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11383 .loc 1 6500 11 view .LVU4047 11384 00f8 222B cmp r3, #34 11385 00fa 6BD0 beq .L733 6517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11386 .loc 1 6517 5 is_stmt 1 view .LVU4048 6517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11387 .loc 1 6517 17 is_stmt 0 view .LVU4049 11388 00fc 2023 movs r3, #32 11389 00fe 84F84130 strb r3, [r4, #65] 6518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11390 .loc 1 6518 5 is_stmt 1 view .LVU4050 6518:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11391 .loc 1 6518 25 is_stmt 0 view .LVU4051 11392 0102 0023 movs r3, #0 11393 0104 2363 str r3, [r4, #48] 6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11394 .loc 1 6521 5 is_stmt 1 view .LVU4052 ARM GAS /tmp/ccJ8PJrU.s page 400 6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11395 .loc 1 6521 5 view .LVU4053 11396 0106 84F84030 strb r3, [r4, #64] 6521:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11397 .loc 1 6521 5 view .LVU4054 6527:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11398 .loc 1 6527 5 view .LVU4055 11399 010a 2046 mov r0, r4 11400 010c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 11401 .LVL820: 6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11402 .loc 1 6530 1 is_stmt 0 view .LVU4056 11403 0110 5FE0 b .L708 11404 .LVL821: 11405 .L710: 6340:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 11406 .loc 1 6340 5 is_stmt 1 view .LVU4057 11407 0112 48F20201 movw r1, #32770 11408 0116 FFF7FEFF bl I2C_Disable_IRQ 11409 .LVL822: 6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11410 .loc 1 6341 5 view .LVU4058 6341:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11411 .loc 1 6341 25 is_stmt 0 view .LVU4059 11412 011a 2223 movs r3, #34 11413 011c 2363 str r3, [r4, #48] 11414 011e 89E7 b .L709 11415 .LVL823: 11416 .L713: 6345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11417 .loc 1 6345 5 is_stmt 1 view .LVU4060 11418 0120 48F20301 movw r1, #32771 11419 0124 FFF7FEFF bl I2C_Disable_IRQ 11420 .LVL824: 6346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11421 .loc 1 6346 5 view .LVU4061 6346:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11422 .loc 1 6346 25 is_stmt 0 view .LVU4062 11423 0128 0023 movs r3, #0 11424 012a 2363 str r3, [r4, #48] 11425 012c 82E7 b .L709 11426 .L714: 6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11427 .loc 1 6373 8 is_stmt 1 view .LVU4063 6373:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11428 .loc 1 6373 11 is_stmt 0 view .LVU4064 11429 012e 16F4004F tst r6, #32768 11430 0132 A0D0 beq .L715 6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11431 .loc 1 6376 5 is_stmt 1 view .LVU4065 6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11432 .loc 1 6376 9 is_stmt 0 view .LVU4066 11433 0134 2268 ldr r2, [r4] 6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11434 .loc 1 6376 19 view .LVU4067 11435 0136 1368 ldr r3, [r2] 6376:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 401 11436 .loc 1 6376 25 view .LVU4068 11437 0138 23F40043 bic r3, r3, #32768 11438 013c 1360 str r3, [r2] 6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11439 .loc 1 6378 5 is_stmt 1 view .LVU4069 6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11440 .loc 1 6378 13 is_stmt 0 view .LVU4070 11441 013e E36B ldr r3, [r4, #60] 6378:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11442 .loc 1 6378 8 view .LVU4071 11443 0140 002B cmp r3, #0 11444 0142 98D0 beq .L715 6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11445 .loc 1 6380 7 is_stmt 1 view .LVU4072 6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11446 .loc 1 6380 35 is_stmt 0 view .LVU4073 11447 0144 1B68 ldr r3, [r3] 11448 0146 5B68 ldr r3, [r3, #4] 6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11449 .loc 1 6380 25 view .LVU4074 11450 0148 9BB2 uxth r3, r3 6380:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11451 .loc 1 6380 23 view .LVU4075 11452 014a 6385 strh r3, [r4, #42] @ movhi 11453 014c 93E7 b .L715 11454 .LVL825: 11455 .L729: 6423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11456 .loc 1 6423 49 discriminator 1 view .LVU4076 11457 014e B7F1007F cmp r7, #33554432 11458 0152 BBD1 bne .L720 6428:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11459 .loc 1 6428 9 is_stmt 1 view .LVU4077 11460 0154 2946 mov r1, r5 11461 0156 2046 mov r0, r4 11462 0158 FFF7FEFF bl I2C_ITListenCplt 11463 .LVL826: 11464 015c BEE7 b .L718 11465 .L730: 6430:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11466 .loc 1 6430 62 is_stmt 0 discriminator 1 view .LVU4078 11467 015e 17F5803F cmn r7, #65536 11468 0162 B8D0 beq .L721 6433:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11469 .loc 1 6433 9 is_stmt 1 view .LVU4079 11470 0164 2368 ldr r3, [r4] 11471 0166 1022 movs r2, #16 11472 0168 DA61 str r2, [r3, #28] 6436:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11473 .loc 1 6436 9 view .LVU4080 11474 016a 2046 mov r0, r4 11475 016c FFF7FEFF bl I2C_Flush_TXDR 11476 .LVL827: 6440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11477 .loc 1 6440 9 view .LVU4081 11478 0170 2046 mov r0, r4 11479 0172 FFF7FEFF bl I2C_ITSlaveSeqCplt ARM GAS /tmp/ccJ8PJrU.s page 402 11480 .LVL828: 11481 0176 B1E7 b .L718 11482 .L719: 6452:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11483 .loc 1 6452 7 view .LVU4082 11484 0178 2368 ldr r3, [r4] 11485 017a 1022 movs r2, #16 11486 017c DA61 str r2, [r3, #28] 6455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11487 .loc 1 6455 7 view .LVU4083 6455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11488 .loc 1 6455 11 is_stmt 0 view .LVU4084 11489 017e 636C ldr r3, [r4, #68] 6455:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11490 .loc 1 6455 23 view .LVU4085 11491 0180 43F00403 orr r3, r3, #4 11492 0184 6364 str r3, [r4, #68] 6457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11493 .loc 1 6457 7 is_stmt 1 view .LVU4086 6457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11494 .loc 1 6457 10 is_stmt 0 view .LVU4087 11495 0186 17B1 cbz r7, .L722 6457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11496 .loc 1 6457 43 discriminator 1 view .LVU4088 11497 0188 B7F1807F cmp r7, #16777216 11498 018c A6D1 bne .L718 11499 .L722: 6460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11500 .loc 1 6460 9 is_stmt 1 view .LVU4089 6460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11501 .loc 1 6460 31 is_stmt 0 view .LVU4090 11502 018e 616C ldr r1, [r4, #68] 6460:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11503 .loc 1 6460 9 view .LVU4091 11504 0190 2046 mov r0, r4 11505 0192 FFF7FEFF bl I2C_ITError 11506 .LVL829: 11507 0196 A1E7 b .L718 11508 .L731: 6471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11509 .loc 1 6471 5 is_stmt 1 view .LVU4092 6471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11510 .loc 1 6471 27 is_stmt 0 view .LVU4093 11511 0198 616C ldr r1, [r4, #68] 6471:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11512 .loc 1 6471 5 view .LVU4094 11513 019a 2046 mov r0, r4 11514 019c FFF7FEFF bl I2C_ITError 11515 .LVL830: 6474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11516 .loc 1 6474 5 is_stmt 1 view .LVU4095 6474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11517 .loc 1 6474 13 is_stmt 0 view .LVU4096 11518 01a0 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11519 01a4 DBB2 uxtb r3, r3 6474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11520 .loc 1 6474 8 view .LVU4097 ARM GAS /tmp/ccJ8PJrU.s page 403 11521 01a6 282B cmp r3, #40 11522 01a8 13D1 bne .L708 6477:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11523 .loc 1 6477 7 is_stmt 1 view .LVU4098 11524 01aa 2946 mov r1, r5 11525 01ac 2046 mov r0, r4 11526 01ae FFF7FEFF bl I2C_ITListenCplt 11527 .LVL831: 11528 01b2 0EE0 b .L708 11529 .L732: 6483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11530 .loc 1 6483 5 view .LVU4099 11531 01b4 2046 mov r0, r4 11532 01b6 FFF7FEFF bl I2C_ITSlaveSeqCplt 11533 .LVL832: 6485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11534 .loc 1 6485 5 view .LVU4100 6485:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11535 .loc 1 6485 23 is_stmt 0 view .LVU4101 11536 01ba 0C4B ldr r3, .L734 11537 01bc E362 str r3, [r4, #44] 6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11538 .loc 1 6486 5 is_stmt 1 view .LVU4102 6486:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11539 .loc 1 6486 17 is_stmt 0 view .LVU4103 11540 01be 2023 movs r3, #32 11541 01c0 84F84130 strb r3, [r4, #65] 6487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11542 .loc 1 6487 5 is_stmt 1 view .LVU4104 6487:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11543 .loc 1 6487 25 is_stmt 0 view .LVU4105 11544 01c4 0023 movs r3, #0 11545 01c6 2363 str r3, [r4, #48] 6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11546 .loc 1 6490 5 is_stmt 1 view .LVU4106 6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11547 .loc 1 6490 5 view .LVU4107 11548 01c8 84F84030 strb r3, [r4, #64] 6490:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11549 .loc 1 6490 5 view .LVU4108 6496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11550 .loc 1 6496 5 view .LVU4109 11551 01cc 2046 mov r0, r4 11552 01ce FFF7FEFF bl HAL_I2C_ListenCpltCallback 11553 .LVL833: 11554 .L708: 6530:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11555 .loc 1 6530 1 is_stmt 0 view .LVU4110 11556 01d2 F8BD pop {r3, r4, r5, r6, r7, pc} 11557 .LVL834: 11558 .L733: 6502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11559 .loc 1 6502 5 is_stmt 1 view .LVU4111 6502:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11560 .loc 1 6502 17 is_stmt 0 view .LVU4112 11561 01d4 2023 movs r3, #32 11562 01d6 84F84130 strb r3, [r4, #65] ARM GAS /tmp/ccJ8PJrU.s page 404 6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11563 .loc 1 6503 5 is_stmt 1 view .LVU4113 6503:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11564 .loc 1 6503 25 is_stmt 0 view .LVU4114 11565 01da 0023 movs r3, #0 11566 01dc 2363 str r3, [r4, #48] 6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11567 .loc 1 6506 5 is_stmt 1 view .LVU4115 6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11568 .loc 1 6506 5 view .LVU4116 11569 01de 84F84030 strb r3, [r4, #64] 6506:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11570 .loc 1 6506 5 view .LVU4117 6512:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11571 .loc 1 6512 5 view .LVU4118 11572 01e2 2046 mov r0, r4 11573 01e4 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 11574 .LVL835: 11575 01e8 F3E7 b .L708 11576 .L735: 11577 01ea 00BF .align 2 11578 .L734: 11579 01ec 0000FFFF .word -65536 11580 .cfi_endproc 11581 .LFE184: 11583 .section .text.I2C_Slave_ISR_IT,"ax",%progbits 11584 .align 1 11585 .syntax unified 11586 .thumb 11587 .thumb_func 11589 I2C_Slave_ISR_IT: 11590 .LVL836: 11591 .LFB174: 5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11592 .loc 1 5259 1 view -0 11593 .cfi_startproc 11594 @ args = 0, pretend = 0, frame = 0 11595 @ frame_needed = 0, uses_anonymous_args = 0 5259:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11596 .loc 1 5259 1 is_stmt 0 view .LVU4120 11597 0000 10B5 push {r4, lr} 11598 .cfi_def_cfa_offset 8 11599 .cfi_offset 4, -8 11600 .cfi_offset 14, -4 11601 0002 0446 mov r4, r0 5260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11602 .loc 1 5260 3 is_stmt 1 view .LVU4121 5260:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11603 .loc 1 5260 12 is_stmt 0 view .LVU4122 11604 0004 C06A ldr r0, [r0, #44] 11605 .LVL837: 5261:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11606 .loc 1 5261 3 is_stmt 1 view .LVU4123 5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11607 .loc 1 5264 3 view .LVU4124 5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11608 .loc 1 5264 3 view .LVU4125 ARM GAS /tmp/ccJ8PJrU.s page 405 11609 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 11610 000a 012B cmp r3, #1 11611 000c 00F09A80 beq .L750 5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11612 .loc 1 5264 3 discriminator 2 view .LVU4126 11613 0010 0123 movs r3, #1 11614 0012 84F84030 strb r3, [r4, #64] 5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11615 .loc 1 5264 3 discriminator 2 view .LVU4127 5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11616 .loc 1 5267 3 view .LVU4128 5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11617 .loc 1 5267 6 is_stmt 0 view .LVU4129 11618 0016 11F0200F tst r1, #32 11619 001a 02D0 beq .L738 5267:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11620 .loc 1 5267 61 discriminator 1 view .LVU4130 11621 001c 12F0200F tst r2, #32 11622 0020 16D1 bne .L752 11623 .L738: 5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11624 .loc 1 5273 8 is_stmt 1 view .LVU4131 5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11625 .loc 1 5273 11 is_stmt 0 view .LVU4132 11626 0022 11F0100F tst r1, #16 11627 0026 3ED0 beq .L740 5273:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11628 .loc 1 5273 63 discriminator 1 view .LVU4133 11629 0028 12F0100F tst r2, #16 11630 002c 3BD0 beq .L740 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11631 .loc 1 5280 5 is_stmt 1 view .LVU4134 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11632 .loc 1 5280 13 is_stmt 0 view .LVU4135 11633 002e 638D ldrh r3, [r4, #42] 11634 0030 9BB2 uxth r3, r3 5280:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11635 .loc 1 5280 8 view .LVU4136 11636 0032 43BB cbnz r3, .L741 5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11637 .loc 1 5282 7 is_stmt 1 view .LVU4137 5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11638 .loc 1 5282 16 is_stmt 0 view .LVU4138 11639 0034 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11640 0038 DBB2 uxtb r3, r3 5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11641 .loc 1 5282 10 view .LVU4139 11642 003a 282B cmp r3, #40 11643 003c 0FD0 beq .L753 11644 .L742: 5289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11645 .loc 1 5289 12 is_stmt 1 view .LVU4140 5289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11646 .loc 1 5289 21 is_stmt 0 view .LVU4141 11647 003e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11648 0042 DBB2 uxtb r3, r3 5289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 406 11649 .loc 1 5289 15 view .LVU4142 11650 0044 292B cmp r3, #41 11651 0046 11D0 beq .L754 11652 .L743: 5304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11653 .loc 1 5304 9 is_stmt 1 view .LVU4143 11654 0048 2368 ldr r3, [r4] 11655 004a 1022 movs r2, #16 11656 .LVL838: 5304:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11657 .loc 1 5304 9 is_stmt 0 view .LVU4144 11658 004c DA61 str r2, [r3, #28] 11659 004e 02E0 b .L739 11660 .LVL839: 11661 .L752: 5271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11662 .loc 1 5271 5 is_stmt 1 view .LVU4145 11663 0050 2046 mov r0, r4 11664 .LVL840: 5271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11665 .loc 1 5271 5 is_stmt 0 view .LVU4146 11666 0052 FFF7FEFF bl I2C_ITSlaveCplt 11667 .LVL841: 11668 .L739: 5381:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11669 .loc 1 5381 3 is_stmt 1 view .LVU4147 5384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11670 .loc 1 5384 3 view .LVU4148 5384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11671 .loc 1 5384 3 view .LVU4149 11672 0056 0020 movs r0, #0 11673 0058 84F84000 strb r0, [r4, #64] 5384:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11674 .loc 1 5384 3 view .LVU4150 5386:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11675 .loc 1 5386 3 view .LVU4151 11676 .L737: 5387:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11677 .loc 1 5387 1 is_stmt 0 view .LVU4152 11678 005c 10BD pop {r4, pc} 11679 .LVL842: 11680 .L753: 5282:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11681 .loc 1 5282 49 discriminator 1 view .LVU4153 11682 005e B0F1007F cmp r0, #33554432 11683 0062 ECD1 bne .L742 5287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11684 .loc 1 5287 9 is_stmt 1 view .LVU4154 11685 0064 2046 mov r0, r4 11686 .LVL843: 5287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11687 .loc 1 5287 9 is_stmt 0 view .LVU4155 11688 0066 FFF7FEFF bl I2C_ITListenCplt 11689 .LVL844: 5287:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11690 .loc 1 5287 9 view .LVU4156 11691 006a F4E7 b .L739 ARM GAS /tmp/ccJ8PJrU.s page 407 11692 .LVL845: 11693 .L754: 5289:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11694 .loc 1 5289 62 discriminator 1 view .LVU4157 11695 006c 10F5803F cmn r0, #65536 11696 0070 EAD0 beq .L743 5292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11697 .loc 1 5292 9 is_stmt 1 view .LVU4158 11698 0072 2368 ldr r3, [r4] 11699 0074 1022 movs r2, #16 11700 .LVL846: 5292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11701 .loc 1 5292 9 is_stmt 0 view .LVU4159 11702 0076 DA61 str r2, [r3, #28] 5295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11703 .loc 1 5295 9 is_stmt 1 view .LVU4160 11704 0078 2046 mov r0, r4 11705 .LVL847: 5295:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11706 .loc 1 5295 9 is_stmt 0 view .LVU4161 11707 007a FFF7FEFF bl I2C_Flush_TXDR 11708 .LVL848: 5299:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11709 .loc 1 5299 9 is_stmt 1 view .LVU4162 11710 007e 2046 mov r0, r4 11711 0080 FFF7FEFF bl I2C_ITSlaveSeqCplt 11712 .LVL849: 11713 0084 E7E7 b .L739 11714 .LVL850: 11715 .L741: 5311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11716 .loc 1 5311 7 view .LVU4163 11717 0086 2368 ldr r3, [r4] 11718 0088 1022 movs r2, #16 11719 .LVL851: 5311:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11720 .loc 1 5311 7 is_stmt 0 view .LVU4164 11721 008a DA61 str r2, [r3, #28] 5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11722 .loc 1 5314 7 is_stmt 1 view .LVU4165 5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11723 .loc 1 5314 11 is_stmt 0 view .LVU4166 11724 008c 636C ldr r3, [r4, #68] 5314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11725 .loc 1 5314 23 view .LVU4167 11726 008e 43F00403 orr r3, r3, #4 11727 0092 6364 str r3, [r4, #68] 5316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11728 .loc 1 5316 7 is_stmt 1 view .LVU4168 5316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11729 .loc 1 5316 10 is_stmt 0 view .LVU4169 11730 0094 10B1 cbz r0, .L744 5316:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11731 .loc 1 5316 43 discriminator 1 view .LVU4170 11732 0096 B0F1807F cmp r0, #16777216 11733 009a DCD1 bne .L739 11734 .L744: ARM GAS /tmp/ccJ8PJrU.s page 408 5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11735 .loc 1 5319 9 is_stmt 1 view .LVU4171 5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11736 .loc 1 5319 31 is_stmt 0 view .LVU4172 11737 009c 616C ldr r1, [r4, #68] 11738 .LVL852: 5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11739 .loc 1 5319 9 view .LVU4173 11740 009e 2046 mov r0, r4 11741 .LVL853: 5319:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11742 .loc 1 5319 9 view .LVU4174 11743 00a0 FFF7FEFF bl I2C_ITError 11744 .LVL854: 11745 00a4 D7E7 b .L739 11746 .LVL855: 11747 .L740: 5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11748 .loc 1 5323 8 is_stmt 1 view .LVU4175 5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11749 .loc 1 5323 11 is_stmt 0 view .LVU4176 11750 00a6 11F0040F tst r1, #4 11751 00aa 1FD0 beq .L745 5323:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11752 .loc 1 5323 65 discriminator 1 view .LVU4177 11753 00ac 12F0040F tst r2, #4 11754 00b0 1CD0 beq .L745 5326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11755 .loc 1 5326 5 is_stmt 1 view .LVU4178 5326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11756 .loc 1 5326 13 is_stmt 0 view .LVU4179 11757 00b2 638D ldrh r3, [r4, #42] 11758 00b4 9BB2 uxth r3, r3 5326:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11759 .loc 1 5326 8 view .LVU4180 11760 00b6 73B1 cbz r3, .L746 5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11761 .loc 1 5329 7 is_stmt 1 view .LVU4181 5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11762 .loc 1 5329 38 is_stmt 0 view .LVU4182 11763 00b8 2368 ldr r3, [r4] 5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11764 .loc 1 5329 48 view .LVU4183 11765 00ba 5A6A ldr r2, [r3, #36] 11766 .LVL856: 5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11767 .loc 1 5329 12 view .LVU4184 11768 00bc 636A ldr r3, [r4, #36] 5329:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11769 .loc 1 5329 23 view .LVU4185 11770 00be 1A70 strb r2, [r3] 5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11771 .loc 1 5332 7 is_stmt 1 view .LVU4186 5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11772 .loc 1 5332 11 is_stmt 0 view .LVU4187 11773 00c0 636A ldr r3, [r4, #36] 5332:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ARM GAS /tmp/ccJ8PJrU.s page 409 11774 .loc 1 5332 21 view .LVU4188 11775 00c2 0133 adds r3, r3, #1 11776 00c4 6362 str r3, [r4, #36] 5334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 11777 .loc 1 5334 7 is_stmt 1 view .LVU4189 5334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 11778 .loc 1 5334 11 is_stmt 0 view .LVU4190 11779 00c6 238D ldrh r3, [r4, #40] 5334:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 11780 .loc 1 5334 21 view .LVU4191 11781 00c8 013B subs r3, r3, #1 11782 00ca 2385 strh r3, [r4, #40] @ movhi 5335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11783 .loc 1 5335 7 is_stmt 1 view .LVU4192 5335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11784 .loc 1 5335 11 is_stmt 0 view .LVU4193 11785 00cc 638D ldrh r3, [r4, #42] 11786 00ce 9BB2 uxth r3, r3 5335:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11787 .loc 1 5335 22 view .LVU4194 11788 00d0 013B subs r3, r3, #1 11789 00d2 9BB2 uxth r3, r3 11790 00d4 6385 strh r3, [r4, #42] @ movhi 11791 .L746: 5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11792 .loc 1 5338 5 is_stmt 1 view .LVU4195 5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11793 .loc 1 5338 14 is_stmt 0 view .LVU4196 11794 00d6 638D ldrh r3, [r4, #42] 11795 00d8 9BB2 uxth r3, r3 5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11796 .loc 1 5338 8 view .LVU4197 11797 00da 002B cmp r3, #0 11798 00dc BBD1 bne .L739 5338:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11799 .loc 1 5338 33 discriminator 1 view .LVU4198 11800 00de 10F5803F cmn r0, #65536 11801 00e2 B8D0 beq .L739 5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11802 .loc 1 5342 7 is_stmt 1 view .LVU4199 11803 00e4 2046 mov r0, r4 11804 .LVL857: 5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11805 .loc 1 5342 7 is_stmt 0 view .LVU4200 11806 00e6 FFF7FEFF bl I2C_ITSlaveSeqCplt 11807 .LVL858: 5342:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11808 .loc 1 5342 7 view .LVU4201 11809 00ea B4E7 b .L739 11810 .LVL859: 11811 .L745: 5345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11812 .loc 1 5345 8 is_stmt 1 view .LVU4202 5345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11813 .loc 1 5345 11 is_stmt 0 view .LVU4203 11814 00ec 11F0080F tst r1, #8 11815 00f0 02D0 beq .L747 ARM GAS /tmp/ccJ8PJrU.s page 410 5345:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11816 .loc 1 5345 65 discriminator 1 view .LVU4204 11817 00f2 12F0080F tst r2, #8 11818 00f6 18D1 bne .L755 11819 .L747: 5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11820 .loc 1 5350 8 is_stmt 1 view .LVU4205 5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11821 .loc 1 5350 11 is_stmt 0 view .LVU4206 11822 00f8 11F0020F tst r1, #2 11823 00fc ABD0 beq .L739 5350:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11824 .loc 1 5350 65 discriminator 1 view .LVU4207 11825 00fe 12F0020F tst r2, #2 11826 0102 A8D0 beq .L739 5357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11827 .loc 1 5357 5 is_stmt 1 view .LVU4208 5357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11828 .loc 1 5357 13 is_stmt 0 view .LVU4209 11829 0104 638D ldrh r3, [r4, #42] 11830 0106 9BB2 uxth r3, r3 5357:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11831 .loc 1 5357 8 view .LVU4210 11832 0108 9BB1 cbz r3, .L748 5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11833 .loc 1 5360 7 is_stmt 1 view .LVU4211 5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11834 .loc 1 5360 35 is_stmt 0 view .LVU4212 11835 010a 626A ldr r2, [r4, #36] 11836 .LVL860: 5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11837 .loc 1 5360 11 view .LVU4213 11838 010c 2368 ldr r3, [r4] 5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11839 .loc 1 5360 30 view .LVU4214 11840 010e 1278 ldrb r2, [r2] @ zero_extendqisi2 5360:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11841 .loc 1 5360 28 view .LVU4215 11842 0110 9A62 str r2, [r3, #40] 5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11843 .loc 1 5363 7 is_stmt 1 view .LVU4216 5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11844 .loc 1 5363 11 is_stmt 0 view .LVU4217 11845 0112 636A ldr r3, [r4, #36] 5363:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11846 .loc 1 5363 21 view .LVU4218 11847 0114 0133 adds r3, r3, #1 11848 0116 6362 str r3, [r4, #36] 5365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 11849 .loc 1 5365 7 is_stmt 1 view .LVU4219 5365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 11850 .loc 1 5365 11 is_stmt 0 view .LVU4220 11851 0118 638D ldrh r3, [r4, #42] 11852 011a 9BB2 uxth r3, r3 5365:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize--; 11853 .loc 1 5365 22 view .LVU4221 11854 011c 013B subs r3, r3, #1 ARM GAS /tmp/ccJ8PJrU.s page 411 11855 011e 9BB2 uxth r3, r3 11856 0120 6385 strh r3, [r4, #42] @ movhi 5366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11857 .loc 1 5366 7 is_stmt 1 view .LVU4222 5366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11858 .loc 1 5366 11 is_stmt 0 view .LVU4223 11859 0122 238D ldrh r3, [r4, #40] 5366:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11860 .loc 1 5366 21 view .LVU4224 11861 0124 013B subs r3, r3, #1 11862 0126 2385 strh r3, [r4, #40] @ movhi 11863 0128 95E7 b .L739 11864 .LVL861: 11865 .L755: 5348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11866 .loc 1 5348 5 is_stmt 1 view .LVU4225 11867 012a 2046 mov r0, r4 11868 .LVL862: 5348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11869 .loc 1 5348 5 is_stmt 0 view .LVU4226 11870 012c FFF7FEFF bl I2C_ITAddrCplt 11871 .LVL863: 5348:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11872 .loc 1 5348 5 view .LVU4227 11873 0130 91E7 b .L739 11874 .LVL864: 11875 .L748: 5370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11876 .loc 1 5370 7 is_stmt 1 view .LVU4228 5370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11877 .loc 1 5370 10 is_stmt 0 view .LVU4229 11878 0132 B0F1807F cmp r0, #16777216 11879 0136 01D0 beq .L749 5370:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11880 .loc 1 5370 42 discriminator 1 view .LVU4230 11881 0138 0028 cmp r0, #0 11882 013a 8CD1 bne .L739 11883 .L749: 5374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11884 .loc 1 5374 9 is_stmt 1 view .LVU4231 11885 013c 2046 mov r0, r4 11886 .LVL865: 5374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11887 .loc 1 5374 9 is_stmt 0 view .LVU4232 11888 013e FFF7FEFF bl I2C_ITSlaveSeqCplt 11889 .LVL866: 5374:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11890 .loc 1 5374 9 view .LVU4233 11891 0142 88E7 b .L739 11892 .LVL867: 11893 .L750: 5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11894 .loc 1 5264 3 discriminator 1 view .LVU4234 11895 0144 0220 movs r0, #2 11896 .LVL868: 5264:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11897 .loc 1 5264 3 discriminator 1 view .LVU4235 ARM GAS /tmp/ccJ8PJrU.s page 412 11898 0146 89E7 b .L737 11899 .cfi_endproc 11900 .LFE174: 11902 .section .text.I2C_ITMasterCplt,"ax",%progbits 11903 .align 1 11904 .syntax unified 11905 .thumb 11906 .thumb_func 11908 I2C_ITMasterCplt: 11909 .LVL869: 11910 .LFB183: 6180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror; 11911 .loc 1 6180 1 is_stmt 1 view -0 11912 .cfi_startproc 11913 @ args = 0, pretend = 0, frame = 8 11914 @ frame_needed = 0, uses_anonymous_args = 0 6180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror; 11915 .loc 1 6180 1 is_stmt 0 view .LVU4237 11916 0000 30B5 push {r4, r5, lr} 11917 .cfi_def_cfa_offset 12 11918 .cfi_offset 4, -12 11919 .cfi_offset 5, -8 11920 .cfi_offset 14, -4 11921 0002 83B0 sub sp, sp, #12 11922 .cfi_def_cfa_offset 24 11923 0004 0446 mov r4, r0 11924 0006 0D46 mov r5, r1 6181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11925 .loc 1 6181 3 is_stmt 1 view .LVU4238 6182:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** __IO uint32_t tmpreg; 11926 .loc 1 6182 3 view .LVU4239 11927 .LVL870: 6183:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11928 .loc 1 6183 3 view .LVU4240 6186:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11929 .loc 1 6186 3 view .LVU4241 11930 0008 0368 ldr r3, [r0] 11931 000a 2022 movs r2, #32 11932 000c DA61 str r2, [r3, #28] 6189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11933 .loc 1 6189 3 view .LVU4242 6189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11934 .loc 1 6189 11 is_stmt 0 view .LVU4243 11935 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11936 0012 DBB2 uxtb r3, r3 6189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11937 .loc 1 6189 6 view .LVU4244 11938 0014 212B cmp r3, #33 11939 0016 33D0 beq .L768 6194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11940 .loc 1 6194 8 is_stmt 1 view .LVU4245 6194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11941 .loc 1 6194 16 is_stmt 0 view .LVU4246 11942 0018 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11943 001c DBB2 uxtb r3, r3 6194:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11944 .loc 1 6194 11 view .LVU4247 ARM GAS /tmp/ccJ8PJrU.s page 413 11945 001e 222B cmp r3, #34 11946 0020 34D0 beq .L769 11947 .LVL871: 11948 .L758: 6202:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11949 .loc 1 6202 3 is_stmt 1 view .LVU4248 6205:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11950 .loc 1 6205 3 view .LVU4249 11951 0022 2268 ldr r2, [r4] 11952 0024 5368 ldr r3, [r2, #4] 11953 0026 23F0FF73 bic r3, r3, #33423360 11954 002a 23F48B33 bic r3, r3, #71168 11955 002e 23F4FF73 bic r3, r3, #510 11956 0032 23F00103 bic r3, r3, #1 11957 0036 5360 str r3, [r2, #4] 6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11958 .loc 1 6208 3 view .LVU4250 6208:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11959 .loc 1 6208 23 is_stmt 0 view .LVU4251 11960 0038 0023 movs r3, #0 11961 003a 6363 str r3, [r4, #52] 6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11962 .loc 1 6209 3 is_stmt 1 view .LVU4252 6209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11963 .loc 1 6209 23 is_stmt 0 view .LVU4253 11964 003c A3F58033 sub r3, r3, #65536 11965 0040 E362 str r3, [r4, #44] 6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11966 .loc 1 6211 3 is_stmt 1 view .LVU4254 6211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11967 .loc 1 6211 6 is_stmt 0 view .LVU4255 11968 0042 15F0100F tst r5, #16 11969 0046 06D0 beq .L759 6214:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11970 .loc 1 6214 5 is_stmt 1 view .LVU4256 11971 0048 2368 ldr r3, [r4] 11972 004a 1022 movs r2, #16 11973 004c DA61 str r2, [r3, #28] 6217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11974 .loc 1 6217 5 view .LVU4257 6217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11975 .loc 1 6217 9 is_stmt 0 view .LVU4258 11976 004e 636C ldr r3, [r4, #68] 6217:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 11977 .loc 1 6217 21 view .LVU4259 11978 0050 43F00403 orr r3, r3, #4 11979 0054 6364 str r3, [r4, #68] 11980 .L759: 6221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11981 .loc 1 6221 3 is_stmt 1 view .LVU4260 6221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11982 .loc 1 6221 12 is_stmt 0 view .LVU4261 11983 0056 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11984 005a DBB2 uxtb r3, r3 6221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11985 .loc 1 6221 6 view .LVU4262 11986 005c 602B cmp r3, #96 ARM GAS /tmp/ccJ8PJrU.s page 414 11987 005e 1BD0 beq .L770 11988 .L760: 6229:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11989 .loc 1 6229 3 is_stmt 1 view .LVU4263 11990 0060 2046 mov r0, r4 11991 0062 FFF7FEFF bl I2C_Flush_TXDR 11992 .LVL872: 6232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11993 .loc 1 6232 3 view .LVU4264 6232:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 11994 .loc 1 6232 12 is_stmt 0 view .LVU4265 11995 0066 626C ldr r2, [r4, #68] 11996 .LVL873: 6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11997 .loc 1 6235 3 is_stmt 1 view .LVU4266 6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 11998 .loc 1 6235 12 is_stmt 0 view .LVU4267 11999 0068 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12000 006c DBB2 uxtb r3, r3 6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12001 .loc 1 6235 6 view .LVU4268 12002 006e 602B cmp r3, #96 12003 0070 00D0 beq .L761 6235:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12004 .loc 1 6235 44 discriminator 1 view .LVU4269 12005 0072 D2B1 cbz r2, .L762 12006 .L761: 6238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12007 .loc 1 6238 5 is_stmt 1 view .LVU4270 6238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12008 .loc 1 6238 27 is_stmt 0 view .LVU4271 12009 0074 616C ldr r1, [r4, #68] 6238:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12010 .loc 1 6238 5 view .LVU4272 12011 0076 2046 mov r0, r4 12012 0078 FFF7FEFF bl I2C_ITError 12013 .LVL874: 12014 .L756: 6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12015 .loc 1 6314 1 view .LVU4273 12016 007c 03B0 add sp, sp, #12 12017 .cfi_remember_state 12018 .cfi_def_cfa_offset 12 12019 @ sp needed 12020 007e 30BD pop {r4, r5, pc} 12021 .LVL875: 12022 .L768: 12023 .cfi_restore_state 6191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12024 .loc 1 6191 5 is_stmt 1 view .LVU4274 12025 0080 0121 movs r1, #1 12026 .LVL876: 6191:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12027 .loc 1 6191 5 is_stmt 0 view .LVU4275 12028 0082 FFF7FEFF bl I2C_Disable_IRQ 12029 .LVL877: 6192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 415 12030 .loc 1 6192 5 is_stmt 1 view .LVU4276 6192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12031 .loc 1 6192 25 is_stmt 0 view .LVU4277 12032 0086 1123 movs r3, #17 12033 0088 2363 str r3, [r4, #48] 12034 008a CAE7 b .L758 12035 .LVL878: 12036 .L769: 6196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12037 .loc 1 6196 5 is_stmt 1 view .LVU4278 12038 008c 0221 movs r1, #2 12039 .LVL879: 6196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12040 .loc 1 6196 5 is_stmt 0 view .LVU4279 12041 008e FFF7FEFF bl I2C_Disable_IRQ 12042 .LVL880: 6197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12043 .loc 1 6197 5 is_stmt 1 view .LVU4280 6197:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12044 .loc 1 6197 25 is_stmt 0 view .LVU4281 12045 0092 1223 movs r3, #18 12046 0094 2363 str r3, [r4, #48] 12047 0096 C4E7 b .L758 12048 .L770: 6221:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12049 .loc 1 6221 44 discriminator 1 view .LVU4282 12050 0098 15F0040F tst r5, #4 12051 009c E0D0 beq .L760 6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg); 12052 .loc 1 6224 5 is_stmt 1 view .LVU4283 6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg); 12053 .loc 1 6224 27 is_stmt 0 view .LVU4284 12054 009e 2368 ldr r3, [r4] 6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg); 12055 .loc 1 6224 37 view .LVU4285 12056 00a0 5B6A ldr r3, [r3, #36] 12057 00a2 DBB2 uxtb r3, r3 6224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** UNUSED(tmpreg); 12058 .loc 1 6224 12 view .LVU4286 12059 00a4 0193 str r3, [sp, #4] 6225:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12060 .loc 1 6225 5 is_stmt 1 view .LVU4287 12061 00a6 019B ldr r3, [sp, #4] 12062 00a8 DAE7 b .L760 12063 .LVL881: 12064 .L762: 6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12065 .loc 1 6241 8 view .LVU4288 6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12066 .loc 1 6241 16 is_stmt 0 view .LVU4289 12067 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12068 00ae DBB2 uxtb r3, r3 6241:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12069 .loc 1 6241 11 view .LVU4290 12070 00b0 212B cmp r3, #33 12071 00b2 17D0 beq .L771 6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { ARM GAS /tmp/ccJ8PJrU.s page 416 12072 .loc 1 6276 8 is_stmt 1 view .LVU4291 6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12073 .loc 1 6276 16 is_stmt 0 view .LVU4292 12074 00b4 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12075 00b8 DBB2 uxtb r3, r3 6276:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12076 .loc 1 6276 11 view .LVU4293 12077 00ba 222B cmp r3, #34 12078 00bc DED1 bne .L756 6278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12079 .loc 1 6278 5 is_stmt 1 view .LVU4294 6278:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12080 .loc 1 6278 17 is_stmt 0 view .LVU4295 12081 00be 2023 movs r3, #32 12082 00c0 84F84130 strb r3, [r4, #65] 6279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12083 .loc 1 6279 5 is_stmt 1 view .LVU4296 6279:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12084 .loc 1 6279 25 is_stmt 0 view .LVU4297 12085 00c4 0023 movs r3, #0 12086 00c6 2363 str r3, [r4, #48] 6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12087 .loc 1 6281 5 is_stmt 1 view .LVU4298 6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12088 .loc 1 6281 13 is_stmt 0 view .LVU4299 12089 00c8 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 12090 00cc DBB2 uxtb r3, r3 6281:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12091 .loc 1 6281 8 view .LVU4300 12092 00ce 402B cmp r3, #64 12093 00d0 24D0 beq .L772 6297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12094 .loc 1 6297 7 is_stmt 1 view .LVU4301 6297:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12095 .loc 1 6297 18 is_stmt 0 view .LVU4302 12096 00d2 0023 movs r3, #0 12097 00d4 84F84230 strb r3, [r4, #66] 6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12098 .loc 1 6300 7 is_stmt 1 view .LVU4303 6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12099 .loc 1 6300 7 view .LVU4304 12100 00d8 84F84030 strb r3, [r4, #64] 6300:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12101 .loc 1 6300 7 view .LVU4305 6306:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12102 .loc 1 6306 7 view .LVU4306 12103 00dc 2046 mov r0, r4 12104 00de FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 12105 .LVL882: 6313:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12106 .loc 1 6313 3 view .LVU4307 6314:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12107 .loc 1 6314 1 is_stmt 0 view .LVU4308 12108 00e2 CBE7 b .L756 12109 .LVL883: 12110 .L771: 6243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; ARM GAS /tmp/ccJ8PJrU.s page 417 12111 .loc 1 6243 5 is_stmt 1 view .LVU4309 6243:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12112 .loc 1 6243 17 is_stmt 0 view .LVU4310 12113 00e4 2023 movs r3, #32 12114 00e6 84F84130 strb r3, [r4, #65] 6244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12115 .loc 1 6244 5 is_stmt 1 view .LVU4311 6244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12116 .loc 1 6244 25 is_stmt 0 view .LVU4312 12117 00ea 0023 movs r3, #0 12118 00ec 2363 str r3, [r4, #48] 6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12119 .loc 1 6246 5 is_stmt 1 view .LVU4313 6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12120 .loc 1 6246 13 is_stmt 0 view .LVU4314 12121 00ee 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 12122 00f2 DBB2 uxtb r3, r3 6246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12123 .loc 1 6246 8 view .LVU4315 12124 00f4 402B cmp r3, #64 12125 00f6 08D0 beq .L773 6262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12126 .loc 1 6262 7 is_stmt 1 view .LVU4316 6262:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12127 .loc 1 6262 18 is_stmt 0 view .LVU4317 12128 00f8 0023 movs r3, #0 12129 00fa 84F84230 strb r3, [r4, #66] 6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12130 .loc 1 6265 7 is_stmt 1 view .LVU4318 6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12131 .loc 1 6265 7 view .LVU4319 12132 00fe 84F84030 strb r3, [r4, #64] 6265:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12133 .loc 1 6265 7 view .LVU4320 6271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12134 .loc 1 6271 7 view .LVU4321 12135 0102 2046 mov r0, r4 12136 0104 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 12137 .LVL884: 6271:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12138 .loc 1 6271 7 is_stmt 0 view .LVU4322 12139 0108 B8E7 b .L756 12140 .LVL885: 12141 .L773: 6248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12142 .loc 1 6248 7 is_stmt 1 view .LVU4323 6248:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12143 .loc 1 6248 18 is_stmt 0 view .LVU4324 12144 010a 0023 movs r3, #0 12145 010c 84F84230 strb r3, [r4, #66] 6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12146 .loc 1 6251 7 is_stmt 1 view .LVU4325 6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12147 .loc 1 6251 7 view .LVU4326 12148 0110 84F84030 strb r3, [r4, #64] 6251:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12149 .loc 1 6251 7 view .LVU4327 ARM GAS /tmp/ccJ8PJrU.s page 418 6257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12150 .loc 1 6257 7 view .LVU4328 12151 0114 2046 mov r0, r4 12152 0116 FFF7FEFF bl HAL_I2C_MemTxCpltCallback 12153 .LVL886: 6257:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12154 .loc 1 6257 7 is_stmt 0 view .LVU4329 12155 011a AFE7 b .L756 12156 .LVL887: 12157 .L772: 6283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12158 .loc 1 6283 7 is_stmt 1 view .LVU4330 6283:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12159 .loc 1 6283 18 is_stmt 0 view .LVU4331 12160 011c 0023 movs r3, #0 12161 011e 84F84230 strb r3, [r4, #66] 6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12162 .loc 1 6286 7 is_stmt 1 view .LVU4332 6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12163 .loc 1 6286 7 view .LVU4333 12164 0122 84F84030 strb r3, [r4, #64] 6286:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12165 .loc 1 6286 7 view .LVU4334 6292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12166 .loc 1 6292 7 view .LVU4335 12167 0126 2046 mov r0, r4 12168 0128 FFF7FEFF bl HAL_I2C_MemRxCpltCallback 12169 .LVL888: 6292:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12170 .loc 1 6292 7 is_stmt 0 view .LVU4336 12171 012c A6E7 b .L756 12172 .cfi_endproc 12173 .LFE183: 12175 .section .text.I2C_Master_ISR_IT,"ax",%progbits 12176 .align 1 12177 .syntax unified 12178 .thumb 12179 .thumb_func 12181 I2C_Master_ISR_IT: 12182 .LVL889: 12183 .LFB172: 4941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress; 12184 .loc 1 4941 1 is_stmt 1 view -0 12185 .cfi_startproc 12186 @ args = 0, pretend = 0, frame = 0 12187 @ frame_needed = 0, uses_anonymous_args = 0 4942:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12188 .loc 1 4942 3 view .LVU4338 4943:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12189 .loc 1 4943 3 view .LVU4339 4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12190 .loc 1 4946 3 view .LVU4340 4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12191 .loc 1 4946 3 view .LVU4341 12192 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12193 0004 012B cmp r3, #1 12194 0006 00F0CF80 beq .L790 ARM GAS /tmp/ccJ8PJrU.s page 419 4941:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress; 12195 .loc 1 4941 1 is_stmt 0 view .LVU4342 12196 000a 70B5 push {r4, r5, r6, lr} 12197 .cfi_def_cfa_offset 16 12198 .cfi_offset 4, -16 12199 .cfi_offset 5, -12 12200 .cfi_offset 6, -8 12201 .cfi_offset 14, -4 12202 000c 82B0 sub sp, sp, #8 12203 .cfi_def_cfa_offset 24 12204 000e 0446 mov r4, r0 12205 0010 0D46 mov r5, r1 12206 0012 1646 mov r6, r2 4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12207 .loc 1 4946 3 is_stmt 1 discriminator 2 view .LVU4343 12208 0014 0123 movs r3, #1 12209 0016 80F84030 strb r3, [r0, #64] 4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12210 .loc 1 4946 3 discriminator 2 view .LVU4344 4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12211 .loc 1 4948 3 view .LVU4345 4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12212 .loc 1 4948 6 is_stmt 0 view .LVU4346 12213 001a 11F0100F tst r1, #16 12214 001e 02D0 beq .L776 4948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12215 .loc 1 4948 58 discriminator 1 view .LVU4347 12216 0020 12F0100F tst r2, #16 12217 0024 22D1 bne .L795 12218 .L776: 4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12219 .loc 1 4962 8 is_stmt 1 view .LVU4348 4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12220 .loc 1 4962 11 is_stmt 0 view .LVU4349 12221 0026 15F0040F tst r5, #4 12222 002a 29D0 beq .L778 4962:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12223 .loc 1 4962 65 discriminator 1 view .LVU4350 12224 002c 16F0040F tst r6, #4 12225 0030 26D0 beq .L778 4966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12226 .loc 1 4966 5 is_stmt 1 view .LVU4351 4966:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12227 .loc 1 4966 16 is_stmt 0 view .LVU4352 12228 0032 25F00405 bic r5, r5, #4 12229 .LVL890: 4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12230 .loc 1 4969 5 is_stmt 1 view .LVU4353 4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12231 .loc 1 4969 36 is_stmt 0 view .LVU4354 12232 0036 2368 ldr r3, [r4] 4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12233 .loc 1 4969 46 view .LVU4355 12234 0038 5A6A ldr r2, [r3, #36] 12235 .LVL891: 4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12236 .loc 1 4969 10 view .LVU4356 ARM GAS /tmp/ccJ8PJrU.s page 420 12237 003a 636A ldr r3, [r4, #36] 4969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12238 .loc 1 4969 21 view .LVU4357 12239 003c 1A70 strb r2, [r3] 4972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12240 .loc 1 4972 5 is_stmt 1 view .LVU4358 4972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12241 .loc 1 4972 9 is_stmt 0 view .LVU4359 12242 003e 636A ldr r3, [r4, #36] 4972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12243 .loc 1 4972 19 view .LVU4360 12244 0040 0133 adds r3, r3, #1 12245 0042 6362 str r3, [r4, #36] 4974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 12246 .loc 1 4974 5 is_stmt 1 view .LVU4361 4974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 12247 .loc 1 4974 9 is_stmt 0 view .LVU4362 12248 0044 238D ldrh r3, [r4, #40] 4974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 12249 .loc 1 4974 19 view .LVU4363 12250 0046 013B subs r3, r3, #1 12251 0048 2385 strh r3, [r4, #40] @ movhi 4975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12252 .loc 1 4975 5 is_stmt 1 view .LVU4364 4975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12253 .loc 1 4975 9 is_stmt 0 view .LVU4365 12254 004a 638D ldrh r3, [r4, #42] 12255 004c 9BB2 uxth r3, r3 4975:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12256 .loc 1 4975 20 view .LVU4366 12257 004e 013B subs r3, r3, #1 12258 0050 9BB2 uxth r3, r3 12259 0052 6385 strh r3, [r4, #42] @ movhi 12260 .LVL892: 12261 .L777: 5075:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12262 .loc 1 5075 3 is_stmt 1 view .LVU4367 5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12263 .loc 1 5077 3 view .LVU4368 5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12264 .loc 1 5077 6 is_stmt 0 view .LVU4369 12265 0054 15F0200F tst r5, #32 12266 0058 03D0 beq .L789 5077:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12267 .loc 1 5077 61 discriminator 1 view .LVU4370 12268 005a 16F0200F tst r6, #32 12269 005e 40F09E80 bne .L796 12270 .L789: 5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12271 .loc 1 5085 3 is_stmt 1 view .LVU4371 5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12272 .loc 1 5085 3 view .LVU4372 12273 0062 0020 movs r0, #0 12274 0064 84F84000 strb r0, [r4, #64] 5085:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12275 .loc 1 5085 3 view .LVU4373 5087:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 421 12276 .loc 1 5087 3 view .LVU4374 5088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12277 .loc 1 5088 1 is_stmt 0 view .LVU4375 12278 0068 02B0 add sp, sp, #8 12279 .cfi_remember_state 12280 .cfi_def_cfa_offset 16 12281 @ sp needed 12282 006a 70BD pop {r4, r5, r6, pc} 12283 .LVL893: 12284 .L795: 12285 .cfi_restore_state 4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12286 .loc 1 4952 5 is_stmt 1 view .LVU4376 12287 006c 0368 ldr r3, [r0] 12288 006e 1022 movs r2, #16 12289 .LVL894: 4952:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12290 .loc 1 4952 5 is_stmt 0 view .LVU4377 12291 0070 DA61 str r2, [r3, #28] 4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12292 .loc 1 4957 5 is_stmt 1 view .LVU4378 4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12293 .loc 1 4957 9 is_stmt 0 view .LVU4379 12294 0072 436C ldr r3, [r0, #68] 4957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12295 .loc 1 4957 21 view .LVU4380 12296 0074 43F00403 orr r3, r3, #4 12297 0078 4364 str r3, [r0, #68] 4960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12298 .loc 1 4960 5 is_stmt 1 view .LVU4381 12299 007a FFF7FEFF bl I2C_Flush_TXDR 12300 .LVL895: 4960:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12301 .loc 1 4960 5 is_stmt 0 view .LVU4382 12302 007e E9E7 b .L777 12303 .LVL896: 12304 .L778: 4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12305 .loc 1 4977 8 is_stmt 1 view .LVU4383 12306 0080 C5F38013 ubfx r3, r5, #6, #1 4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12307 .loc 1 4977 11 is_stmt 0 view .LVU4384 12308 0084 15F0400F tst r5, #64 12309 0088 19D1 bne .L779 4977:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12310 .loc 1 4977 63 discriminator 1 view .LVU4385 12311 008a 15F0020F tst r5, #2 12312 008e 16D0 beq .L779 4978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))) 12313 .loc 1 4978 66 view .LVU4386 12314 0090 16F0020F tst r6, #2 12315 0094 13D0 beq .L779 4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12316 .loc 1 4982 5 is_stmt 1 view .LVU4387 4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12317 .loc 1 4982 13 is_stmt 0 view .LVU4388 12318 0096 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccJ8PJrU.s page 422 12319 0098 9BB2 uxth r3, r3 4982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12320 .loc 1 4982 8 view .LVU4389 12321 009a 002B cmp r3, #0 12322 009c DAD0 beq .L777 4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12323 .loc 1 4985 7 is_stmt 1 view .LVU4390 4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12324 .loc 1 4985 35 is_stmt 0 view .LVU4391 12325 009e 626A ldr r2, [r4, #36] 12326 .LVL897: 4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12327 .loc 1 4985 11 view .LVU4392 12328 00a0 2368 ldr r3, [r4] 4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12329 .loc 1 4985 30 view .LVU4393 12330 00a2 1278 ldrb r2, [r2] @ zero_extendqisi2 4985:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12331 .loc 1 4985 28 view .LVU4394 12332 00a4 9A62 str r2, [r3, #40] 4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12333 .loc 1 4988 7 is_stmt 1 view .LVU4395 4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12334 .loc 1 4988 11 is_stmt 0 view .LVU4396 12335 00a6 636A ldr r3, [r4, #36] 4988:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12336 .loc 1 4988 21 view .LVU4397 12337 00a8 0133 adds r3, r3, #1 12338 00aa 6362 str r3, [r4, #36] 4990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 12339 .loc 1 4990 7 is_stmt 1 view .LVU4398 4990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 12340 .loc 1 4990 11 is_stmt 0 view .LVU4399 12341 00ac 238D ldrh r3, [r4, #40] 4990:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 12342 .loc 1 4990 21 view .LVU4400 12343 00ae 013B subs r3, r3, #1 12344 00b0 2385 strh r3, [r4, #40] @ movhi 4991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12345 .loc 1 4991 7 is_stmt 1 view .LVU4401 4991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12346 .loc 1 4991 11 is_stmt 0 view .LVU4402 12347 00b2 638D ldrh r3, [r4, #42] 12348 00b4 9BB2 uxth r3, r3 4991:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12349 .loc 1 4991 22 view .LVU4403 12350 00b6 013B subs r3, r3, #1 12351 00b8 9BB2 uxth r3, r3 12352 00ba 6385 strh r3, [r4, #42] @ movhi 12353 00bc CAE7 b .L777 12354 .LVL898: 12355 .L779: 4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12356 .loc 1 4994 8 is_stmt 1 view .LVU4404 4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12357 .loc 1 4994 11 is_stmt 0 view .LVU4405 12358 00be 15F0800F tst r5, #128 ARM GAS /tmp/ccJ8PJrU.s page 423 12359 00c2 4AD0 beq .L780 4994:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12360 .loc 1 4994 64 discriminator 1 view .LVU4406 12361 00c4 16F0400F tst r6, #64 12362 00c8 47D0 beq .L780 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12363 .loc 1 4997 5 is_stmt 1 view .LVU4407 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12364 .loc 1 4997 14 is_stmt 0 view .LVU4408 12365 00ca 638D ldrh r3, [r4, #42] 12366 00cc 9BB2 uxth r3, r3 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12367 .loc 1 4997 8 view .LVU4409 12368 00ce 002B cmp r3, #0 12369 00d0 35D0 beq .L781 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12370 .loc 1 4997 41 discriminator 1 view .LVU4410 12371 00d2 238D ldrh r3, [r4, #40] 4997:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12372 .loc 1 4997 33 discriminator 1 view .LVU4411 12373 00d4 002B cmp r3, #0 12374 00d6 32D1 bne .L781 4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12375 .loc 1 4999 7 is_stmt 1 view .LVU4412 4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12376 .loc 1 4999 35 is_stmt 0 view .LVU4413 12377 00d8 2268 ldr r2, [r4] 12378 .LVL899: 4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12379 .loc 1 4999 45 view .LVU4414 12380 00da 5168 ldr r1, [r2, #4] 12381 .LVL900: 4999:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12382 .loc 1 4999 18 view .LVU4415 12383 00dc C1F30901 ubfx r1, r1, #0, #10 12384 .LVL901: 5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12385 .loc 1 5001 7 is_stmt 1 view .LVU4416 5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12386 .loc 1 5001 15 is_stmt 0 view .LVU4417 12387 00e0 638D ldrh r3, [r4, #42] 12388 00e2 9BB2 uxth r3, r3 5001:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12389 .loc 1 5001 10 view .LVU4418 12390 00e4 FF2B cmp r3, #255 12391 00e6 12D9 bls .L782 5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12392 .loc 1 5004 9 is_stmt 1 view .LVU4419 5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12393 .loc 1 5004 13 is_stmt 0 view .LVU4420 12394 00e8 9369 ldr r3, [r2, #24] 5004:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12395 .loc 1 5004 12 view .LVU4421 12396 00ea 13F4803F tst r3, #65536 12397 00ee 0BD0 beq .L783 5006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12398 .loc 1 5006 11 is_stmt 1 view .LVU4422 ARM GAS /tmp/ccJ8PJrU.s page 424 5006:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12399 .loc 1 5006 26 is_stmt 0 view .LVU4423 12400 00f0 0123 movs r3, #1 12401 00f2 2385 strh r3, [r4, #40] @ movhi 12402 .L784: 5012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12403 .loc 1 5012 9 is_stmt 1 view .LVU4424 12404 00f4 0023 movs r3, #0 12405 00f6 0093 str r3, [sp] 12406 00f8 4FF08073 mov r3, #16777216 12407 00fc 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 12408 0100 2046 mov r0, r4 12409 .LVL902: 5012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12410 .loc 1 5012 9 is_stmt 0 view .LVU4425 12411 0102 FFF7FEFF bl I2C_TransferConfig 12412 .LVL903: 5012:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12413 .loc 1 5012 9 view .LVU4426 12414 0106 A5E7 b .L777 12415 .LVL904: 12416 .L783: 5010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12417 .loc 1 5010 11 is_stmt 1 view .LVU4427 5010:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12418 .loc 1 5010 26 is_stmt 0 view .LVU4428 12419 0108 FF23 movs r3, #255 12420 010a 2385 strh r3, [r4, #40] @ movhi 12421 010c F2E7 b .L784 12422 .L782: 5016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12423 .loc 1 5016 9 is_stmt 1 view .LVU4429 5016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12424 .loc 1 5016 30 is_stmt 0 view .LVU4430 12425 010e 628D ldrh r2, [r4, #42] 12426 0110 92B2 uxth r2, r2 5016:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12427 .loc 1 5016 24 view .LVU4431 12428 0112 2285 strh r2, [r4, #40] @ movhi 5017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12429 .loc 1 5017 9 is_stmt 1 view .LVU4432 5017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12430 .loc 1 5017 17 is_stmt 0 view .LVU4433 12431 0114 E36A ldr r3, [r4, #44] 5017:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12432 .loc 1 5017 12 view .LVU4434 12433 0116 13F5803F cmn r3, #65536 12434 011a 07D0 beq .L785 5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12435 .loc 1 5019 11 is_stmt 1 view .LVU4435 5020:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12436 .loc 1 5020 34 is_stmt 0 view .LVU4436 12437 011c E36A ldr r3, [r4, #44] 5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12438 .loc 1 5019 11 view .LVU4437 12439 011e 0020 movs r0, #0 12440 .LVL905: ARM GAS /tmp/ccJ8PJrU.s page 425 5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12441 .loc 1 5019 11 view .LVU4438 12442 0120 0090 str r0, [sp] 12443 0122 D2B2 uxtb r2, r2 12444 0124 2046 mov r0, r4 12445 0126 FFF7FEFF bl I2C_TransferConfig 12446 .LVL906: 5019:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12447 .loc 1 5019 11 view .LVU4439 12448 012a 93E7 b .L777 12449 .LVL907: 12450 .L785: 5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12451 .loc 1 5024 11 is_stmt 1 view .LVU4440 12452 012c 0023 movs r3, #0 12453 012e 0093 str r3, [sp] 12454 0130 4FF00073 mov r3, #33554432 12455 0134 D2B2 uxtb r2, r2 12456 0136 2046 mov r0, r4 12457 .LVL908: 5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12458 .loc 1 5024 11 is_stmt 0 view .LVU4441 12459 0138 FFF7FEFF bl I2C_TransferConfig 12460 .LVL909: 5024:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12461 .loc 1 5024 11 view .LVU4442 12462 013c 8AE7 b .L777 12463 .LVL910: 12464 .L781: 5032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12465 .loc 1 5032 7 is_stmt 1 view .LVU4443 5032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12466 .loc 1 5032 11 is_stmt 0 view .LVU4444 12467 013e 2368 ldr r3, [r4] 12468 0140 5B68 ldr r3, [r3, #4] 5032:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12469 .loc 1 5032 10 view .LVU4445 12470 0142 13F0007F tst r3, #33554432 12471 0146 03D1 bne .L786 5035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12472 .loc 1 5035 9 is_stmt 1 view .LVU4446 12473 0148 2046 mov r0, r4 12474 .LVL911: 5035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12475 .loc 1 5035 9 is_stmt 0 view .LVU4447 12476 014a FFF7FEFF bl I2C_ITMasterSeqCplt 12477 .LVL912: 5035:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12478 .loc 1 5035 9 view .LVU4448 12479 014e 81E7 b .L777 12480 .LVL913: 12481 .L786: 5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12482 .loc 1 5041 9 is_stmt 1 view .LVU4449 12483 0150 4021 movs r1, #64 12484 .LVL914: 5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 426 12485 .loc 1 5041 9 is_stmt 0 view .LVU4450 12486 0152 2046 mov r0, r4 12487 .LVL915: 5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12488 .loc 1 5041 9 view .LVU4451 12489 0154 FFF7FEFF bl I2C_ITError 12490 .LVL916: 5041:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12491 .loc 1 5041 9 view .LVU4452 12492 0158 7CE7 b .L777 12493 .LVL917: 12494 .L780: 5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12495 .loc 1 5045 8 is_stmt 1 view .LVU4453 5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12496 .loc 1 5045 11 is_stmt 0 view .LVU4454 12497 015a 002B cmp r3, #0 12498 015c 3FF47AAF beq .L777 5045:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12499 .loc 1 5045 63 discriminator 1 view .LVU4455 12500 0160 16F0400F tst r6, #64 12501 0164 3FF476AF beq .L777 5048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12502 .loc 1 5048 5 is_stmt 1 view .LVU4456 5048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12503 .loc 1 5048 13 is_stmt 0 view .LVU4457 12504 0168 638D ldrh r3, [r4, #42] 12505 016a 9BB2 uxth r3, r3 5048:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12506 .loc 1 5048 8 view .LVU4458 12507 016c 93B9 cbnz r3, .L787 5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12508 .loc 1 5050 7 is_stmt 1 view .LVU4459 5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12509 .loc 1 5050 11 is_stmt 0 view .LVU4460 12510 016e 2368 ldr r3, [r4] 12511 0170 5A68 ldr r2, [r3, #4] 12512 .LVL918: 5050:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12513 .loc 1 5050 10 view .LVU4461 12514 0172 12F0007F tst r2, #33554432 12515 0176 7FF46DAF bne .L777 5053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12516 .loc 1 5053 9 is_stmt 1 view .LVU4462 5053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12517 .loc 1 5053 17 is_stmt 0 view .LVU4463 12518 017a E26A ldr r2, [r4, #44] 5053:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12519 .loc 1 5053 12 view .LVU4464 12520 017c 12F5803F cmn r2, #65536 12521 0180 04D1 bne .L788 5056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12522 .loc 1 5056 11 is_stmt 1 view .LVU4465 5056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12523 .loc 1 5056 25 is_stmt 0 view .LVU4466 12524 0182 5A68 ldr r2, [r3, #4] 5056:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 427 12525 .loc 1 5056 31 view .LVU4467 12526 0184 42F48042 orr r2, r2, #16384 12527 0188 5A60 str r2, [r3, #4] 12528 018a 63E7 b .L777 12529 .L788: 5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12530 .loc 1 5061 11 is_stmt 1 view .LVU4468 12531 018c 2046 mov r0, r4 12532 .LVL919: 5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12533 .loc 1 5061 11 is_stmt 0 view .LVU4469 12534 018e FFF7FEFF bl I2C_ITMasterSeqCplt 12535 .LVL920: 5061:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12536 .loc 1 5061 11 view .LVU4470 12537 0192 5FE7 b .L777 12538 .LVL921: 12539 .L787: 5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12540 .loc 1 5069 7 is_stmt 1 view .LVU4471 12541 0194 4021 movs r1, #64 12542 .LVL922: 5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12543 .loc 1 5069 7 is_stmt 0 view .LVU4472 12544 0196 2046 mov r0, r4 12545 .LVL923: 5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12546 .loc 1 5069 7 view .LVU4473 12547 0198 FFF7FEFF bl I2C_ITError 12548 .LVL924: 5069:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12549 .loc 1 5069 7 view .LVU4474 12550 019c 5AE7 b .L777 12551 .LVL925: 12552 .L796: 5081:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12553 .loc 1 5081 5 is_stmt 1 view .LVU4475 12554 019e 2946 mov r1, r5 12555 01a0 2046 mov r0, r4 12556 01a2 FFF7FEFF bl I2C_ITMasterCplt 12557 .LVL926: 12558 01a6 5CE7 b .L789 12559 .LVL927: 12560 .L790: 12561 .cfi_def_cfa_offset 0 12562 .cfi_restore 4 12563 .cfi_restore 5 12564 .cfi_restore 6 12565 .cfi_restore 14 4946:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12566 .loc 1 4946 3 is_stmt 0 discriminator 1 view .LVU4476 12567 01a8 0220 movs r0, #2 12568 .LVL928: 5088:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12569 .loc 1 5088 1 view .LVU4477 12570 01aa 7047 bx lr 12571 .cfi_endproc ARM GAS /tmp/ccJ8PJrU.s page 428 12572 .LFE172: 12574 .section .text.I2C_Mem_ISR_DMA,"ax",%progbits 12575 .align 1 12576 .syntax unified 12577 .thumb 12578 .thumb_func 12580 I2C_Mem_ISR_DMA: 12581 .LVL929: 12582 .LFB176: 5547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 12583 .loc 1 5547 1 is_stmt 1 view -0 12584 .cfi_startproc 12585 @ args = 0, pretend = 0, frame = 0 12586 @ frame_needed = 0, uses_anonymous_args = 0 5548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12587 .loc 1 5548 3 view .LVU4479 5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12588 .loc 1 5551 3 view .LVU4480 5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12589 .loc 1 5551 3 view .LVU4481 12590 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12591 0004 012B cmp r3, #1 12592 0006 00F0DC80 beq .L816 5547:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 12593 .loc 1 5547 1 is_stmt 0 view .LVU4482 12594 000a 10B5 push {r4, lr} 12595 .cfi_def_cfa_offset 8 12596 .cfi_offset 4, -8 12597 .cfi_offset 14, -4 12598 000c 82B0 sub sp, sp, #8 12599 .cfi_def_cfa_offset 16 12600 000e 0446 mov r4, r0 5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12601 .loc 1 5551 3 is_stmt 1 discriminator 2 view .LVU4483 12602 0010 0123 movs r3, #1 12603 0012 80F84030 strb r3, [r0, #64] 5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12604 .loc 1 5551 3 discriminator 2 view .LVU4484 5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12605 .loc 1 5553 3 view .LVU4485 5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12606 .loc 1 5553 6 is_stmt 0 view .LVU4486 12607 0016 11F0100F tst r1, #16 12608 001a 02D0 beq .L799 5553:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12609 .loc 1 5553 55 discriminator 1 view .LVU4487 12610 001c 12F0100F tst r2, #16 12611 0020 10D1 bne .L822 12612 .L799: 5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12613 .loc 1 5570 8 is_stmt 1 view .LVU4488 5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12614 .loc 1 5570 11 is_stmt 0 view .LVU4489 12615 0022 11F0020F tst r1, #2 12616 0026 1BD0 beq .L801 5570:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12617 .loc 1 5570 62 discriminator 1 view .LVU4490 ARM GAS /tmp/ccJ8PJrU.s page 429 12618 0028 12F0020F tst r2, #2 12619 002c 18D0 beq .L801 5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12620 .loc 1 5574 5 is_stmt 1 view .LVU4491 5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12621 .loc 1 5574 9 is_stmt 0 view .LVU4492 12622 002e 2368 ldr r3, [r4] 5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12623 .loc 1 5574 32 view .LVU4493 12624 0030 226D ldr r2, [r4, #80] 12625 .LVL930: 5574:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12626 .loc 1 5574 26 view .LVU4494 12627 0032 9A62 str r2, [r3, #40] 5577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12628 .loc 1 5577 5 is_stmt 1 view .LVU4495 5577:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12629 .loc 1 5577 22 is_stmt 0 view .LVU4496 12630 0034 4FF0FF33 mov r3, #-1 12631 0038 2365 str r3, [r4, #80] 12632 .LVL931: 12633 .L800: 5693:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12634 .loc 1 5693 3 is_stmt 1 view .LVU4497 5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12635 .loc 1 5696 3 view .LVU4498 5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12636 .loc 1 5696 3 view .LVU4499 12637 003a 0020 movs r0, #0 12638 003c 84F84000 strb r0, [r4, #64] 5696:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12639 .loc 1 5696 3 view .LVU4500 5698:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12640 .loc 1 5698 3 view .LVU4501 5699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12641 .loc 1 5699 1 is_stmt 0 view .LVU4502 12642 0040 02B0 add sp, sp, #8 12643 .cfi_remember_state 12644 .cfi_def_cfa_offset 8 12645 @ sp needed 12646 0042 10BD pop {r4, pc} 12647 .LVL932: 12648 .L822: 12649 .cfi_restore_state 5557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12650 .loc 1 5557 5 is_stmt 1 view .LVU4503 12651 0044 0368 ldr r3, [r0] 12652 0046 1022 movs r2, #16 12653 .LVL933: 5557:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12654 .loc 1 5557 5 is_stmt 0 view .LVU4504 12655 0048 DA61 str r2, [r3, #28] 5560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12656 .loc 1 5560 5 is_stmt 1 view .LVU4505 5560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12657 .loc 1 5560 9 is_stmt 0 view .LVU4506 12658 004a 436C ldr r3, [r0, #68] ARM GAS /tmp/ccJ8PJrU.s page 430 5560:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12659 .loc 1 5560 21 view .LVU4507 12660 004c 43F00403 orr r3, r3, #4 12661 0050 4364 str r3, [r0, #68] 5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12662 .loc 1 5565 5 is_stmt 1 view .LVU4508 12663 0052 2021 movs r1, #32 12664 .LVL934: 5565:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12665 .loc 1 5565 5 is_stmt 0 view .LVU4509 12666 0054 FFF7FEFF bl I2C_Enable_IRQ 12667 .LVL935: 5568:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12668 .loc 1 5568 5 is_stmt 1 view .LVU4510 12669 0058 2046 mov r0, r4 12670 005a FFF7FEFF bl I2C_Flush_TXDR 12671 .LVL936: 12672 005e ECE7 b .L800 12673 .LVL937: 12674 .L801: 5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12675 .loc 1 5579 8 view .LVU4511 5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12676 .loc 1 5579 11 is_stmt 0 view .LVU4512 12677 0060 11F0800F tst r1, #128 12678 0064 02D0 beq .L802 5579:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12679 .loc 1 5579 61 discriminator 1 view .LVU4513 12680 0066 12F0400F tst r2, #64 12681 006a 0FD1 bne .L823 12682 .L802: 5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12683 .loc 1 5632 8 is_stmt 1 view .LVU4514 5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12684 .loc 1 5632 11 is_stmt 0 view .LVU4515 12685 006c 11F0400F tst r1, #64 12686 0070 02D0 beq .L809 5632:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12687 .loc 1 5632 60 discriminator 1 view .LVU4516 12688 0072 12F0400F tst r2, #64 12689 0076 58D1 bne .L824 12690 .L809: 5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12691 .loc 1 5684 8 is_stmt 1 view .LVU4517 5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12692 .loc 1 5684 11 is_stmt 0 view .LVU4518 12693 0078 11F0200F tst r1, #32 12694 007c DDD0 beq .L800 5684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12695 .loc 1 5684 63 discriminator 1 view .LVU4519 12696 007e 12F0200F tst r2, #32 12697 0082 DAD0 beq .L800 5688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12698 .loc 1 5688 5 is_stmt 1 view .LVU4520 12699 0084 2046 mov r0, r4 12700 .LVL938: 5688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 431 12701 .loc 1 5688 5 is_stmt 0 view .LVU4521 12702 0086 FFF7FEFF bl I2C_ITMasterCplt 12703 .LVL939: 5688:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12704 .loc 1 5688 5 view .LVU4522 12705 008a D6E7 b .L800 12706 .LVL940: 12707 .L823: 5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12708 .loc 1 5583 5 is_stmt 1 view .LVU4523 12709 008c 0121 movs r1, #1 12710 .LVL941: 5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12711 .loc 1 5583 5 is_stmt 0 view .LVU4524 12712 008e 2046 mov r0, r4 12713 .LVL942: 5583:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12714 .loc 1 5583 5 view .LVU4525 12715 0090 FFF7FEFF bl I2C_Disable_IRQ 12716 .LVL943: 5586:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12717 .loc 1 5586 5 is_stmt 1 view .LVU4526 12718 0094 1021 movs r1, #16 12719 0096 2046 mov r0, r4 12720 0098 FFF7FEFF bl I2C_Enable_IRQ 12721 .LVL944: 5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12722 .loc 1 5588 5 view .LVU4527 5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12723 .loc 1 5588 13 is_stmt 0 view .LVU4528 12724 009c 638D ldrh r3, [r4, #42] 12725 009e 9BB2 uxth r3, r3 5588:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12726 .loc 1 5588 8 view .LVU4529 12727 00a0 002B cmp r3, #0 12728 00a2 3DD0 beq .L803 5591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12729 .loc 1 5591 7 is_stmt 1 view .LVU4530 5591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12730 .loc 1 5591 15 is_stmt 0 view .LVU4531 12731 00a4 638D ldrh r3, [r4, #42] 12732 00a6 9BB2 uxth r3, r3 5591:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12733 .loc 1 5591 10 view .LVU4532 12734 00a8 FF2B cmp r3, #255 12735 00aa 25D9 bls .L804 5594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12736 .loc 1 5594 9 is_stmt 1 view .LVU4533 5594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12737 .loc 1 5594 13 is_stmt 0 view .LVU4534 12738 00ac 2368 ldr r3, [r4] 12739 00ae 9B69 ldr r3, [r3, #24] 5594:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12740 .loc 1 5594 12 view .LVU4535 12741 00b0 13F4803F tst r3, #65536 12742 00b4 1DD0 beq .L805 5596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 432 12743 .loc 1 5596 11 is_stmt 1 view .LVU4536 5596:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12744 .loc 1 5596 26 is_stmt 0 view .LVU4537 12745 00b6 0123 movs r3, #1 12746 00b8 2385 strh r3, [r4, #40] @ movhi 12747 .L806: 5602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12748 .loc 1 5602 9 is_stmt 1 view .LVU4538 5602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12749 .loc 1 5602 48 is_stmt 0 view .LVU4539 12750 00ba E16C ldr r1, [r4, #76] 5602:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12751 .loc 1 5602 9 view .LVU4540 12752 00bc 0023 movs r3, #0 12753 00be 0093 str r3, [sp] 12754 00c0 4FF08073 mov r3, #16777216 12755 00c4 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 12756 00c8 89B2 uxth r1, r1 12757 00ca 2046 mov r0, r4 12758 00cc FFF7FEFF bl I2C_TransferConfig 12759 .LVL945: 12760 .L807: 5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12761 .loc 1 5613 7 is_stmt 1 view .LVU4541 5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12762 .loc 1 5613 11 is_stmt 0 view .LVU4542 12763 00d0 638D ldrh r3, [r4, #42] 12764 00d2 9BB2 uxth r3, r3 5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12765 .loc 1 5613 30 view .LVU4543 12766 00d4 228D ldrh r2, [r4, #40] 5613:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12767 .loc 1 5613 23 view .LVU4544 12768 00d6 9B1A subs r3, r3, r2 12769 00d8 9BB2 uxth r3, r3 12770 00da 6385 strh r3, [r4, #42] @ movhi 5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12771 .loc 1 5616 7 is_stmt 1 view .LVU4545 5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12772 .loc 1 5616 15 is_stmt 0 view .LVU4546 12773 00dc 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12774 00e0 DBB2 uxtb r3, r3 5616:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12775 .loc 1 5616 10 view .LVU4547 12776 00e2 222B cmp r3, #34 12777 00e4 16D0 beq .L825 5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12778 .loc 1 5622 9 is_stmt 1 view .LVU4548 5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12779 .loc 1 5622 13 is_stmt 0 view .LVU4549 12780 00e6 2268 ldr r2, [r4] 5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12781 .loc 1 5622 23 view .LVU4550 12782 00e8 1368 ldr r3, [r2] 5622:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12783 .loc 1 5622 29 view .LVU4551 12784 00ea 43F48043 orr r3, r3, #16384 ARM GAS /tmp/ccJ8PJrU.s page 433 12785 00ee 1360 str r3, [r2] 12786 00f0 A3E7 b .L800 12787 .L805: 5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12788 .loc 1 5600 11 is_stmt 1 view .LVU4552 5600:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12789 .loc 1 5600 26 is_stmt 0 view .LVU4553 12790 00f2 FF23 movs r3, #255 12791 00f4 2385 strh r3, [r4, #40] @ movhi 12792 00f6 E0E7 b .L806 12793 .L804: 5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12794 .loc 1 5607 9 is_stmt 1 view .LVU4554 5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12795 .loc 1 5607 30 is_stmt 0 view .LVU4555 12796 00f8 628D ldrh r2, [r4, #42] 12797 00fa 92B2 uxth r2, r2 5607:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12798 .loc 1 5607 24 view .LVU4556 12799 00fc 2285 strh r2, [r4, #40] @ movhi 5608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12800 .loc 1 5608 9 is_stmt 1 view .LVU4557 5608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12801 .loc 1 5608 48 is_stmt 0 view .LVU4558 12802 00fe E16C ldr r1, [r4, #76] 5608:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12803 .loc 1 5608 9 view .LVU4559 12804 0100 0023 movs r3, #0 12805 0102 0093 str r3, [sp] 12806 0104 4FF00073 mov r3, #33554432 12807 0108 D2B2 uxtb r2, r2 12808 010a 89B2 uxth r1, r1 12809 010c 2046 mov r0, r4 12810 010e FFF7FEFF bl I2C_TransferConfig 12811 .LVL946: 12812 0112 DDE7 b .L807 12813 .L825: 5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12814 .loc 1 5618 9 is_stmt 1 view .LVU4560 5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12815 .loc 1 5618 13 is_stmt 0 view .LVU4561 12816 0114 2268 ldr r2, [r4] 5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12817 .loc 1 5618 23 view .LVU4562 12818 0116 1368 ldr r3, [r2] 5618:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12819 .loc 1 5618 29 view .LVU4563 12820 0118 43F40043 orr r3, r3, #32768 12821 011c 1360 str r3, [r2] 12822 011e 8CE7 b .L800 12823 .L803: 5629:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12824 .loc 1 5629 7 is_stmt 1 view .LVU4564 12825 0120 4021 movs r1, #64 12826 0122 2046 mov r0, r4 12827 0124 FFF7FEFF bl I2C_ITError 12828 .LVL947: ARM GAS /tmp/ccJ8PJrU.s page 434 12829 0128 87E7 b .L800 12830 .LVL948: 12831 .L824: 5636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12832 .loc 1 5636 5 view .LVU4565 12833 012a 0121 movs r1, #1 12834 .LVL949: 5636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12835 .loc 1 5636 5 is_stmt 0 view .LVU4566 12836 012c 2046 mov r0, r4 12837 .LVL950: 5636:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12838 .loc 1 5636 5 view .LVU4567 12839 012e FFF7FEFF bl I2C_Disable_IRQ 12840 .LVL951: 5639:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12841 .loc 1 5639 5 is_stmt 1 view .LVU4568 12842 0132 1021 movs r1, #16 12843 0134 2046 mov r0, r4 12844 0136 FFF7FEFF bl I2C_Enable_IRQ 12845 .LVL952: 5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12846 .loc 1 5641 5 view .LVU4569 5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12847 .loc 1 5641 13 is_stmt 0 view .LVU4570 12848 013a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12849 013e DBB2 uxtb r3, r3 5641:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12850 .loc 1 5641 8 view .LVU4571 12851 0140 222B cmp r3, #34 12852 0142 26D0 beq .L817 5548:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12853 .loc 1 5548 12 view .LVU4572 12854 0144 2048 ldr r0, .L827 12855 .L810: 12856 .LVL953: 5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12857 .loc 1 5646 5 is_stmt 1 view .LVU4573 5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12858 .loc 1 5646 13 is_stmt 0 view .LVU4574 12859 0146 638D ldrh r3, [r4, #42] 12860 0148 9BB2 uxth r3, r3 5646:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12861 .loc 1 5646 8 view .LVU4575 12862 014a FF2B cmp r3, #255 12863 014c 26D9 bls .L811 5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12864 .loc 1 5649 7 is_stmt 1 view .LVU4576 5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12865 .loc 1 5649 11 is_stmt 0 view .LVU4577 12866 014e 2368 ldr r3, [r4] 12867 0150 9B69 ldr r3, [r3, #24] 5649:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12868 .loc 1 5649 10 view .LVU4578 12869 0152 13F4803F tst r3, #65536 12870 0156 1ED0 beq .L812 5651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 435 12871 .loc 1 5651 9 is_stmt 1 view .LVU4579 5651:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12872 .loc 1 5651 24 is_stmt 0 view .LVU4580 12873 0158 0123 movs r3, #1 12874 015a 2385 strh r3, [r4, #40] @ movhi 12875 .L813: 5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12876 .loc 1 5659 7 is_stmt 1 view .LVU4581 5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12877 .loc 1 5659 46 is_stmt 0 view .LVU4582 12878 015c E16C ldr r1, [r4, #76] 5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12879 .loc 1 5659 7 view .LVU4583 12880 015e 0090 str r0, [sp] 12881 0160 4FF08073 mov r3, #16777216 12882 0164 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 12883 0168 89B2 uxth r1, r1 12884 016a 2046 mov r0, r4 12885 .LVL954: 5659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12886 .loc 1 5659 7 view .LVU4584 12887 016c FFF7FEFF bl I2C_TransferConfig 12888 .LVL955: 12889 .L814: 5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12890 .loc 1 5672 5 is_stmt 1 view .LVU4585 5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12891 .loc 1 5672 9 is_stmt 0 view .LVU4586 12892 0170 638D ldrh r3, [r4, #42] 12893 0172 9BB2 uxth r3, r3 5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12894 .loc 1 5672 28 view .LVU4587 12895 0174 228D ldrh r2, [r4, #40] 5672:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12896 .loc 1 5672 21 view .LVU4588 12897 0176 9B1A subs r3, r3, r2 12898 0178 9BB2 uxth r3, r3 12899 017a 6385 strh r3, [r4, #42] @ movhi 5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12900 .loc 1 5675 5 is_stmt 1 view .LVU4589 5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12901 .loc 1 5675 13 is_stmt 0 view .LVU4590 12902 017c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12903 0180 DBB2 uxtb r3, r3 5675:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 12904 .loc 1 5675 8 view .LVU4591 12905 0182 222B cmp r3, #34 12906 0184 17D0 beq .L826 5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12907 .loc 1 5681 7 is_stmt 1 view .LVU4592 5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12908 .loc 1 5681 11 is_stmt 0 view .LVU4593 12909 0186 2268 ldr r2, [r4] 5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12910 .loc 1 5681 21 view .LVU4594 12911 0188 1368 ldr r3, [r2] 5681:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 436 12912 .loc 1 5681 27 view .LVU4595 12913 018a 43F48043 orr r3, r3, #16384 12914 018e 1360 str r3, [r2] 12915 0190 53E7 b .L800 12916 .LVL956: 12917 .L817: 5643:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12918 .loc 1 5643 17 view .LVU4596 12919 0192 0E48 ldr r0, .L827+4 12920 0194 D7E7 b .L810 12921 .LVL957: 12922 .L812: 5655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12923 .loc 1 5655 9 is_stmt 1 view .LVU4597 5655:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12924 .loc 1 5655 24 is_stmt 0 view .LVU4598 12925 0196 FF23 movs r3, #255 12926 0198 2385 strh r3, [r4, #40] @ movhi 12927 019a DFE7 b .L813 12928 .L811: 5664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12929 .loc 1 5664 7 is_stmt 1 view .LVU4599 5664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12930 .loc 1 5664 28 is_stmt 0 view .LVU4600 12931 019c 628D ldrh r2, [r4, #42] 12932 019e 92B2 uxth r2, r2 5664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12933 .loc 1 5664 22 view .LVU4601 12934 01a0 2285 strh r2, [r4, #40] @ movhi 5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 12935 .loc 1 5667 7 is_stmt 1 view .LVU4602 5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 12936 .loc 1 5667 46 is_stmt 0 view .LVU4603 12937 01a2 E16C ldr r1, [r4, #76] 5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 12938 .loc 1 5667 7 view .LVU4604 12939 01a4 0090 str r0, [sp] 12940 01a6 4FF00073 mov r3, #33554432 12941 01aa D2B2 uxtb r2, r2 12942 01ac 89B2 uxth r1, r1 12943 01ae 2046 mov r0, r4 12944 .LVL958: 5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 12945 .loc 1 5667 7 view .LVU4605 12946 01b0 FFF7FEFF bl I2C_TransferConfig 12947 .LVL959: 5667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 12948 .loc 1 5667 7 view .LVU4606 12949 01b4 DCE7 b .L814 12950 .L826: 5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12951 .loc 1 5677 7 is_stmt 1 view .LVU4607 5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12952 .loc 1 5677 11 is_stmt 0 view .LVU4608 12953 01b6 2268 ldr r2, [r4] 5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12954 .loc 1 5677 21 view .LVU4609 ARM GAS /tmp/ccJ8PJrU.s page 437 12955 01b8 1368 ldr r3, [r2] 5677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 12956 .loc 1 5677 27 view .LVU4610 12957 01ba 43F40043 orr r3, r3, #32768 12958 01be 1360 str r3, [r2] 12959 01c0 3BE7 b .L800 12960 .LVL960: 12961 .L816: 12962 .cfi_def_cfa_offset 0 12963 .cfi_restore 4 12964 .cfi_restore 14 5551:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12965 .loc 1 5551 3 discriminator 1 view .LVU4611 12966 01c2 0220 movs r0, #2 12967 .LVL961: 5699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 12968 .loc 1 5699 1 view .LVU4612 12969 01c4 7047 bx lr 12970 .L828: 12971 01c6 00BF .align 2 12972 .L827: 12973 01c8 00200080 .word -2147475456 12974 01cc 00240080 .word -2147474432 12975 .cfi_endproc 12976 .LFE176: 12978 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits 12979 .align 1 12980 .syntax unified 12981 .thumb 12982 .thumb_func 12984 I2C_Slave_ISR_DMA: 12985 .LVL962: 12986 .LFB177: 5711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 12987 .loc 1 5711 1 is_stmt 1 view -0 12988 .cfi_startproc 12989 @ args = 0, pretend = 0, frame = 0 12990 @ frame_needed = 0, uses_anonymous_args = 0 5711:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 12991 .loc 1 5711 1 is_stmt 0 view .LVU4614 12992 0000 70B5 push {r4, r5, r6, lr} 12993 .cfi_def_cfa_offset 16 12994 .cfi_offset 4, -16 12995 .cfi_offset 5, -12 12996 .cfi_offset 6, -8 12997 .cfi_offset 14, -4 12998 0002 0446 mov r4, r0 5712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 12999 .loc 1 5712 3 is_stmt 1 view .LVU4615 5712:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13000 .loc 1 5712 12 is_stmt 0 view .LVU4616 13001 0004 C06A ldr r0, [r0, #44] 13002 .LVL963: 5713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13003 .loc 1 5713 3 is_stmt 1 view .LVU4617 5714:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13004 .loc 1 5714 3 view .LVU4618 ARM GAS /tmp/ccJ8PJrU.s page 438 5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13005 .loc 1 5717 3 view .LVU4619 5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13006 .loc 1 5717 3 view .LVU4620 13007 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 13008 000a 012B cmp r3, #1 13009 000c 00F08780 beq .L847 5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13010 .loc 1 5717 3 discriminator 2 view .LVU4621 13011 0010 0123 movs r3, #1 13012 0012 84F84030 strb r3, [r4, #64] 5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13013 .loc 1 5717 3 discriminator 2 view .LVU4622 5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13014 .loc 1 5720 3 view .LVU4623 5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13015 .loc 1 5720 6 is_stmt 0 view .LVU4624 13016 0016 11F0200F tst r1, #32 13017 001a 02D0 beq .L831 5720:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13018 .loc 1 5720 58 discriminator 1 view .LVU4625 13019 001c 12F0200F tst r2, #32 13020 0020 19D1 bne .L852 13021 .L831: 5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13022 .loc 1 5726 8 is_stmt 1 view .LVU4626 5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13023 .loc 1 5726 11 is_stmt 0 view .LVU4627 13024 0022 11F0100F tst r1, #16 13025 0026 6CD0 beq .L833 5726:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13026 .loc 1 5726 60 discriminator 1 view .LVU4628 13027 0028 12F0100F tst r2, #16 13028 002c 69D0 beq .L833 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13029 .loc 1 5733 5 is_stmt 1 view .LVU4629 13030 002e C2F38036 ubfx r6, r2, #14, #1 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13031 .loc 1 5733 8 is_stmt 0 view .LVU4630 13032 0032 12F4804F tst r2, #16384 13033 0036 02D1 bne .L834 5733:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13034 .loc 1 5733 68 discriminator 1 view .LVU4631 13035 0038 12F4004F tst r2, #32768 13036 003c 5DD0 beq .L835 13037 .L834: 5737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13038 .loc 1 5737 7 is_stmt 1 view .LVU4632 5737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13039 .loc 1 5737 15 is_stmt 0 view .LVU4633 13040 003e E36B ldr r3, [r4, #60] 5737:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13041 .loc 1 5737 10 view .LVU4634 13042 0040 6BB1 cbz r3, .L848 5739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13043 .loc 1 5739 9 is_stmt 1 view .LVU4635 13044 0042 C2F3C035 ubfx r5, r2, #15, #1 ARM GAS /tmp/ccJ8PJrU.s page 439 5739:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13045 .loc 1 5739 12 is_stmt 0 view .LVU4636 13046 0046 12F4004F tst r2, #32768 13047 004a 09D0 beq .L836 5741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13048 .loc 1 5741 11 is_stmt 1 view .LVU4637 5741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13049 .loc 1 5741 15 is_stmt 0 view .LVU4638 13050 004c 1B68 ldr r3, [r3] 13051 004e 5B68 ldr r3, [r3, #4] 5741:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13052 .loc 1 5741 14 view .LVU4639 13053 0050 2BB3 cbz r3, .L849 5713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13054 .loc 1 5713 12 view .LVU4640 13055 0052 0025 movs r5, #0 13056 0054 04E0 b .L836 13057 .L852: 5724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13058 .loc 1 5724 5 is_stmt 1 view .LVU4641 13059 0056 2046 mov r0, r4 13060 .LVL964: 5724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13061 .loc 1 5724 5 is_stmt 0 view .LVU4642 13062 0058 FFF7FEFF bl I2C_ITSlaveCplt 13063 .LVL965: 5724:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13064 .loc 1 5724 5 view .LVU4643 13065 005c 57E0 b .L832 13066 .LVL966: 13067 .L848: 5713:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13068 .loc 1 5713 12 view .LVU4644 13069 005e 0025 movs r5, #0 13070 .L836: 13071 .LVL967: 5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13072 .loc 1 5749 7 is_stmt 1 view .LVU4645 5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13073 .loc 1 5749 15 is_stmt 0 view .LVU4646 13074 0060 A36B ldr r3, [r4, #56] 5749:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13075 .loc 1 5749 10 view .LVU4647 13076 0062 1BB1 cbz r3, .L837 5751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13077 .loc 1 5751 9 is_stmt 1 view .LVU4648 5751:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13078 .loc 1 5751 12 is_stmt 0 view .LVU4649 13079 0064 16B1 cbz r6, .L837 5753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13080 .loc 1 5753 11 is_stmt 1 view .LVU4650 5753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13081 .loc 1 5753 15 is_stmt 0 view .LVU4651 13082 0066 1B68 ldr r3, [r3] 13083 0068 5B68 ldr r3, [r3, #4] 5753:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13084 .loc 1 5753 14 view .LVU4652 ARM GAS /tmp/ccJ8PJrU.s page 440 13085 006a D3B1 cbz r3, .L838 13086 .L837: 5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13087 .loc 1 5760 7 is_stmt 1 view .LVU4653 5760:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13088 .loc 1 5760 10 is_stmt 0 view .LVU4654 13089 006c CDB9 cbnz r5, .L838 5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13090 .loc 1 5791 9 is_stmt 1 view .LVU4655 13091 006e 2368 ldr r3, [r4] 13092 0070 1022 movs r2, #16 13093 .LVL968: 5791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13094 .loc 1 5791 9 is_stmt 0 view .LVU4656 13095 0072 DA61 str r2, [r3, #28] 5794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13096 .loc 1 5794 9 is_stmt 1 view .LVU4657 5794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13097 .loc 1 5794 13 is_stmt 0 view .LVU4658 13098 0074 636C ldr r3, [r4, #68] 5794:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13099 .loc 1 5794 25 view .LVU4659 13100 0076 43F00403 orr r3, r3, #4 13101 007a 6364 str r3, [r4, #68] 5797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13102 .loc 1 5797 9 is_stmt 1 view .LVU4660 5797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13103 .loc 1 5797 18 is_stmt 0 view .LVU4661 13104 007c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13105 0080 DBB2 uxtb r3, r3 13106 .LVL969: 5799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13107 .loc 1 5799 9 is_stmt 1 view .LVU4662 5799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13108 .loc 1 5799 12 is_stmt 0 view .LVU4663 13109 0082 10B1 cbz r0, .L842 5799:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13110 .loc 1 5799 45 discriminator 1 view .LVU4664 13111 0084 B0F1807F cmp r0, #16777216 13112 0088 41D1 bne .L832 13113 .L842: 5801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13114 .loc 1 5801 11 is_stmt 1 view .LVU4665 13115 008a 213B subs r3, r3, #33 13116 .LVL970: 5801:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13117 .loc 1 5801 11 is_stmt 0 view .LVU4666 13118 008c 092B cmp r3, #9 13119 008e 2CD8 bhi .L843 13120 0090 DFE803F0 tbb [pc, r3] 13121 .L845: 13122 0094 29 .byte (.L846-.L845)/2 13123 0095 30 .byte (.L844-.L845)/2 13124 0096 2B .byte (.L843-.L845)/2 13125 0097 2B .byte (.L843-.L845)/2 13126 0098 2B .byte (.L843-.L845)/2 13127 0099 2B .byte (.L843-.L845)/2 ARM GAS /tmp/ccJ8PJrU.s page 441 13128 009a 2B .byte (.L843-.L845)/2 13129 009b 2B .byte (.L843-.L845)/2 13130 009c 29 .byte (.L846-.L845)/2 13131 009d 30 .byte (.L844-.L845)/2 13132 .LVL971: 13133 .p2align 1 13134 .L849: 5743:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13135 .loc 1 5743 26 view .LVU4667 13136 009e 0125 movs r5, #1 13137 00a0 DEE7 b .L836 13138 .LVL972: 13139 .L838: 5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13140 .loc 1 5762 9 is_stmt 1 view .LVU4668 5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13141 .loc 1 5762 18 is_stmt 0 view .LVU4669 13142 00a2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13143 00a6 DBB2 uxtb r3, r3 5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13144 .loc 1 5762 12 view .LVU4670 13145 00a8 282B cmp r3, #40 13146 00aa 08D0 beq .L853 13147 .L840: 5769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13148 .loc 1 5769 14 is_stmt 1 view .LVU4671 5769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13149 .loc 1 5769 23 is_stmt 0 view .LVU4672 13150 00ac 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13151 00b0 DBB2 uxtb r3, r3 5769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13152 .loc 1 5769 17 view .LVU4673 13153 00b2 292B cmp r3, #41 13154 00b4 0AD0 beq .L854 13155 .L841: 5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13156 .loc 1 5784 11 is_stmt 1 view .LVU4674 13157 00b6 2368 ldr r3, [r4] 13158 00b8 1022 movs r2, #16 13159 .LVL973: 5784:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13160 .loc 1 5784 11 is_stmt 0 view .LVU4675 13161 00ba DA61 str r2, [r3, #28] 13162 00bc 27E0 b .L832 13163 .LVL974: 13164 .L853: 5762:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13165 .loc 1 5762 51 discriminator 1 view .LVU4676 13166 00be B0F1007F cmp r0, #33554432 13167 00c2 F3D1 bne .L840 5767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13168 .loc 1 5767 11 is_stmt 1 view .LVU4677 13169 00c4 2046 mov r0, r4 13170 .LVL975: 5767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13171 .loc 1 5767 11 is_stmt 0 view .LVU4678 13172 00c6 FFF7FEFF bl I2C_ITListenCplt ARM GAS /tmp/ccJ8PJrU.s page 442 13173 .LVL976: 5767:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13174 .loc 1 5767 11 view .LVU4679 13175 00ca 20E0 b .L832 13176 .LVL977: 13177 .L854: 5769:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13178 .loc 1 5769 64 discriminator 1 view .LVU4680 13179 00cc 10F5803F cmn r0, #65536 13180 00d0 F1D0 beq .L841 5772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13181 .loc 1 5772 11 is_stmt 1 view .LVU4681 13182 00d2 2368 ldr r3, [r4] 13183 00d4 1022 movs r2, #16 13184 .LVL978: 5772:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13185 .loc 1 5772 11 is_stmt 0 view .LVU4682 13186 00d6 DA61 str r2, [r3, #28] 5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13187 .loc 1 5775 11 is_stmt 1 view .LVU4683 13188 00d8 2046 mov r0, r4 13189 .LVL979: 5775:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13190 .loc 1 5775 11 is_stmt 0 view .LVU4684 13191 00da FFF7FEFF bl I2C_Flush_TXDR 13192 .LVL980: 5779:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13193 .loc 1 5779 11 is_stmt 1 view .LVU4685 13194 00de 2046 mov r0, r4 13195 00e0 FFF7FEFF bl I2C_ITSlaveSeqCplt 13196 .LVL981: 13197 00e4 13E0 b .L832 13198 .LVL982: 13199 .L846: 5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13200 .loc 1 5803 13 view .LVU4686 5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13201 .loc 1 5803 33 is_stmt 0 view .LVU4687 13202 00e6 2123 movs r3, #33 13203 .LVL983: 5803:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13204 .loc 1 5803 33 view .LVU4688 13205 00e8 2363 str r3, [r4, #48] 13206 .L843: 5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13207 .loc 1 5815 11 is_stmt 1 view .LVU4689 5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13208 .loc 1 5815 33 is_stmt 0 view .LVU4690 13209 00ea 616C ldr r1, [r4, #68] 13210 .LVL984: 5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13211 .loc 1 5815 11 view .LVU4691 13212 00ec 2046 mov r0, r4 13213 .LVL985: 5815:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13214 .loc 1 5815 11 view .LVU4692 13215 00ee FFF7FEFF bl I2C_ITError ARM GAS /tmp/ccJ8PJrU.s page 443 13216 .LVL986: 13217 00f2 0CE0 b .L832 13218 .LVL987: 13219 .L844: 5807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13220 .loc 1 5807 13 is_stmt 1 view .LVU4693 5807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13221 .loc 1 5807 33 is_stmt 0 view .LVU4694 13222 00f4 2223 movs r3, #34 13223 .LVL988: 5807:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13224 .loc 1 5807 33 view .LVU4695 13225 00f6 2363 str r3, [r4, #48] 13226 00f8 F7E7 b .L843 13227 .LVL989: 13228 .L835: 5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13229 .loc 1 5822 7 is_stmt 1 view .LVU4696 13230 00fa 2368 ldr r3, [r4] 13231 00fc 1022 movs r2, #16 13232 .LVL990: 5822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13233 .loc 1 5822 7 is_stmt 0 view .LVU4697 13234 00fe DA61 str r2, [r3, #28] 13235 0100 05E0 b .L832 13236 .LVL991: 13237 .L833: 5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13238 .loc 1 5825 8 is_stmt 1 view .LVU4698 5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13239 .loc 1 5825 11 is_stmt 0 view .LVU4699 13240 0102 11F0080F tst r1, #8 13241 0106 02D0 beq .L832 5825:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13242 .loc 1 5825 62 discriminator 1 view .LVU4700 13243 0108 12F0080F tst r2, #8 13244 010c 03D1 bne .L855 13245 .LVL992: 13246 .L832: 5833:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13247 .loc 1 5833 3 is_stmt 1 view .LVU4701 5836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13248 .loc 1 5836 3 view .LVU4702 5836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13249 .loc 1 5836 3 view .LVU4703 13250 010e 0020 movs r0, #0 13251 0110 84F84000 strb r0, [r4, #64] 5836:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13252 .loc 1 5836 3 view .LVU4704 5838:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13253 .loc 1 5838 3 view .LVU4705 13254 .L830: 5839:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13255 .loc 1 5839 1 is_stmt 0 view .LVU4706 13256 0114 70BD pop {r4, r5, r6, pc} 13257 .LVL993: 13258 .L855: ARM GAS /tmp/ccJ8PJrU.s page 444 5828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13259 .loc 1 5828 5 is_stmt 1 view .LVU4707 13260 0116 2046 mov r0, r4 13261 .LVL994: 5828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13262 .loc 1 5828 5 is_stmt 0 view .LVU4708 13263 0118 FFF7FEFF bl I2C_ITAddrCplt 13264 .LVL995: 5828:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13265 .loc 1 5828 5 view .LVU4709 13266 011c F7E7 b .L832 13267 .LVL996: 13268 .L847: 5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13269 .loc 1 5717 3 discriminator 1 view .LVU4710 13270 011e 0220 movs r0, #2 13271 .LVL997: 5717:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13272 .loc 1 5717 3 discriminator 1 view .LVU4711 13273 0120 F8E7 b .L830 13274 .cfi_endproc 13275 .LFE177: 13277 .section .text.I2C_Master_ISR_DMA,"ax",%progbits 13278 .align 1 13279 .syntax unified 13280 .thumb 13281 .thumb_func 13283 I2C_Master_ISR_DMA: 13284 .LVL998: 13285 .LFB175: 5399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress; 13286 .loc 1 5399 1 is_stmt 1 view -0 13287 .cfi_startproc 13288 @ args = 0, pretend = 0, frame = 0 13289 @ frame_needed = 0, uses_anonymous_args = 0 5400:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t xfermode; 13290 .loc 1 5400 3 view .LVU4713 5401:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13291 .loc 1 5401 3 view .LVU4714 5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13292 .loc 1 5404 3 view .LVU4715 5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13293 .loc 1 5404 3 view .LVU4716 13294 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 13295 0004 012B cmp r3, #1 13296 0006 00F0A380 beq .L870 5399:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint16_t devaddress; 13297 .loc 1 5399 1 is_stmt 0 view .LVU4717 13298 000a 10B5 push {r4, lr} 13299 .cfi_def_cfa_offset 8 13300 .cfi_offset 4, -8 13301 .cfi_offset 14, -4 13302 000c 82B0 sub sp, sp, #8 13303 .cfi_def_cfa_offset 16 13304 000e 0446 mov r4, r0 5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13305 .loc 1 5404 3 is_stmt 1 discriminator 2 view .LVU4718 ARM GAS /tmp/ccJ8PJrU.s page 445 13306 0010 0123 movs r3, #1 13307 0012 80F84030 strb r3, [r0, #64] 5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13308 .loc 1 5404 3 discriminator 2 view .LVU4719 5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13309 .loc 1 5406 3 view .LVU4720 5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13310 .loc 1 5406 6 is_stmt 0 view .LVU4721 13311 0016 11F0100F tst r1, #16 13312 001a 02D0 beq .L858 5406:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13313 .loc 1 5406 55 discriminator 1 view .LVU4722 13314 001c 12F0100F tst r2, #16 13315 0020 1FD1 bne .L876 13316 .L858: 5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13317 .loc 1 5423 8 is_stmt 1 view .LVU4723 5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13318 .loc 1 5423 11 is_stmt 0 view .LVU4724 13319 0022 11F0800F tst r1, #128 13320 0026 69D0 beq .L860 5423:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13321 .loc 1 5423 61 discriminator 1 view .LVU4725 13322 0028 12F0400F tst r2, #64 13323 002c 66D0 beq .L860 5427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13324 .loc 1 5427 5 is_stmt 1 view .LVU4726 13325 002e 2268 ldr r2, [r4] 13326 .LVL999: 5427:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13327 .loc 1 5427 5 is_stmt 0 view .LVU4727 13328 0030 1368 ldr r3, [r2] 13329 0032 23F04003 bic r3, r3, #64 13330 0036 1360 str r3, [r2] 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13331 .loc 1 5429 5 is_stmt 1 view .LVU4728 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13332 .loc 1 5429 13 is_stmt 0 view .LVU4729 13333 0038 638D ldrh r3, [r4, #42] 13334 003a 9BB2 uxth r3, r3 5429:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13335 .loc 1 5429 8 view .LVU4730 13336 003c 002B cmp r3, #0 13337 003e 4FD0 beq .L861 5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13338 .loc 1 5432 7 is_stmt 1 view .LVU4731 5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13339 .loc 1 5432 35 is_stmt 0 view .LVU4732 13340 0040 2268 ldr r2, [r4] 5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13341 .loc 1 5432 45 view .LVU4733 13342 0042 5168 ldr r1, [r2, #4] 13343 .LVL1000: 5432:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13344 .loc 1 5432 18 view .LVU4734 13345 0044 C1F30901 ubfx r1, r1, #0, #10 13346 .LVL1001: ARM GAS /tmp/ccJ8PJrU.s page 446 5435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13347 .loc 1 5435 7 is_stmt 1 view .LVU4735 5435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13348 .loc 1 5435 15 is_stmt 0 view .LVU4736 13349 0048 638D ldrh r3, [r4, #42] 13350 004a 9BB2 uxth r3, r3 5435:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13351 .loc 1 5435 10 view .LVU4737 13352 004c FF2B cmp r3, #255 13353 004e 1FD9 bls .L862 5438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13354 .loc 1 5438 9 is_stmt 1 view .LVU4738 5438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13355 .loc 1 5438 13 is_stmt 0 view .LVU4739 13356 0050 9369 ldr r3, [r2, #24] 5438:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13357 .loc 1 5438 12 view .LVU4740 13358 0052 13F4803F tst r3, #65536 13359 0056 16D0 beq .L863 5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13360 .loc 1 5440 11 is_stmt 1 view .LVU4741 5440:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13361 .loc 1 5440 26 is_stmt 0 view .LVU4742 13362 0058 0123 movs r3, #1 13363 005a 2385 strh r3, [r4, #40] @ movhi 5446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13364 .loc 1 5446 18 view .LVU4743 13365 005c 4FF08073 mov r3, #16777216 13366 0060 1DE0 b .L864 13367 .LVL1002: 13368 .L876: 5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13369 .loc 1 5410 5 is_stmt 1 view .LVU4744 13370 0062 0368 ldr r3, [r0] 13371 0064 1022 movs r2, #16 13372 .LVL1003: 5410:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13373 .loc 1 5410 5 is_stmt 0 view .LVU4745 13374 0066 DA61 str r2, [r3, #28] 5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13375 .loc 1 5413 5 is_stmt 1 view .LVU4746 5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13376 .loc 1 5413 9 is_stmt 0 view .LVU4747 13377 0068 436C ldr r3, [r0, #68] 5413:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13378 .loc 1 5413 21 view .LVU4748 13379 006a 43F00403 orr r3, r3, #4 13380 006e 4364 str r3, [r0, #68] 5418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13381 .loc 1 5418 5 is_stmt 1 view .LVU4749 13382 0070 2021 movs r1, #32 13383 .LVL1004: 5418:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13384 .loc 1 5418 5 is_stmt 0 view .LVU4750 13385 0072 FFF7FEFF bl I2C_Enable_IRQ 13386 .LVL1005: 5421:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 447 13387 .loc 1 5421 5 is_stmt 1 view .LVU4751 13388 0076 2046 mov r0, r4 13389 0078 FFF7FEFF bl I2C_Flush_TXDR 13390 .LVL1006: 13391 .L859: 5529:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13392 .loc 1 5529 3 view .LVU4752 5532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13393 .loc 1 5532 3 view .LVU4753 5532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13394 .loc 1 5532 3 view .LVU4754 13395 007c 0020 movs r0, #0 13396 007e 84F84000 strb r0, [r4, #64] 5532:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13397 .loc 1 5532 3 view .LVU4755 5534:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13398 .loc 1 5534 3 view .LVU4756 5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13399 .loc 1 5535 1 is_stmt 0 view .LVU4757 13400 0082 02B0 add sp, sp, #8 13401 .cfi_remember_state 13402 .cfi_def_cfa_offset 8 13403 @ sp needed 13404 0084 10BD pop {r4, pc} 13405 .LVL1007: 13406 .L863: 13407 .cfi_restore_state 5444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13408 .loc 1 5444 11 is_stmt 1 view .LVU4758 5444:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13409 .loc 1 5444 26 is_stmt 0 view .LVU4759 13410 0086 FF23 movs r3, #255 13411 0088 2385 strh r3, [r4, #40] @ movhi 5446:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13412 .loc 1 5446 18 view .LVU4760 13413 008a 4FF08073 mov r3, #16777216 13414 008e 06E0 b .L864 13415 .L862: 5450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13416 .loc 1 5450 9 is_stmt 1 view .LVU4761 5450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13417 .loc 1 5450 30 is_stmt 0 view .LVU4762 13418 0090 638D ldrh r3, [r4, #42] 5450:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13419 .loc 1 5450 24 view .LVU4763 13420 0092 2385 strh r3, [r4, #40] @ movhi 5451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13421 .loc 1 5451 9 is_stmt 1 view .LVU4764 5451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13422 .loc 1 5451 17 is_stmt 0 view .LVU4765 13423 0094 E36A ldr r3, [r4, #44] 5451:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13424 .loc 1 5451 12 view .LVU4766 13425 0096 13F5803F cmn r3, #65536 13426 009a 18D0 beq .L871 5453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13427 .loc 1 5453 11 is_stmt 1 view .LVU4767 ARM GAS /tmp/ccJ8PJrU.s page 448 5453:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13428 .loc 1 5453 20 is_stmt 0 view .LVU4768 13429 009c E36A ldr r3, [r4, #44] 13430 .LVL1008: 13431 .L864: 5462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13432 .loc 1 5462 7 is_stmt 1 view .LVU4769 13433 009e 0022 movs r2, #0 13434 00a0 0092 str r2, [sp] 13435 00a2 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 13436 00a6 2046 mov r0, r4 13437 .LVL1009: 5462:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13438 .loc 1 5462 7 is_stmt 0 view .LVU4770 13439 00a8 FFF7FEFF bl I2C_TransferConfig 13440 .LVL1010: 5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13441 .loc 1 5465 7 is_stmt 1 view .LVU4771 5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13442 .loc 1 5465 11 is_stmt 0 view .LVU4772 13443 00ac 638D ldrh r3, [r4, #42] 13444 00ae 9BB2 uxth r3, r3 5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13445 .loc 1 5465 30 view .LVU4773 13446 00b0 228D ldrh r2, [r4, #40] 5465:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13447 .loc 1 5465 23 view .LVU4774 13448 00b2 9B1A subs r3, r3, r2 13449 00b4 9BB2 uxth r3, r3 13450 00b6 6385 strh r3, [r4, #42] @ movhi 5468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13451 .loc 1 5468 7 is_stmt 1 view .LVU4775 5468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13452 .loc 1 5468 15 is_stmt 0 view .LVU4776 13453 00b8 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13454 00bc DBB2 uxtb r3, r3 5468:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13455 .loc 1 5468 10 view .LVU4777 13456 00be 222B cmp r3, #34 13457 00c0 08D0 beq .L877 5474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13458 .loc 1 5474 9 is_stmt 1 view .LVU4778 5474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13459 .loc 1 5474 13 is_stmt 0 view .LVU4779 13460 00c2 2268 ldr r2, [r4] 5474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13461 .loc 1 5474 23 view .LVU4780 13462 00c4 1368 ldr r3, [r2] 5474:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13463 .loc 1 5474 29 view .LVU4781 13464 00c6 43F48043 orr r3, r3, #16384 13465 00ca 1360 str r3, [r2] 13466 00cc D6E7 b .L859 13467 .LVL1011: 13468 .L871: 5457:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13469 .loc 1 5457 20 view .LVU4782 ARM GAS /tmp/ccJ8PJrU.s page 449 13470 00ce 4FF00073 mov r3, #33554432 13471 00d2 E4E7 b .L864 13472 .LVL1012: 13473 .L877: 5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13474 .loc 1 5470 9 is_stmt 1 view .LVU4783 5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13475 .loc 1 5470 13 is_stmt 0 view .LVU4784 13476 00d4 2268 ldr r2, [r4] 5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13477 .loc 1 5470 23 view .LVU4785 13478 00d6 1368 ldr r3, [r2] 5470:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13479 .loc 1 5470 29 view .LVU4786 13480 00d8 43F40043 orr r3, r3, #32768 13481 00dc 1360 str r3, [r2] 13482 00de CDE7 b .L859 13483 .LVL1013: 13484 .L861: 5480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13485 .loc 1 5480 7 is_stmt 1 view .LVU4787 5480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13486 .loc 1 5480 11 is_stmt 0 view .LVU4788 13487 00e0 2368 ldr r3, [r4] 13488 00e2 5B68 ldr r3, [r3, #4] 5480:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13489 .loc 1 5480 10 view .LVU4789 13490 00e4 13F0007F tst r3, #33554432 13491 00e8 03D1 bne .L866 5483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13492 .loc 1 5483 9 is_stmt 1 view .LVU4790 13493 00ea 2046 mov r0, r4 13494 .LVL1014: 5483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13495 .loc 1 5483 9 is_stmt 0 view .LVU4791 13496 00ec FFF7FEFF bl I2C_ITMasterSeqCplt 13497 .LVL1015: 5483:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13498 .loc 1 5483 9 view .LVU4792 13499 00f0 C4E7 b .L859 13500 .LVL1016: 13501 .L866: 5489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13502 .loc 1 5489 9 is_stmt 1 view .LVU4793 13503 00f2 4021 movs r1, #64 13504 .LVL1017: 5489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13505 .loc 1 5489 9 is_stmt 0 view .LVU4794 13506 00f4 2046 mov r0, r4 13507 .LVL1018: 5489:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13508 .loc 1 5489 9 view .LVU4795 13509 00f6 FFF7FEFF bl I2C_ITError 13510 .LVL1019: 13511 00fa BFE7 b .L859 13512 .LVL1020: 13513 .L860: ARM GAS /tmp/ccJ8PJrU.s page 450 5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13514 .loc 1 5493 8 is_stmt 1 view .LVU4796 5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13515 .loc 1 5493 11 is_stmt 0 view .LVU4797 13516 00fc 11F0400F tst r1, #64 13517 0100 1CD0 beq .L867 5493:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13518 .loc 1 5493 60 discriminator 1 view .LVU4798 13519 0102 12F0400F tst r2, #64 13520 0106 19D0 beq .L867 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13521 .loc 1 5496 5 is_stmt 1 view .LVU4799 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13522 .loc 1 5496 13 is_stmt 0 view .LVU4800 13523 0108 638D ldrh r3, [r4, #42] 13524 010a 9BB2 uxth r3, r3 5496:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13525 .loc 1 5496 8 view .LVU4801 13526 010c 8BB9 cbnz r3, .L868 5498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13527 .loc 1 5498 7 is_stmt 1 view .LVU4802 5498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13528 .loc 1 5498 11 is_stmt 0 view .LVU4803 13529 010e 2368 ldr r3, [r4] 13530 0110 5A68 ldr r2, [r3, #4] 13531 .LVL1021: 5498:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13532 .loc 1 5498 10 view .LVU4804 13533 0112 12F0007F tst r2, #33554432 13534 0116 B1D1 bne .L859 5501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13535 .loc 1 5501 9 is_stmt 1 view .LVU4805 5501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13536 .loc 1 5501 17 is_stmt 0 view .LVU4806 13537 0118 E26A ldr r2, [r4, #44] 5501:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13538 .loc 1 5501 12 view .LVU4807 13539 011a 12F5803F cmn r2, #65536 13540 011e 04D1 bne .L869 5504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13541 .loc 1 5504 11 is_stmt 1 view .LVU4808 5504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13542 .loc 1 5504 25 is_stmt 0 view .LVU4809 13543 0120 5A68 ldr r2, [r3, #4] 5504:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13544 .loc 1 5504 31 view .LVU4810 13545 0122 42F48042 orr r2, r2, #16384 13546 0126 5A60 str r2, [r3, #4] 13547 0128 A8E7 b .L859 13548 .L869: 5509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13549 .loc 1 5509 11 is_stmt 1 view .LVU4811 13550 012a 2046 mov r0, r4 13551 .LVL1022: 5509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13552 .loc 1 5509 11 is_stmt 0 view .LVU4812 13553 012c FFF7FEFF bl I2C_ITMasterSeqCplt ARM GAS /tmp/ccJ8PJrU.s page 451 13554 .LVL1023: 5509:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13555 .loc 1 5509 11 view .LVU4813 13556 0130 A4E7 b .L859 13557 .LVL1024: 13558 .L868: 5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13559 .loc 1 5517 7 is_stmt 1 view .LVU4814 13560 0132 4021 movs r1, #64 13561 .LVL1025: 5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13562 .loc 1 5517 7 is_stmt 0 view .LVU4815 13563 0134 2046 mov r0, r4 13564 .LVL1026: 5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13565 .loc 1 5517 7 view .LVU4816 13566 0136 FFF7FEFF bl I2C_ITError 13567 .LVL1027: 5517:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13568 .loc 1 5517 7 view .LVU4817 13569 013a 9FE7 b .L859 13570 .LVL1028: 13571 .L867: 5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13572 .loc 1 5520 8 is_stmt 1 view .LVU4818 5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13573 .loc 1 5520 11 is_stmt 0 view .LVU4819 13574 013c 11F0200F tst r1, #32 13575 0140 9CD0 beq .L859 5520:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13576 .loc 1 5520 63 discriminator 1 view .LVU4820 13577 0142 12F0200F tst r2, #32 13578 0146 99D0 beq .L859 5524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13579 .loc 1 5524 5 is_stmt 1 view .LVU4821 13580 0148 2046 mov r0, r4 13581 .LVL1029: 5524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13582 .loc 1 5524 5 is_stmt 0 view .LVU4822 13583 014a FFF7FEFF bl I2C_ITMasterCplt 13584 .LVL1030: 5524:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13585 .loc 1 5524 5 view .LVU4823 13586 014e 95E7 b .L859 13587 .LVL1031: 13588 .L870: 13589 .cfi_def_cfa_offset 0 13590 .cfi_restore 4 13591 .cfi_restore 14 5404:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13592 .loc 1 5404 3 discriminator 1 view .LVU4824 13593 0150 0220 movs r0, #2 13594 .LVL1032: 5535:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13595 .loc 1 5535 1 view .LVU4825 13596 0152 7047 bx lr 13597 .cfi_endproc ARM GAS /tmp/ccJ8PJrU.s page 452 13598 .LFE175: 13600 .section .text.I2C_DMAError,"ax",%progbits 13601 .align 1 13602 .syntax unified 13603 .thumb 13604 .thumb_func 13606 I2C_DMAError: 13607 .LVL1033: 13608 .LFB193: 6948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13609 .loc 1 6948 1 is_stmt 1 view -0 13610 .cfi_startproc 13611 @ args = 0, pretend = 0, frame = 0 13612 @ frame_needed = 0, uses_anonymous_args = 0 6948:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13613 .loc 1 6948 1 is_stmt 0 view .LVU4827 13614 0000 08B5 push {r3, lr} 13615 .cfi_def_cfa_offset 8 13616 .cfi_offset 3, -8 13617 .cfi_offset 14, -4 6950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13618 .loc 1 6950 3 is_stmt 1 view .LVU4828 6950:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13619 .loc 1 6950 22 is_stmt 0 view .LVU4829 13620 0002 406A ldr r0, [r0, #36] 13621 .LVL1034: 6953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13622 .loc 1 6953 3 is_stmt 1 view .LVU4830 6953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13623 .loc 1 6953 7 is_stmt 0 view .LVU4831 13624 0004 0268 ldr r2, [r0] 6953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13625 .loc 1 6953 17 view .LVU4832 13626 0006 5368 ldr r3, [r2, #4] 6953:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13627 .loc 1 6953 23 view .LVU4833 13628 0008 43F40043 orr r3, r3, #32768 13629 000c 5360 str r3, [r2, #4] 6956:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13630 .loc 1 6956 3 is_stmt 1 view .LVU4834 13631 000e 1021 movs r1, #16 13632 0010 FFF7FEFF bl I2C_ITError 13633 .LVL1035: 6957:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13634 .loc 1 6957 1 is_stmt 0 view .LVU4835 13635 0014 08BD pop {r3, pc} 13636 .cfi_endproc 13637 .LFE193: 13639 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits 13640 .align 1 13641 .syntax unified 13642 .thumb 13643 .thumb_func 13645 I2C_DMAMasterTransmitCplt: 13646 .LVL1036: 13647 .LFB189: 6780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ ARM GAS /tmp/ccJ8PJrU.s page 453 13648 .loc 1 6780 1 is_stmt 1 view -0 13649 .cfi_startproc 13650 @ args = 0, pretend = 0, frame = 0 13651 @ frame_needed = 0, uses_anonymous_args = 0 6780:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13652 .loc 1 6780 1 is_stmt 0 view .LVU4837 13653 0000 10B5 push {r4, lr} 13654 .cfi_def_cfa_offset 8 13655 .cfi_offset 4, -8 13656 .cfi_offset 14, -4 6782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13657 .loc 1 6782 3 is_stmt 1 view .LVU4838 6782:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13658 .loc 1 6782 22 is_stmt 0 view .LVU4839 13659 0002 446A ldr r4, [r0, #36] 13660 .LVL1037: 6785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13661 .loc 1 6785 3 is_stmt 1 view .LVU4840 6785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13662 .loc 1 6785 7 is_stmt 0 view .LVU4841 13663 0004 2268 ldr r2, [r4] 6785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13664 .loc 1 6785 17 view .LVU4842 13665 0006 1368 ldr r3, [r2] 6785:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13666 .loc 1 6785 23 view .LVU4843 13667 0008 23F48043 bic r3, r3, #16384 13668 000c 1360 str r3, [r2] 6788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13669 .loc 1 6788 3 is_stmt 1 view .LVU4844 6788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13670 .loc 1 6788 11 is_stmt 0 view .LVU4845 13671 000e 638D ldrh r3, [r4, #42] 13672 0010 9BB2 uxth r3, r3 6788:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13673 .loc 1 6788 6 view .LVU4846 13674 0012 ABB1 cbz r3, .L887 6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13675 .loc 1 6797 5 is_stmt 1 view .LVU4847 6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13676 .loc 1 6797 9 is_stmt 0 view .LVU4848 13677 0014 616A ldr r1, [r4, #36] 6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13678 .loc 1 6797 27 view .LVU4849 13679 0016 238D ldrh r3, [r4, #40] 6797:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13680 .loc 1 6797 20 view .LVU4850 13681 0018 1944 add r1, r1, r3 13682 001a 6162 str r1, [r4, #36] 6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13683 .loc 1 6800 5 is_stmt 1 view .LVU4851 6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13684 .loc 1 6800 13 is_stmt 0 view .LVU4852 13685 001c 638D ldrh r3, [r4, #42] 13686 001e 9BB2 uxth r3, r3 6800:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13687 .loc 1 6800 8 view .LVU4853 ARM GAS /tmp/ccJ8PJrU.s page 454 13688 0020 FF2B cmp r3, #255 13689 0022 12D9 bls .L883 6802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13690 .loc 1 6802 7 is_stmt 1 view .LVU4854 6802:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13691 .loc 1 6802 22 is_stmt 0 view .LVU4855 13692 0024 FF23 movs r3, #255 13693 0026 2385 strh r3, [r4, #40] @ movhi 13694 .L884: 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13695 .loc 1 6810 5 is_stmt 1 view .LVU4856 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13696 .loc 1 6810 81 is_stmt 0 view .LVU4857 13697 0028 2268 ldr r2, [r4] 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13698 .loc 1 6810 9 view .LVU4858 13699 002a 238D ldrh r3, [r4, #40] 13700 002c 2832 adds r2, r2, #40 13701 002e A06B ldr r0, [r4, #56] 13702 .LVL1038: 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13703 .loc 1 6810 9 view .LVU4859 13704 0030 FFF7FEFF bl HAL_DMA_Start_IT 13705 .LVL1039: 6810:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13706 .loc 1 6810 8 discriminator 1 view .LVU4860 13707 0034 60B1 cbz r0, .L885 6814:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13708 .loc 1 6814 7 is_stmt 1 view .LVU4861 13709 0036 1021 movs r1, #16 13710 0038 2046 mov r0, r4 13711 003a FFF7FEFF bl I2C_ITError 13712 .LVL1040: 13713 .L880: 6822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13714 .loc 1 6822 1 is_stmt 0 view .LVU4862 13715 003e 10BD pop {r4, pc} 13716 .LVL1041: 13717 .L887: 6791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13718 .loc 1 6791 5 is_stmt 1 view .LVU4863 13719 0040 2021 movs r1, #32 13720 0042 2046 mov r0, r4 13721 .LVL1042: 6791:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13722 .loc 1 6791 5 is_stmt 0 view .LVU4864 13723 0044 FFF7FEFF bl I2C_Enable_IRQ 13724 .LVL1043: 13725 0048 F9E7 b .L880 13726 .LVL1044: 13727 .L883: 6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13728 .loc 1 6806 7 is_stmt 1 view .LVU4865 6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13729 .loc 1 6806 28 is_stmt 0 view .LVU4866 13730 004a 638D ldrh r3, [r4, #42] 6806:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } ARM GAS /tmp/ccJ8PJrU.s page 455 13731 .loc 1 6806 22 view .LVU4867 13732 004c 2385 strh r3, [r4, #40] @ movhi 13733 004e EBE7 b .L884 13734 .LVL1045: 13735 .L885: 6819:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13736 .loc 1 6819 7 is_stmt 1 view .LVU4868 13737 0050 4021 movs r1, #64 13738 0052 2046 mov r0, r4 13739 0054 FFF7FEFF bl I2C_Enable_IRQ 13740 .LVL1046: 6822:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13741 .loc 1 6822 1 is_stmt 0 view .LVU4869 13742 0058 F1E7 b .L880 13743 .cfi_endproc 13744 .LFE189: 13746 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits 13747 .align 1 13748 .syntax unified 13749 .thumb 13750 .thumb_func 13752 I2C_DMAMasterReceiveCplt: 13753 .LVL1047: 13754 .LFB191: 6860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13755 .loc 1 6860 1 is_stmt 1 view -0 13756 .cfi_startproc 13757 @ args = 0, pretend = 0, frame = 0 13758 @ frame_needed = 0, uses_anonymous_args = 0 6860:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13759 .loc 1 6860 1 is_stmt 0 view .LVU4871 13760 0000 10B5 push {r4, lr} 13761 .cfi_def_cfa_offset 8 13762 .cfi_offset 4, -8 13763 .cfi_offset 14, -4 6862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13764 .loc 1 6862 3 is_stmt 1 view .LVU4872 6862:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13765 .loc 1 6862 22 is_stmt 0 view .LVU4873 13766 0002 446A ldr r4, [r0, #36] 13767 .LVL1048: 6865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13768 .loc 1 6865 3 is_stmt 1 view .LVU4874 6865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13769 .loc 1 6865 7 is_stmt 0 view .LVU4875 13770 0004 2268 ldr r2, [r4] 6865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13771 .loc 1 6865 17 view .LVU4876 13772 0006 1368 ldr r3, [r2] 6865:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13773 .loc 1 6865 23 view .LVU4877 13774 0008 23F40043 bic r3, r3, #32768 13775 000c 1360 str r3, [r2] 6868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13776 .loc 1 6868 3 is_stmt 1 view .LVU4878 6868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13777 .loc 1 6868 11 is_stmt 0 view .LVU4879 ARM GAS /tmp/ccJ8PJrU.s page 456 13778 000e 638D ldrh r3, [r4, #42] 13779 0010 9BB2 uxth r3, r3 6868:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13780 .loc 1 6868 6 view .LVU4880 13781 0012 7BB1 cbz r3, .L896 6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13782 .loc 1 6877 5 is_stmt 1 view .LVU4881 6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13783 .loc 1 6877 9 is_stmt 0 view .LVU4882 13784 0014 626A ldr r2, [r4, #36] 6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13785 .loc 1 6877 27 view .LVU4883 13786 0016 238D ldrh r3, [r4, #40] 6877:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13787 .loc 1 6877 20 view .LVU4884 13788 0018 1A44 add r2, r2, r3 13789 001a 6262 str r2, [r4, #36] 6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13790 .loc 1 6880 5 is_stmt 1 view .LVU4885 6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13791 .loc 1 6880 13 is_stmt 0 view .LVU4886 13792 001c 638D ldrh r3, [r4, #42] 13793 001e 9BB2 uxth r3, r3 6880:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13794 .loc 1 6880 8 view .LVU4887 13795 0020 FF2B cmp r3, #255 13796 0022 0FD9 bls .L891 6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13797 .loc 1 6883 7 is_stmt 1 view .LVU4888 6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13798 .loc 1 6883 11 is_stmt 0 view .LVU4889 13799 0024 2368 ldr r3, [r4] 13800 0026 9B69 ldr r3, [r3, #24] 6883:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 13801 .loc 1 6883 10 view .LVU4890 13802 0028 13F4803F tst r3, #65536 13803 002c 07D0 beq .L892 6885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13804 .loc 1 6885 9 is_stmt 1 view .LVU4891 6885:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13805 .loc 1 6885 24 is_stmt 0 view .LVU4892 13806 002e 0123 movs r3, #1 13807 0030 2385 strh r3, [r4, #40] @ movhi 13808 0032 09E0 b .L893 13809 .L896: 6871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13810 .loc 1 6871 5 is_stmt 1 view .LVU4893 13811 0034 2021 movs r1, #32 13812 0036 2046 mov r0, r4 13813 .LVL1049: 6871:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13814 .loc 1 6871 5 is_stmt 0 view .LVU4894 13815 0038 FFF7FEFF bl I2C_Enable_IRQ 13816 .LVL1050: 13817 003c 0FE0 b .L888 13818 .LVL1051: 13819 .L892: ARM GAS /tmp/ccJ8PJrU.s page 457 6889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13820 .loc 1 6889 9 is_stmt 1 view .LVU4895 6889:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13821 .loc 1 6889 24 is_stmt 0 view .LVU4896 13822 003e FF23 movs r3, #255 13823 0040 2385 strh r3, [r4, #40] @ movhi 13824 0042 01E0 b .L893 13825 .L891: 6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13826 .loc 1 6894 7 is_stmt 1 view .LVU4897 6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13827 .loc 1 6894 28 is_stmt 0 view .LVU4898 13828 0044 638D ldrh r3, [r4, #42] 6894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13829 .loc 1 6894 22 view .LVU4899 13830 0046 2385 strh r3, [r4, #40] @ movhi 13831 .L893: 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13832 .loc 1 6898 5 is_stmt 1 view .LVU4900 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13833 .loc 1 6898 55 is_stmt 0 view .LVU4901 13834 0048 2168 ldr r1, [r4] 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13835 .loc 1 6898 9 view .LVU4902 13836 004a 238D ldrh r3, [r4, #40] 13837 004c 2431 adds r1, r1, #36 13838 004e E06B ldr r0, [r4, #60] 13839 .LVL1052: 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13840 .loc 1 6898 9 view .LVU4903 13841 0050 FFF7FEFF bl HAL_DMA_Start_IT 13842 .LVL1053: 6898:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13843 .loc 1 6898 8 discriminator 1 view .LVU4904 13844 0054 20B1 cbz r0, .L894 6902:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13845 .loc 1 6902 7 is_stmt 1 view .LVU4905 13846 0056 1021 movs r1, #16 13847 0058 2046 mov r0, r4 13848 005a FFF7FEFF bl I2C_ITError 13849 .LVL1054: 13850 .L888: 6910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13851 .loc 1 6910 1 is_stmt 0 view .LVU4906 13852 005e 10BD pop {r4, pc} 13853 .LVL1055: 13854 .L894: 6907:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13855 .loc 1 6907 7 is_stmt 1 view .LVU4907 13856 0060 4021 movs r1, #64 13857 0062 2046 mov r0, r4 13858 0064 FFF7FEFF bl I2C_Enable_IRQ 13859 .LVL1056: 6910:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13860 .loc 1 6910 1 is_stmt 0 view .LVU4908 13861 0068 F9E7 b .L888 13862 .cfi_endproc ARM GAS /tmp/ccJ8PJrU.s page 458 13863 .LFE191: 13865 .section .text.I2C_Mem_ISR_IT,"ax",%progbits 13866 .align 1 13867 .syntax unified 13868 .thumb 13869 .thumb_func 13871 I2C_Mem_ISR_IT: 13872 .LVL1057: 13873 .LFB173: 5100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 13874 .loc 1 5100 1 is_stmt 1 view -0 13875 .cfi_startproc 13876 @ args = 0, pretend = 0, frame = 0 13877 @ frame_needed = 0, uses_anonymous_args = 0 5101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 13878 .loc 1 5101 3 view .LVU4910 5102:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13879 .loc 1 5102 3 view .LVU4911 5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13880 .loc 1 5105 3 view .LVU4912 5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13881 .loc 1 5105 3 view .LVU4913 13882 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 13883 0004 012B cmp r3, #1 13884 0006 00F0D580 beq .L914 5100:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 13885 .loc 1 5100 1 is_stmt 0 view .LVU4914 13886 000a 70B5 push {r4, r5, r6, lr} 13887 .cfi_def_cfa_offset 16 13888 .cfi_offset 4, -16 13889 .cfi_offset 5, -12 13890 .cfi_offset 6, -8 13891 .cfi_offset 14, -4 13892 000c 82B0 sub sp, sp, #8 13893 .cfi_def_cfa_offset 24 13894 000e 0446 mov r4, r0 13895 0010 0D46 mov r5, r1 13896 0012 1646 mov r6, r2 5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13897 .loc 1 5105 3 is_stmt 1 discriminator 2 view .LVU4915 13898 0014 0123 movs r3, #1 13899 0016 80F84030 strb r3, [r0, #64] 5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13900 .loc 1 5105 3 discriminator 2 view .LVU4916 5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13901 .loc 1 5107 3 view .LVU4917 5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13902 .loc 1 5107 6 is_stmt 0 view .LVU4918 13903 001a 11F0100F tst r1, #16 13904 001e 02D0 beq .L899 5107:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13905 .loc 1 5107 58 discriminator 1 view .LVU4919 13906 0020 12F0100F tst r2, #16 13907 0024 22D1 bne .L920 13908 .L899: 5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 13909 .loc 1 5121 8 is_stmt 1 view .LVU4920 ARM GAS /tmp/ccJ8PJrU.s page 459 5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 13910 .loc 1 5121 11 is_stmt 0 view .LVU4921 13911 0026 15F0040F tst r5, #4 13912 002a 29D0 beq .L901 5121:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 13913 .loc 1 5121 65 discriminator 1 view .LVU4922 13914 002c 16F0040F tst r6, #4 13915 0030 26D0 beq .L901 5125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13916 .loc 1 5125 5 is_stmt 1 view .LVU4923 5125:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13917 .loc 1 5125 16 is_stmt 0 view .LVU4924 13918 0032 25F00405 bic r5, r5, #4 13919 .LVL1058: 5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13920 .loc 1 5128 5 is_stmt 1 view .LVU4925 5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13921 .loc 1 5128 36 is_stmt 0 view .LVU4926 13922 0036 2368 ldr r3, [r4] 5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13923 .loc 1 5128 46 view .LVU4927 13924 0038 5A6A ldr r2, [r3, #36] 13925 .LVL1059: 5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13926 .loc 1 5128 10 view .LVU4928 13927 003a 636A ldr r3, [r4, #36] 5128:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13928 .loc 1 5128 21 view .LVU4929 13929 003c 1A70 strb r2, [r3] 5131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13930 .loc 1 5131 5 is_stmt 1 view .LVU4930 5131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13931 .loc 1 5131 9 is_stmt 0 view .LVU4931 13932 003e 636A ldr r3, [r4, #36] 5131:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13933 .loc 1 5131 19 view .LVU4932 13934 0040 0133 adds r3, r3, #1 13935 0042 6362 str r3, [r4, #36] 5133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 13936 .loc 1 5133 5 is_stmt 1 view .LVU4933 5133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 13937 .loc 1 5133 9 is_stmt 0 view .LVU4934 13938 0044 238D ldrh r3, [r4, #40] 5133:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 13939 .loc 1 5133 19 view .LVU4935 13940 0046 013B subs r3, r3, #1 13941 0048 2385 strh r3, [r4, #40] @ movhi 5134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13942 .loc 1 5134 5 is_stmt 1 view .LVU4936 5134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13943 .loc 1 5134 9 is_stmt 0 view .LVU4937 13944 004a 638D ldrh r3, [r4, #42] 13945 004c 9BB2 uxth r3, r3 5134:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13946 .loc 1 5134 20 view .LVU4938 13947 004e 013B subs r3, r3, #1 13948 0050 9BB2 uxth r3, r3 ARM GAS /tmp/ccJ8PJrU.s page 460 13949 0052 6385 strh r3, [r4, #42] @ movhi 13950 .LVL1060: 13951 .L900: 5234:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13952 .loc 1 5234 3 is_stmt 1 view .LVU4939 5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13953 .loc 1 5236 3 view .LVU4940 5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13954 .loc 1 5236 6 is_stmt 0 view .LVU4941 13955 0054 15F0200F tst r5, #32 13956 0058 03D0 beq .L913 5236:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13957 .loc 1 5236 61 discriminator 1 view .LVU4942 13958 005a 16F0200F tst r6, #32 13959 005e 40F0A480 bne .L921 13960 .L913: 5244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13961 .loc 1 5244 3 is_stmt 1 view .LVU4943 5244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13962 .loc 1 5244 3 view .LVU4944 13963 0062 0020 movs r0, #0 13964 0064 84F84000 strb r0, [r4, #64] 5244:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13965 .loc 1 5244 3 view .LVU4945 5246:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13966 .loc 1 5246 3 view .LVU4946 5247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13967 .loc 1 5247 1 is_stmt 0 view .LVU4947 13968 0068 02B0 add sp, sp, #8 13969 .cfi_remember_state 13970 .cfi_def_cfa_offset 16 13971 @ sp needed 13972 006a 70BD pop {r4, r5, r6, pc} 13973 .LVL1061: 13974 .L920: 13975 .cfi_restore_state 5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13976 .loc 1 5111 5 is_stmt 1 view .LVU4948 13977 006c 0368 ldr r3, [r0] 13978 006e 1022 movs r2, #16 13979 .LVL1062: 5111:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13980 .loc 1 5111 5 is_stmt 0 view .LVU4949 13981 0070 DA61 str r2, [r3, #28] 5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13982 .loc 1 5116 5 is_stmt 1 view .LVU4950 5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13983 .loc 1 5116 9 is_stmt 0 view .LVU4951 13984 0072 436C ldr r3, [r0, #68] 5116:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 13985 .loc 1 5116 21 view .LVU4952 13986 0074 43F00403 orr r3, r3, #4 13987 0078 4364 str r3, [r0, #68] 5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13988 .loc 1 5119 5 is_stmt 1 view .LVU4953 13989 007a FFF7FEFF bl I2C_Flush_TXDR 13990 .LVL1063: ARM GAS /tmp/ccJ8PJrU.s page 461 5119:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 13991 .loc 1 5119 5 is_stmt 0 view .LVU4954 13992 007e E9E7 b .L900 13993 .LVL1064: 13994 .L901: 5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 13995 .loc 1 5136 8 is_stmt 1 view .LVU4955 5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 13996 .loc 1 5136 11 is_stmt 0 view .LVU4956 13997 0080 15F0020F tst r5, #2 13998 0084 1DD0 beq .L902 5136:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 13999 .loc 1 5136 65 discriminator 1 view .LVU4957 14000 0086 16F0020F tst r6, #2 14001 008a 1AD0 beq .L902 5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14002 .loc 1 5139 5 is_stmt 1 view .LVU4958 5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14003 .loc 1 5139 13 is_stmt 0 view .LVU4959 14004 008c 236D ldr r3, [r4, #80] 5139:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14005 .loc 1 5139 8 view .LVU4960 14006 008e B3F1FF3F cmp r3, #-1 14007 0092 06D0 beq .L922 5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14008 .loc 1 5153 7 is_stmt 1 view .LVU4961 5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14009 .loc 1 5153 11 is_stmt 0 view .LVU4962 14010 0094 2368 ldr r3, [r4] 5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14011 .loc 1 5153 34 view .LVU4963 14012 0096 226D ldr r2, [r4, #80] 14013 .LVL1065: 5153:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14014 .loc 1 5153 28 view .LVU4964 14015 0098 9A62 str r2, [r3, #40] 5156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14016 .loc 1 5156 7 is_stmt 1 view .LVU4965 5156:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14017 .loc 1 5156 24 is_stmt 0 view .LVU4966 14018 009a 4FF0FF33 mov r3, #-1 14019 009e 2365 str r3, [r4, #80] 14020 00a0 D8E7 b .L900 14021 .LVL1066: 14022 .L922: 5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14023 .loc 1 5142 7 is_stmt 1 view .LVU4967 5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14024 .loc 1 5142 35 is_stmt 0 view .LVU4968 14025 00a2 626A ldr r2, [r4, #36] 14026 .LVL1067: 5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14027 .loc 1 5142 11 view .LVU4969 14028 00a4 2368 ldr r3, [r4] 5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14029 .loc 1 5142 30 view .LVU4970 14030 00a6 1278 ldrb r2, [r2] @ zero_extendqisi2 ARM GAS /tmp/ccJ8PJrU.s page 462 5142:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14031 .loc 1 5142 28 view .LVU4971 14032 00a8 9A62 str r2, [r3, #40] 5145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14033 .loc 1 5145 7 is_stmt 1 view .LVU4972 5145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14034 .loc 1 5145 11 is_stmt 0 view .LVU4973 14035 00aa 636A ldr r3, [r4, #36] 5145:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14036 .loc 1 5145 21 view .LVU4974 14037 00ac 0133 adds r3, r3, #1 14038 00ae 6362 str r3, [r4, #36] 5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 14039 .loc 1 5147 7 is_stmt 1 view .LVU4975 5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 14040 .loc 1 5147 11 is_stmt 0 view .LVU4976 14041 00b0 238D ldrh r3, [r4, #40] 5147:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** hi2c->XferCount--; 14042 .loc 1 5147 21 view .LVU4977 14043 00b2 013B subs r3, r3, #1 14044 00b4 2385 strh r3, [r4, #40] @ movhi 5148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14045 .loc 1 5148 7 is_stmt 1 view .LVU4978 5148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14046 .loc 1 5148 11 is_stmt 0 view .LVU4979 14047 00b6 638D ldrh r3, [r4, #42] 14048 00b8 9BB2 uxth r3, r3 5148:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14049 .loc 1 5148 22 view .LVU4980 14050 00ba 013B subs r3, r3, #1 14051 00bc 9BB2 uxth r3, r3 14052 00be 6385 strh r3, [r4, #42] @ movhi 14053 00c0 C8E7 b .L900 14054 .LVL1068: 14055 .L902: 5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14056 .loc 1 5159 8 is_stmt 1 view .LVU4981 5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14057 .loc 1 5159 11 is_stmt 0 view .LVU4982 14058 00c2 15F0800F tst r5, #128 14059 00c6 34D0 beq .L904 5159:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14060 .loc 1 5159 64 discriminator 1 view .LVU4983 14061 00c8 16F0400F tst r6, #64 14062 00cc 31D0 beq .L904 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14063 .loc 1 5162 5 is_stmt 1 view .LVU4984 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14064 .loc 1 5162 14 is_stmt 0 view .LVU4985 14065 00ce 638D ldrh r3, [r4, #42] 14066 00d0 9BB2 uxth r3, r3 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14067 .loc 1 5162 8 view .LVU4986 14068 00d2 4BB3 cbz r3, .L905 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14069 .loc 1 5162 41 discriminator 1 view .LVU4987 14070 00d4 238D ldrh r3, [r4, #40] ARM GAS /tmp/ccJ8PJrU.s page 463 5162:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14071 .loc 1 5162 33 discriminator 1 view .LVU4988 14072 00d6 3BBB cbnz r3, .L905 5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14073 .loc 1 5164 7 is_stmt 1 view .LVU4989 5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14074 .loc 1 5164 15 is_stmt 0 view .LVU4990 14075 00d8 638D ldrh r3, [r4, #42] 14076 00da 9BB2 uxth r3, r3 5164:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14077 .loc 1 5164 10 view .LVU4991 14078 00dc FF2B cmp r3, #255 14079 00de 15D9 bls .L906 5167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14080 .loc 1 5167 9 is_stmt 1 view .LVU4992 5167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14081 .loc 1 5167 13 is_stmt 0 view .LVU4993 14082 00e0 2368 ldr r3, [r4] 14083 00e2 9B69 ldr r3, [r3, #24] 5167:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14084 .loc 1 5167 12 view .LVU4994 14085 00e4 13F4803F tst r3, #65536 14086 00e8 0DD0 beq .L907 5169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14087 .loc 1 5169 11 is_stmt 1 view .LVU4995 5169:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14088 .loc 1 5169 26 is_stmt 0 view .LVU4996 14089 00ea 0123 movs r3, #1 14090 00ec 2385 strh r3, [r4, #40] @ movhi 14091 .L908: 5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14092 .loc 1 5175 9 is_stmt 1 view .LVU4997 5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14093 .loc 1 5175 48 is_stmt 0 view .LVU4998 14094 00ee E16C ldr r1, [r4, #76] 14095 .LVL1069: 5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14096 .loc 1 5175 9 view .LVU4999 14097 00f0 0023 movs r3, #0 14098 00f2 0093 str r3, [sp] 14099 00f4 4FF08073 mov r3, #16777216 14100 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 14101 .LVL1070: 5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14102 .loc 1 5175 9 view .LVU5000 14103 00fc 89B2 uxth r1, r1 14104 00fe 2046 mov r0, r4 14105 .LVL1071: 5175:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14106 .loc 1 5175 9 view .LVU5001 14107 0100 FFF7FEFF bl I2C_TransferConfig 14108 .LVL1072: 14109 0104 A6E7 b .L900 14110 .LVL1073: 14111 .L907: 5173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14112 .loc 1 5173 11 is_stmt 1 view .LVU5002 ARM GAS /tmp/ccJ8PJrU.s page 464 5173:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14113 .loc 1 5173 26 is_stmt 0 view .LVU5003 14114 0106 FF23 movs r3, #255 14115 0108 2385 strh r3, [r4, #40] @ movhi 14116 010a F0E7 b .L908 14117 .L906: 5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14118 .loc 1 5180 9 is_stmt 1 view .LVU5004 5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14119 .loc 1 5180 30 is_stmt 0 view .LVU5005 14120 010c 628D ldrh r2, [r4, #42] 14121 .LVL1074: 5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14122 .loc 1 5180 30 view .LVU5006 14123 010e 92B2 uxth r2, r2 5180:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14124 .loc 1 5180 24 view .LVU5007 14125 0110 2285 strh r2, [r4, #40] @ movhi 5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14126 .loc 1 5181 9 is_stmt 1 view .LVU5008 5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14127 .loc 1 5181 48 is_stmt 0 view .LVU5009 14128 0112 E16C ldr r1, [r4, #76] 14129 .LVL1075: 5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14130 .loc 1 5181 9 view .LVU5010 14131 0114 0023 movs r3, #0 14132 0116 0093 str r3, [sp] 14133 0118 4FF00073 mov r3, #33554432 14134 011c D2B2 uxtb r2, r2 14135 011e 89B2 uxth r1, r1 14136 0120 2046 mov r0, r4 14137 .LVL1076: 5181:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14138 .loc 1 5181 9 view .LVU5011 14139 0122 FFF7FEFF bl I2C_TransferConfig 14140 .LVL1077: 14141 0126 95E7 b .L900 14142 .LVL1078: 14143 .L905: 5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14144 .loc 1 5189 7 is_stmt 1 view .LVU5012 14145 0128 4021 movs r1, #64 14146 .LVL1079: 5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14147 .loc 1 5189 7 is_stmt 0 view .LVU5013 14148 012a 2046 mov r0, r4 14149 .LVL1080: 5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14150 .loc 1 5189 7 view .LVU5014 14151 012c FFF7FEFF bl I2C_ITError 14152 .LVL1081: 5189:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14153 .loc 1 5189 7 view .LVU5015 14154 0130 90E7 b .L900 14155 .LVL1082: 14156 .L904: ARM GAS /tmp/ccJ8PJrU.s page 465 5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14157 .loc 1 5192 8 is_stmt 1 view .LVU5016 5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14158 .loc 1 5192 11 is_stmt 0 view .LVU5017 14159 0132 15F0400F tst r5, #64 14160 0136 8DD0 beq .L900 5192:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14161 .loc 1 5192 63 discriminator 1 view .LVU5018 14162 0138 16F0400F tst r6, #64 14163 013c 8AD0 beq .L900 5196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14164 .loc 1 5196 5 is_stmt 1 view .LVU5019 14165 013e 0121 movs r1, #1 14166 .LVL1083: 5196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14167 .loc 1 5196 5 is_stmt 0 view .LVU5020 14168 0140 2046 mov r0, r4 14169 .LVL1084: 5196:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14170 .loc 1 5196 5 view .LVU5021 14171 0142 FFF7FEFF bl I2C_Disable_IRQ 14172 .LVL1085: 5199:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14173 .loc 1 5199 5 is_stmt 1 view .LVU5022 14174 0146 0221 movs r1, #2 14175 0148 2046 mov r0, r4 14176 014a FFF7FEFF bl I2C_Enable_IRQ 14177 .LVL1086: 5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14178 .loc 1 5201 5 view .LVU5023 5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14179 .loc 1 5201 13 is_stmt 0 view .LVU5024 14180 014e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 14181 0152 DBB2 uxtb r3, r3 5201:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14182 .loc 1 5201 8 view .LVU5025 14183 0154 222B cmp r3, #34 14184 0156 16D0 beq .L915 5101:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 14185 .loc 1 5101 12 view .LVU5026 14186 0158 1748 ldr r0, .L923 14187 .L909: 14188 .LVL1087: 5206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14189 .loc 1 5206 5 is_stmt 1 view .LVU5027 5206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14190 .loc 1 5206 13 is_stmt 0 view .LVU5028 14191 015a 638D ldrh r3, [r4, #42] 14192 015c 9BB2 uxth r3, r3 5206:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14193 .loc 1 5206 8 view .LVU5029 14194 015e FF2B cmp r3, #255 14195 0160 16D9 bls .L910 5209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14196 .loc 1 5209 7 is_stmt 1 view .LVU5030 5209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14197 .loc 1 5209 11 is_stmt 0 view .LVU5031 ARM GAS /tmp/ccJ8PJrU.s page 466 14198 0162 2368 ldr r3, [r4] 14199 0164 9B69 ldr r3, [r3, #24] 5209:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14200 .loc 1 5209 10 view .LVU5032 14201 0166 13F4803F tst r3, #65536 14202 016a 0ED0 beq .L911 5211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14203 .loc 1 5211 9 is_stmt 1 view .LVU5033 5211:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14204 .loc 1 5211 24 is_stmt 0 view .LVU5034 14205 016c 0123 movs r3, #1 14206 016e 2385 strh r3, [r4, #40] @ movhi 14207 .L912: 5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14208 .loc 1 5219 7 is_stmt 1 view .LVU5035 5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14209 .loc 1 5219 46 is_stmt 0 view .LVU5036 14210 0170 E16C ldr r1, [r4, #76] 5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14211 .loc 1 5219 7 view .LVU5037 14212 0172 0090 str r0, [sp] 14213 0174 4FF08073 mov r3, #16777216 14214 0178 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 14215 017c 89B2 uxth r1, r1 14216 017e 2046 mov r0, r4 14217 .LVL1088: 5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14218 .loc 1 5219 7 view .LVU5038 14219 0180 FFF7FEFF bl I2C_TransferConfig 14220 .LVL1089: 5219:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14221 .loc 1 5219 7 view .LVU5039 14222 0184 66E7 b .L900 14223 .LVL1090: 14224 .L915: 5203:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14225 .loc 1 5203 17 view .LVU5040 14226 0186 0D48 ldr r0, .L923+4 14227 0188 E7E7 b .L909 14228 .LVL1091: 14229 .L911: 5215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14230 .loc 1 5215 9 is_stmt 1 view .LVU5041 5215:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14231 .loc 1 5215 24 is_stmt 0 view .LVU5042 14232 018a FF23 movs r3, #255 14233 018c 2385 strh r3, [r4, #40] @ movhi 14234 018e EFE7 b .L912 14235 .L910: 5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14236 .loc 1 5224 7 is_stmt 1 view .LVU5043 5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14237 .loc 1 5224 28 is_stmt 0 view .LVU5044 14238 0190 628D ldrh r2, [r4, #42] 14239 0192 92B2 uxth r2, r2 5224:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14240 .loc 1 5224 22 view .LVU5045 ARM GAS /tmp/ccJ8PJrU.s page 467 14241 0194 2285 strh r2, [r4, #40] @ movhi 5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14242 .loc 1 5227 7 is_stmt 1 view .LVU5046 5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14243 .loc 1 5227 46 is_stmt 0 view .LVU5047 14244 0196 E16C ldr r1, [r4, #76] 5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14245 .loc 1 5227 7 view .LVU5048 14246 0198 0090 str r0, [sp] 14247 019a 4FF00073 mov r3, #33554432 14248 019e D2B2 uxtb r2, r2 14249 01a0 89B2 uxth r1, r1 14250 01a2 2046 mov r0, r4 14251 .LVL1092: 5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14252 .loc 1 5227 7 view .LVU5049 14253 01a4 FFF7FEFF bl I2C_TransferConfig 14254 .LVL1093: 5227:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14255 .loc 1 5227 7 view .LVU5050 14256 01a8 54E7 b .L900 14257 .LVL1094: 14258 .L921: 5240:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14259 .loc 1 5240 5 is_stmt 1 view .LVU5051 14260 01aa 2946 mov r1, r5 14261 01ac 2046 mov r0, r4 14262 01ae FFF7FEFF bl I2C_ITMasterCplt 14263 .LVL1095: 14264 01b2 56E7 b .L913 14265 .LVL1096: 14266 .L914: 14267 .cfi_def_cfa_offset 0 14268 .cfi_restore 4 14269 .cfi_restore 5 14270 .cfi_restore 6 14271 .cfi_restore 14 5105:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14272 .loc 1 5105 3 is_stmt 0 discriminator 1 view .LVU5052 14273 01b4 0220 movs r0, #2 14274 .LVL1097: 5247:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14275 .loc 1 5247 1 view .LVU5053 14276 01b6 7047 bx lr 14277 .L924: 14278 .align 2 14279 .L923: 14280 01b8 00200080 .word -2147475456 14281 01bc 00240080 .word -2147474432 14282 .cfi_endproc 14283 .LFE173: 14285 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits 14286 .align 1 14287 .global HAL_I2C_ER_IRQHandler 14288 .syntax unified 14289 .thumb 14290 .thumb_func ARM GAS /tmp/ccJ8PJrU.s page 468 14292 HAL_I2C_ER_IRQHandler: 14293 .LVL1098: 14294 .LFB158: 4658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 14295 .loc 1 4658 1 is_stmt 1 view -0 14296 .cfi_startproc 14297 @ args = 0, pretend = 0, frame = 0 14298 @ frame_needed = 0, uses_anonymous_args = 0 4658:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 14299 .loc 1 4658 1 is_stmt 0 view .LVU5055 14300 0000 10B5 push {r4, lr} 14301 .cfi_def_cfa_offset 8 14302 .cfi_offset 4, -8 14303 .cfi_offset 14, -4 4659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14304 .loc 1 4659 3 is_stmt 1 view .LVU5056 4659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14305 .loc 1 4659 24 is_stmt 0 view .LVU5057 14306 0002 0268 ldr r2, [r0] 4659:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14307 .loc 1 4659 12 view .LVU5058 14308 0004 9369 ldr r3, [r2, #24] 14309 .LVL1099: 4660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror; 14310 .loc 1 4660 3 is_stmt 1 view .LVU5059 4660:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** uint32_t tmperror; 14311 .loc 1 4660 12 is_stmt 0 view .LVU5060 14312 0006 1168 ldr r1, [r2] 14313 .LVL1100: 4661:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14314 .loc 1 4661 3 is_stmt 1 view .LVU5061 4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14315 .loc 1 4664 3 view .LVU5062 4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14316 .loc 1 4664 6 is_stmt 0 view .LVU5063 14317 0008 13F4807F tst r3, #256 14318 000c 09D0 beq .L926 4664:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14319 .loc 1 4664 57 discriminator 1 view .LVU5064 14320 000e 11F0800F tst r1, #128 14321 0012 06D0 beq .L926 4667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14322 .loc 1 4667 5 is_stmt 1 view .LVU5065 4667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14323 .loc 1 4667 9 is_stmt 0 view .LVU5066 14324 0014 446C ldr r4, [r0, #68] 4667:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14325 .loc 1 4667 21 view .LVU5067 14326 0016 44F00104 orr r4, r4, #1 14327 001a 4464 str r4, [r0, #68] 4670:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14328 .loc 1 4670 5 is_stmt 1 view .LVU5068 14329 001c 4FF48074 mov r4, #256 14330 0020 D461 str r4, [r2, #28] 14331 .L926: 4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14332 .loc 1 4674 3 view .LVU5069 ARM GAS /tmp/ccJ8PJrU.s page 469 4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14333 .loc 1 4674 6 is_stmt 0 view .LVU5070 14334 0022 13F4806F tst r3, #1024 14335 0026 0AD0 beq .L927 4674:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14336 .loc 1 4674 56 discriminator 1 view .LVU5071 14337 0028 11F0800F tst r1, #128 14338 002c 07D0 beq .L927 4677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14339 .loc 1 4677 5 is_stmt 1 view .LVU5072 4677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14340 .loc 1 4677 9 is_stmt 0 view .LVU5073 14341 002e 426C ldr r2, [r0, #68] 4677:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14342 .loc 1 4677 21 view .LVU5074 14343 0030 42F00802 orr r2, r2, #8 14344 0034 4264 str r2, [r0, #68] 4680:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14345 .loc 1 4680 5 is_stmt 1 view .LVU5075 14346 0036 0268 ldr r2, [r0] 14347 0038 4FF48064 mov r4, #1024 14348 003c D461 str r4, [r2, #28] 14349 .L927: 4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14350 .loc 1 4684 3 view .LVU5076 4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14351 .loc 1 4684 6 is_stmt 0 view .LVU5077 14352 003e 13F4007F tst r3, #512 14353 0042 0AD0 beq .L928 4684:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14354 .loc 1 4684 57 discriminator 1 view .LVU5078 14355 0044 11F0800F tst r1, #128 14356 0048 07D0 beq .L928 4687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14357 .loc 1 4687 5 is_stmt 1 view .LVU5079 4687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14358 .loc 1 4687 9 is_stmt 0 view .LVU5080 14359 004a 436C ldr r3, [r0, #68] 14360 .LVL1101: 4687:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14361 .loc 1 4687 21 view .LVU5081 14362 004c 43F00203 orr r3, r3, #2 14363 0050 4364 str r3, [r0, #68] 4690:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14364 .loc 1 4690 5 is_stmt 1 view .LVU5082 14365 0052 0368 ldr r3, [r0] 14366 0054 4FF40072 mov r2, #512 14367 0058 DA61 str r2, [r3, #28] 14368 .L928: 4694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14369 .loc 1 4694 3 view .LVU5083 4694:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14370 .loc 1 4694 12 is_stmt 0 view .LVU5084 14371 005a 416C ldr r1, [r0, #68] 14372 .LVL1102: 4697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14373 .loc 1 4697 3 is_stmt 1 view .LVU5085 ARM GAS /tmp/ccJ8PJrU.s page 470 4697:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14374 .loc 1 4697 6 is_stmt 0 view .LVU5086 14375 005c 11F00B0F tst r1, #11 14376 0060 00D1 bne .L931 14377 .LVL1103: 14378 .L925: 4701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14379 .loc 1 4701 1 view .LVU5087 14380 0062 10BD pop {r4, pc} 14381 .LVL1104: 14382 .L931: 4699:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14383 .loc 1 4699 5 is_stmt 1 view .LVU5088 14384 0064 FFF7FEFF bl I2C_ITError 14385 .LVL1105: 4701:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14386 .loc 1 4701 1 is_stmt 0 view .LVU5089 14387 0068 FBE7 b .L925 14388 .cfi_endproc 14389 .LFE158: 14391 .section .text.I2C_DMAAbort,"ax",%progbits 14392 .align 1 14393 .syntax unified 14394 .thumb 14395 .thumb_func 14397 I2C_DMAAbort: 14398 .LVL1106: 14399 .LFB194: 6967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14400 .loc 1 6967 1 is_stmt 1 view -0 14401 .cfi_startproc 14402 @ args = 0, pretend = 0, frame = 0 14403 @ frame_needed = 0, uses_anonymous_args = 0 6967:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14404 .loc 1 6967 1 is_stmt 0 view .LVU5091 14405 0000 08B5 push {r3, lr} 14406 .cfi_def_cfa_offset 8 14407 .cfi_offset 3, -8 14408 .cfi_offset 14, -4 6969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14409 .loc 1 6969 3 is_stmt 1 view .LVU5092 6969:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14410 .loc 1 6969 22 is_stmt 0 view .LVU5093 14411 0002 406A ldr r0, [r0, #36] 14412 .LVL1107: 6972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14413 .loc 1 6972 3 is_stmt 1 view .LVU5094 6972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14414 .loc 1 6972 11 is_stmt 0 view .LVU5095 14415 0004 836B ldr r3, [r0, #56] 6972:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14416 .loc 1 6972 6 view .LVU5096 14417 0006 0BB1 cbz r3, .L933 6974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14418 .loc 1 6974 5 is_stmt 1 view .LVU5097 6974:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14419 .loc 1 6974 37 is_stmt 0 view .LVU5098 ARM GAS /tmp/ccJ8PJrU.s page 471 14420 0008 0022 movs r2, #0 14421 000a 5A63 str r2, [r3, #52] 14422 .L933: 6976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14423 .loc 1 6976 3 is_stmt 1 view .LVU5099 6976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14424 .loc 1 6976 11 is_stmt 0 view .LVU5100 14425 000c C36B ldr r3, [r0, #60] 6976:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** { 14426 .loc 1 6976 6 view .LVU5101 14427 000e 0BB1 cbz r3, .L934 6978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14428 .loc 1 6978 5 is_stmt 1 view .LVU5102 6978:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14429 .loc 1 6978 37 is_stmt 0 view .LVU5103 14430 0010 0022 movs r2, #0 14431 0012 5A63 str r2, [r3, #52] 14432 .L934: 6981:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14433 .loc 1 6981 3 is_stmt 1 view .LVU5104 14434 0014 FFF7FEFF bl I2C_TreatErrorCallback 14435 .LVL1108: 6982:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14436 .loc 1 6982 1 is_stmt 0 view .LVU5105 14437 0018 08BD pop {r3, pc} 14438 .cfi_endproc 14439 .LFE194: 14441 .section .text.HAL_I2C_GetState,"ax",%progbits 14442 .align 1 14443 .global HAL_I2C_GetState 14444 .syntax unified 14445 .thumb 14446 .thumb_func 14448 HAL_I2C_GetState: 14449 .LVL1109: 14450 .LFB169: 4892:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** /* Return I2C handle state */ 14451 .loc 1 4892 1 is_stmt 1 view -0 14452 .cfi_startproc 14453 @ args = 0, pretend = 0, frame = 0 14454 @ frame_needed = 0, uses_anonymous_args = 0 14455 @ link register save eliminated. 4894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14456 .loc 1 4894 3 view .LVU5107 4894:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14457 .loc 1 4894 14 is_stmt 0 view .LVU5108 14458 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 14459 .LVL1110: 4895:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14460 .loc 1 4895 1 view .LVU5109 14461 0004 7047 bx lr 14462 .cfi_endproc 14463 .LFE169: 14465 .section .text.HAL_I2C_GetMode,"ax",%progbits 14466 .align 1 14467 .global HAL_I2C_GetMode 14468 .syntax unified ARM GAS /tmp/ccJ8PJrU.s page 472 14469 .thumb 14470 .thumb_func 14472 HAL_I2C_GetMode: 14473 .LVL1111: 14474 .LFB170: 4904:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->Mode; 14475 .loc 1 4904 1 is_stmt 1 view -0 14476 .cfi_startproc 14477 @ args = 0, pretend = 0, frame = 0 14478 @ frame_needed = 0, uses_anonymous_args = 0 14479 @ link register save eliminated. 4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14480 .loc 1 4905 3 view .LVU5111 4905:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14481 .loc 1 4905 14 is_stmt 0 view .LVU5112 14482 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 14483 .LVL1112: 4906:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14484 .loc 1 4906 1 view .LVU5113 14485 0004 7047 bx lr 14486 .cfi_endproc 14487 .LFE170: 14489 .section .text.HAL_I2C_GetError,"ax",%progbits 14490 .align 1 14491 .global HAL_I2C_GetError 14492 .syntax unified 14493 .thumb 14494 .thumb_func 14496 HAL_I2C_GetError: 14497 .LVL1113: 14498 .LFB171: 4915:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** return hi2c->ErrorCode; 14499 .loc 1 4915 1 is_stmt 1 view -0 14500 .cfi_startproc 14501 @ args = 0, pretend = 0, frame = 0 14502 @ frame_needed = 0, uses_anonymous_args = 0 14503 @ link register save eliminated. 4916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14504 .loc 1 4916 3 view .LVU5115 4916:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** } 14505 .loc 1 4916 14 is_stmt 0 view .LVU5116 14506 0000 406C ldr r0, [r0, #68] 14507 .LVL1114: 4917:Drivers/STM32F3xx_HAL_Driver/Src/stm32f3xx_hal_i2c.c **** 14508 .loc 1 4917 1 view .LVU5117 14509 0002 7047 bx lr 14510 .cfi_endproc 14511 .LFE171: 14513 .text 14514 .Letext0: 14515 .file 2 "/home/chiangni/.config/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/ 14516 .file 3 "/home/chiangni/.config/VSCodium/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-tools/ 14517 .file 4 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f302x8.h" 14518 .file 5 "Drivers/CMSIS/Device/ST/STM32F3xx/Include/stm32f3xx.h" 14519 .file 6 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_def.h" 14520 .file 7 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_dma.h" 14521 .file 8 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal_i2c.h" ARM GAS /tmp/ccJ8PJrU.s page 473 14522 .file 9 "Drivers/STM32F3xx_HAL_Driver/Inc/stm32f3xx_hal.h" ARM GAS /tmp/ccJ8PJrU.s page 474 DEFINED SYMBOLS *ABS*:00000000 stm32f3xx_hal_i2c.c /tmp/ccJ8PJrU.s:21 .text.I2C_Flush_TXDR:00000000 $t /tmp/ccJ8PJrU.s:26 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR /tmp/ccJ8PJrU.s:64 .text.I2C_TransferConfig:00000000 $t /tmp/ccJ8PJrU.s:69 .text.I2C_TransferConfig:00000000 I2C_TransferConfig /tmp/ccJ8PJrU.s:125 .text.I2C_Enable_IRQ:00000000 $t /tmp/ccJ8PJrU.s:130 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ /tmp/ccJ8PJrU.s:292 .text.I2C_Enable_IRQ:00000090 $d /tmp/ccJ8PJrU.s:13283 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA /tmp/ccJ8PJrU.s:12984 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA /tmp/ccJ8PJrU.s:12580 .text.I2C_Mem_ISR_DMA:00000000 I2C_Mem_ISR_DMA /tmp/ccJ8PJrU.s:299 .text.I2C_Disable_IRQ:00000000 $t /tmp/ccJ8PJrU.s:304 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ /tmp/ccJ8PJrU.s:428 .text.I2C_ConvertOtherXferOptions:00000000 $t /tmp/ccJ8PJrU.s:433 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions /tmp/ccJ8PJrU.s:474 .text.I2C_IsErrorOccurred:00000000 $t /tmp/ccJ8PJrU.s:479 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred /tmp/ccJ8PJrU.s:755 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t /tmp/ccJ8PJrU.s:760 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout /tmp/ccJ8PJrU.s:857 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t /tmp/ccJ8PJrU.s:862 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout /tmp/ccJ8PJrU.s:973 .text.I2C_RequestMemoryWrite:00000000 $t /tmp/ccJ8PJrU.s:978 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite /tmp/ccJ8PJrU.s:1093 .text.I2C_RequestMemoryWrite:00000078 $d /tmp/ccJ8PJrU.s:1098 .text.I2C_RequestMemoryRead:00000000 $t /tmp/ccJ8PJrU.s:1103 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead /tmp/ccJ8PJrU.s:1218 .text.I2C_RequestMemoryRead:00000074 $d /tmp/ccJ8PJrU.s:1223 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t /tmp/ccJ8PJrU.s:1228 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout /tmp/ccJ8PJrU.s:1325 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t /tmp/ccJ8PJrU.s:1330 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout /tmp/ccJ8PJrU.s:1494 .text.HAL_I2C_MspInit:00000000 $t /tmp/ccJ8PJrU.s:1500 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit /tmp/ccJ8PJrU.s:1515 .text.HAL_I2C_Init:00000000 $t /tmp/ccJ8PJrU.s:1521 .text.HAL_I2C_Init:00000000 HAL_I2C_Init /tmp/ccJ8PJrU.s:1715 .text.HAL_I2C_MspDeInit:00000000 $t /tmp/ccJ8PJrU.s:1721 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit /tmp/ccJ8PJrU.s:1736 .text.HAL_I2C_DeInit:00000000 $t /tmp/ccJ8PJrU.s:1742 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit /tmp/ccJ8PJrU.s:1805 .text.HAL_I2C_Master_Transmit:00000000 $t /tmp/ccJ8PJrU.s:1811 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit /tmp/ccJ8PJrU.s:2167 .text.HAL_I2C_Master_Transmit:000001a0 $d /tmp/ccJ8PJrU.s:2172 .text.HAL_I2C_Master_Receive:00000000 $t /tmp/ccJ8PJrU.s:2178 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive /tmp/ccJ8PJrU.s:2483 .text.HAL_I2C_Master_Receive:00000178 $d /tmp/ccJ8PJrU.s:2488 .text.HAL_I2C_Slave_Transmit:00000000 $t /tmp/ccJ8PJrU.s:2494 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit /tmp/ccJ8PJrU.s:2943 .text.HAL_I2C_Slave_Receive:00000000 $t /tmp/ccJ8PJrU.s:2949 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive /tmp/ccJ8PJrU.s:3293 .text.HAL_I2C_Master_Transmit_IT:00000000 $t /tmp/ccJ8PJrU.s:3299 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT /tmp/ccJ8PJrU.s:3494 .text.HAL_I2C_Master_Transmit_IT:000000bc $d /tmp/ccJ8PJrU.s:12181 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT /tmp/ccJ8PJrU.s:3501 .text.HAL_I2C_Master_Receive_IT:00000000 $t /tmp/ccJ8PJrU.s:3507 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT /tmp/ccJ8PJrU.s:3656 .text.HAL_I2C_Master_Receive_IT:0000008c $d ARM GAS /tmp/ccJ8PJrU.s page 475 /tmp/ccJ8PJrU.s:3663 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t /tmp/ccJ8PJrU.s:3669 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT /tmp/ccJ8PJrU.s:3811 .text.HAL_I2C_Slave_Transmit_IT:00000084 $d /tmp/ccJ8PJrU.s:11589 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT /tmp/ccJ8PJrU.s:3817 .text.HAL_I2C_Slave_Receive_IT:00000000 $t /tmp/ccJ8PJrU.s:3823 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT /tmp/ccJ8PJrU.s:3925 .text.HAL_I2C_Slave_Receive_IT:0000005c $d /tmp/ccJ8PJrU.s:3931 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t /tmp/ccJ8PJrU.s:3937 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA /tmp/ccJ8PJrU.s:4281 .text.HAL_I2C_Master_Transmit_DMA:0000015c $d /tmp/ccJ8PJrU.s:13645 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt /tmp/ccJ8PJrU.s:13606 .text.I2C_DMAError:00000000 I2C_DMAError /tmp/ccJ8PJrU.s:4291 .text.HAL_I2C_Master_Receive_DMA:00000000 $t /tmp/ccJ8PJrU.s:4297 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA /tmp/ccJ8PJrU.s:4595 .text.HAL_I2C_Master_Receive_DMA:00000138 $d /tmp/ccJ8PJrU.s:13752 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt /tmp/ccJ8PJrU.s:4605 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t /tmp/ccJ8PJrU.s:4611 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA /tmp/ccJ8PJrU.s:4914 .text.HAL_I2C_Slave_Transmit_DMA:00000130 $d /tmp/ccJ8PJrU.s:10289 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt /tmp/ccJ8PJrU.s:4922 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t /tmp/ccJ8PJrU.s:4928 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA /tmp/ccJ8PJrU.s:5150 .text.HAL_I2C_Slave_Receive_DMA:000000e4 $d /tmp/ccJ8PJrU.s:10340 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt /tmp/ccJ8PJrU.s:5158 .text.HAL_I2C_Mem_Write:00000000 $t /tmp/ccJ8PJrU.s:5164 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write /tmp/ccJ8PJrU.s:5518 .text.HAL_I2C_Mem_Read:00000000 $t /tmp/ccJ8PJrU.s:5524 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read /tmp/ccJ8PJrU.s:5878 .text.HAL_I2C_Mem_Read:000001ac $d /tmp/ccJ8PJrU.s:5883 .text.HAL_I2C_Mem_Write_IT:00000000 $t /tmp/ccJ8PJrU.s:5889 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT /tmp/ccJ8PJrU.s:6063 .text.HAL_I2C_Mem_Write_IT:000000ac $d /tmp/ccJ8PJrU.s:13871 .text.I2C_Mem_ISR_IT:00000000 I2C_Mem_ISR_IT /tmp/ccJ8PJrU.s:6070 .text.HAL_I2C_Mem_Read_IT:00000000 $t /tmp/ccJ8PJrU.s:6076 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT /tmp/ccJ8PJrU.s:6247 .text.HAL_I2C_Mem_Read_IT:000000a8 $d /tmp/ccJ8PJrU.s:6254 .text.HAL_I2C_Mem_Write_DMA:00000000 $t /tmp/ccJ8PJrU.s:6260 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA /tmp/ccJ8PJrU.s:6542 .text.HAL_I2C_Mem_Write_DMA:00000120 $d /tmp/ccJ8PJrU.s:6551 .text.HAL_I2C_Mem_Read_DMA:00000000 $t /tmp/ccJ8PJrU.s:6557 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA /tmp/ccJ8PJrU.s:6841 .text.HAL_I2C_Mem_Read_DMA:00000120 $d /tmp/ccJ8PJrU.s:6850 .text.HAL_I2C_IsDeviceReady:00000000 $t /tmp/ccJ8PJrU.s:6856 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady /tmp/ccJ8PJrU.s:7149 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t /tmp/ccJ8PJrU.s:7155 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT /tmp/ccJ8PJrU.s:7419 .text.HAL_I2C_Master_Seq_Transmit_IT:00000100 $d /tmp/ccJ8PJrU.s:7425 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t /tmp/ccJ8PJrU.s:7431 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA /tmp/ccJ8PJrU.s:7851 .text.HAL_I2C_Master_Seq_Transmit_DMA:000001cc $d /tmp/ccJ8PJrU.s:7860 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t /tmp/ccJ8PJrU.s:7866 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT /tmp/ccJ8PJrU.s:8055 .text.HAL_I2C_Master_Seq_Receive_IT:000000ac $d /tmp/ccJ8PJrU.s:8061 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t /tmp/ccJ8PJrU.s:8067 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA /tmp/ccJ8PJrU.s:8396 .text.HAL_I2C_Master_Seq_Receive_DMA:00000160 $d /tmp/ccJ8PJrU.s:8405 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t ARM GAS /tmp/ccJ8PJrU.s page 476 /tmp/ccJ8PJrU.s:8411 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT /tmp/ccJ8PJrU.s:8621 .text.HAL_I2C_Slave_Seq_Transmit_IT:000000d8 $d /tmp/ccJ8PJrU.s:14397 .text.I2C_DMAAbort:00000000 I2C_DMAAbort /tmp/ccJ8PJrU.s:8627 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t /tmp/ccJ8PJrU.s:8633 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA /tmp/ccJ8PJrU.s:9023 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000019c $d /tmp/ccJ8PJrU.s:9031 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t /tmp/ccJ8PJrU.s:9037 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT /tmp/ccJ8PJrU.s:9247 .text.HAL_I2C_Slave_Seq_Receive_IT:000000d8 $d /tmp/ccJ8PJrU.s:9253 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t /tmp/ccJ8PJrU.s:9259 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA /tmp/ccJ8PJrU.s:9646 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000198 $d /tmp/ccJ8PJrU.s:9654 .text.HAL_I2C_EnableListen_IT:00000000 $t /tmp/ccJ8PJrU.s:9660 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT /tmp/ccJ8PJrU.s:9706 .text.HAL_I2C_EnableListen_IT:00000028 $d /tmp/ccJ8PJrU.s:9711 .text.HAL_I2C_DisableListen_IT:00000000 $t /tmp/ccJ8PJrU.s:9717 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT /tmp/ccJ8PJrU.s:9782 .text.HAL_I2C_Master_Abort_IT:00000000 $t /tmp/ccJ8PJrU.s:9788 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT /tmp/ccJ8PJrU.s:9931 .text.HAL_I2C_Master_Abort_IT:00000088 $d /tmp/ccJ8PJrU.s:9936 .text.HAL_I2C_EV_IRQHandler:00000000 $t /tmp/ccJ8PJrU.s:9942 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler /tmp/ccJ8PJrU.s:9979 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t /tmp/ccJ8PJrU.s:9985 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback /tmp/ccJ8PJrU.s:10000 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t /tmp/ccJ8PJrU.s:10006 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback /tmp/ccJ8PJrU.s:10021 .text.I2C_ITMasterSeqCplt:00000000 $t /tmp/ccJ8PJrU.s:10026 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt /tmp/ccJ8PJrU.s:10110 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t /tmp/ccJ8PJrU.s:10116 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback /tmp/ccJ8PJrU.s:10131 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t /tmp/ccJ8PJrU.s:10137 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback /tmp/ccJ8PJrU.s:10152 .text.I2C_ITSlaveSeqCplt:00000000 $t /tmp/ccJ8PJrU.s:10157 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt /tmp/ccJ8PJrU.s:10284 .text.I2C_DMASlaveTransmitCplt:00000000 $t /tmp/ccJ8PJrU.s:10335 .text.I2C_DMASlaveReceiveCplt:00000000 $t /tmp/ccJ8PJrU.s:10395 .text.HAL_I2C_AddrCallback:00000000 $t /tmp/ccJ8PJrU.s:10401 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback /tmp/ccJ8PJrU.s:10418 .text.I2C_ITAddrCplt:00000000 $t /tmp/ccJ8PJrU.s:10423 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt /tmp/ccJ8PJrU.s:10582 .text.HAL_I2C_ListenCpltCallback:00000000 $t /tmp/ccJ8PJrU.s:10588 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback /tmp/ccJ8PJrU.s:10603 .text.I2C_ITListenCplt:00000000 $t /tmp/ccJ8PJrU.s:10608 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt /tmp/ccJ8PJrU.s:10711 .text.I2C_ITListenCplt:00000064 $d /tmp/ccJ8PJrU.s:10716 .text.HAL_I2C_MemTxCpltCallback:00000000 $t /tmp/ccJ8PJrU.s:10722 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback /tmp/ccJ8PJrU.s:10737 .text.HAL_I2C_MemRxCpltCallback:00000000 $t /tmp/ccJ8PJrU.s:10743 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback /tmp/ccJ8PJrU.s:10758 .text.HAL_I2C_ErrorCallback:00000000 $t /tmp/ccJ8PJrU.s:10764 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback /tmp/ccJ8PJrU.s:10779 .text.HAL_I2C_AbortCpltCallback:00000000 $t /tmp/ccJ8PJrU.s:10785 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback /tmp/ccJ8PJrU.s:10800 .text.I2C_TreatErrorCallback:00000000 $t /tmp/ccJ8PJrU.s:10805 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback /tmp/ccJ8PJrU.s:10861 .text.I2C_ITError:00000000 $t /tmp/ccJ8PJrU.s:10866 .text.I2C_ITError:00000000 I2C_ITError ARM GAS /tmp/ccJ8PJrU.s page 477 /tmp/ccJ8PJrU.s:11144 .text.I2C_ITError:00000124 $d /tmp/ccJ8PJrU.s:11151 .text.I2C_ITSlaveCplt:00000000 $t /tmp/ccJ8PJrU.s:11156 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt /tmp/ccJ8PJrU.s:11202 .text.I2C_ITSlaveCplt:0000001e $d /tmp/ccJ8PJrU.s:11212 .text.I2C_ITSlaveCplt:00000028 $t /tmp/ccJ8PJrU.s:11579 .text.I2C_ITSlaveCplt:000001ec $d /tmp/ccJ8PJrU.s:11584 .text.I2C_Slave_ISR_IT:00000000 $t /tmp/ccJ8PJrU.s:11903 .text.I2C_ITMasterCplt:00000000 $t /tmp/ccJ8PJrU.s:11908 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt /tmp/ccJ8PJrU.s:12176 .text.I2C_Master_ISR_IT:00000000 $t /tmp/ccJ8PJrU.s:12575 .text.I2C_Mem_ISR_DMA:00000000 $t /tmp/ccJ8PJrU.s:12973 .text.I2C_Mem_ISR_DMA:000001c8 $d /tmp/ccJ8PJrU.s:12979 .text.I2C_Slave_ISR_DMA:00000000 $t /tmp/ccJ8PJrU.s:13122 .text.I2C_Slave_ISR_DMA:00000094 $d /tmp/ccJ8PJrU.s:13133 .text.I2C_Slave_ISR_DMA:0000009e $t /tmp/ccJ8PJrU.s:13278 .text.I2C_Master_ISR_DMA:00000000 $t /tmp/ccJ8PJrU.s:13601 .text.I2C_DMAError:00000000 $t /tmp/ccJ8PJrU.s:13640 .text.I2C_DMAMasterTransmitCplt:00000000 $t /tmp/ccJ8PJrU.s:13747 .text.I2C_DMAMasterReceiveCplt:00000000 $t /tmp/ccJ8PJrU.s:13866 .text.I2C_Mem_ISR_IT:00000000 $t /tmp/ccJ8PJrU.s:14280 .text.I2C_Mem_ISR_IT:000001b8 $d /tmp/ccJ8PJrU.s:14286 .text.HAL_I2C_ER_IRQHandler:00000000 $t /tmp/ccJ8PJrU.s:14292 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler /tmp/ccJ8PJrU.s:14392 .text.I2C_DMAAbort:00000000 $t /tmp/ccJ8PJrU.s:14442 .text.HAL_I2C_GetState:00000000 $t /tmp/ccJ8PJrU.s:14448 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState /tmp/ccJ8PJrU.s:14466 .text.HAL_I2C_GetMode:00000000 $t /tmp/ccJ8PJrU.s:14472 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode /tmp/ccJ8PJrU.s:14490 .text.HAL_I2C_GetError:00000000 $t /tmp/ccJ8PJrU.s:14496 .text.HAL_I2C_GetError:00000000 HAL_I2C_GetError UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort_IT HAL_DMA_GetState