ARM GAS /tmp/ccSHpINd.s page 1 1 .cpu cortex-m7 2 .arch armv7e-m 3 .fpu fpv5-d16 4 .eabi_attribute 28, 1 5 .eabi_attribute 20, 1 6 .eabi_attribute 21, 1 7 .eabi_attribute 23, 3 8 .eabi_attribute 24, 1 9 .eabi_attribute 25, 1 10 .eabi_attribute 26, 1 11 .eabi_attribute 30, 1 12 .eabi_attribute 34, 1 13 .eabi_attribute 18, 4 14 .file "stm32f7xx_hal_i2c.c" 15 .text 16 .Ltext0: 17 .cfi_sections .debug_frame 18 .file 1 "Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c" 19 .section .text.I2C_Flush_TXDR,"ax",%progbits 20 .align 1 21 .syntax unified 22 .thumb 23 .thumb_func 25 I2C_Flush_TXDR: 26 .LVL0: 27 .LFB206: 1:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 2:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ****************************************************************************** 3:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @file stm32f7xx_hal_i2c.c 4:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @author MCD Application Team 5:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief I2C HAL module driver. 6:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral: 8:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * + Initialization and de-initialization functions 9:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * + IO operation functions 10:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * + Peripheral State and Errors functions 11:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * 12:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ****************************************************************************** 13:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @attention 14:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * 15:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * Copyright (c) 2017 STMicroelectronics. 16:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * All rights reserved. 17:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * 18:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * This software is licensed under terms that can be found in the LICENSE file 19:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in the root directory of this software component. 20:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 21:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * 22:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ****************************************************************************** 23:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** @verbatim 24:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ============================================================================== 25:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ##### How to use this driver ##### 26:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ============================================================================== 27:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 28:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** The I2C HAL driver can be used as follows: 29:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 30:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example: 31:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_HandleTypeDef hi2c; ARM GAS /tmp/ccSHpINd.s page 2 32:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 33:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API: 34:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (##) Enable the I2Cx interface clock 35:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (##) I2C pins configuration 36:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs 37:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain 38:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process 39:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority 40:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel 41:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process 42:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for 43:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the transmit or receive stream 44:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using 45:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) Configure the DMA handle parameters 46:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx stream 47:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle 48:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on 49:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the DMA Tx or Rx stream 50:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 51:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres 52:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure 53:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 54:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level H 55:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API. 56:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 57:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceRead 58:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 59:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver : 60:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 61:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *** Polling mode IO operation *** 62:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ================================= 63:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 64:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using HAL_I2C_Master_Transmit( 65:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using HAL_I2C_Master_Receive() 66:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Transmit() 67:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Receive() 68:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 69:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *** Polling mode IO MEM operation *** 70:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ===================================== 71:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 72:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using HAL_I2C_Mem_W 73:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using HAL_I2C_Mem_ 74:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 75:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 76:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *** Interrupt mode IO operation *** 77:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** =================================== 78:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 79:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Trans 80:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can 81:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() 82:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Receiv 83:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can 84:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 85:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Transmi 86:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can 87:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() 88:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Receive_ ARM GAS /tmp/ccSHpINd.s page 3 89:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can 90:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 91:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 92:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 93:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Abort a master or memory I2C process communication with Interrupt using HAL_I2C_Master_Ab 94:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 95:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 96:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 97:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 98:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 99:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation *** 101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ========================================================== 102:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition 104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** when a direction change during transfer 105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer 107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Option field values are defined through I2C_XFEROPTIONS and are listed below: 108:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfac 109:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** no sequential mode 110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con 111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** and data to transfer without a final stop condition 112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a 113:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** start condition, address and data to transfer without a final stop cond 114:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** an then permit a call the same master sequential interface several time 115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (like HAL_I2C_Master_Seq_Transmit_IT() then HAL_I2C_Master_Seq_Transmit 116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA() then HAL_I2C_Master_Seq_Transmit_D 117:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart 118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th 119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** transfer 120:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases 121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart 122:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th 123:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** transfer 124:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases 125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a re 126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** after several call of the same master sequential interface several time 127:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (link with option I2C_FIRST_AND_NEXT_FRAME). 128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Usage can, transfer several bytes one by one using 129:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT 130:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT 131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA 132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA 133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** with option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME. 134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit 135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Receive sequence permit to call the opposite interface Receive or Tra 136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio 137:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c 138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** each call of the same master sequential 139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** interface. 140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave 141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** each bytes using 142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT 143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT 144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA 145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA ARM GAS /tmp/ccSHpINd.s page 4 146:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** with option I2C_FIRST_FRAME then I2C_OTHER_FRAME. 147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to 148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** generation of STOP condition. 149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Different sequential I2C interfaces are listed below: 151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using 152:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT() or using HAL_I2C_Master_Seq_Transmit_DMA() 153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is execut 154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_MasterTxCpltC 155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using 156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_Master_Seq_Receive_IT() or using HAL_I2C_Master_Seq_Receive_DMA() 157:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed 158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Abort a master or memory IT or DMA I2C process communication with Interrupt using HAL_I2 160:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 161:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT() 163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_DisableListen_IT() 164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and users can 165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code to check the Address Match Code and the transmission direction reques 166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (Write/Read). 167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and users can 168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ListenCpltCallback() 169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using 170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Transmit_IT() or using HAL_I2C_Slave_Seq_Transmit_DMA() 171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is execute 172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCa 173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using 174:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Receive_IT() or using HAL_I2C_Slave_Seq_Receive_DMA() 175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed a 176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *** Interrupt mode IO MEM operation *** 183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ======================================= 184:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address 186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_Mem_Write_IT() 187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can 188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback() 189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address 190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_Mem_Read_IT() 191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can 192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback() 193:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 195:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *** DMA mode IO operation *** 197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ============================== 198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using 200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_Master_Transmit_DMA() 201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can 202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() ARM GAS /tmp/ccSHpINd.s page 5 203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using 204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_Master_Receive_DMA() 205:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can 206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using 208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_Slave_Transmit_DMA() 209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can 210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() 211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using 212:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_Slave_Receive_DMA() 213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can 214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Abort a master or memory I2C process communication with Interrupt using HAL_I2C_Master_Ab 218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 220:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 223:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *** DMA mode IO MEM operation *** 224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ================================= 225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 226:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using 227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_Mem_Write_DMA() 228:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can 229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback() 230:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using 231:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_Mem_Read_DMA() 232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can 233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback() 234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 237:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 238:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *** I2C HAL driver macros list *** 239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ================================== 240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver. 242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 243:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE: Enable the I2C peripheral 244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE: Disable the I2C peripheral 245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode 246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not 247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag 248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt 249:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt 250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *** Callback registration *** 252:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ============================================= 253:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1 255:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks. 256:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Use Functions HAL_I2C_RegisterCallback() or HAL_I2C_RegisterAddrCallback() 257:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to register an interrupt callback. 258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Function HAL_I2C_RegisterCallback() allows to register following callbacks: ARM GAS /tmp/ccSHpINd.s page 6 260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. 261:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. 262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. 263:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. 264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. 265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. 266:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. 267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. 268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. 269:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. 270:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. 271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** and a pointer to the user callback function. 273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : HAL_I2C_RegisterAddrCall 275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Use function HAL_I2C_UnRegisterCallback to reset a callback to the default 277:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** weak function. 278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle, 279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** and the Callback ID. 280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** This function allows to reset following callbacks: 281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. 282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. 283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. 284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. 285:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. 286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. 287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. 288:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. 289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. 290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. 291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. 292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : HAL_I2C_UnRegisterAddrCallback(). 294:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** By default, after the HAL_I2C_Init() and when the state is HAL_I2C_STATE_RESET 296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions: 297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** examples HAL_I2C_MasterTxCpltCallback(), HAL_I2C_MasterRxCpltCallback(). 298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are 299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** reset to the legacy weak functions in the HAL_I2C_Init()/ HAL_I2C_DeInit() only when 300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** these callbacks are null (not registered beforehand). 301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the HAL_I2C_Init()/ HAL_I2C_DeInit() 302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state. 303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Callbacks can be registered/unregistered in HAL_I2C_STATE_READY state only. 305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered 306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** in HAL_I2C_STATE_READY or HAL_I2C_STATE_RESET state, 307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. 308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks 309:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** using HAL_I2C_RegisterCallback() before calling HAL_I2C_DeInit() 310:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** or HAL_I2C_Init() function. 311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 312:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or 313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks 314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** are set to the corresponding weak functions. 315:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] ARM GAS /tmp/ccSHpINd.s page 7 317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros 318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** @endverbatim 320:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 321:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/ 323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #include "stm32f7xx_hal.h" 324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** @addtogroup STM32F7xx_HAL_Driver 326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @{ 327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** @defgroup I2C I2C 330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief I2C HAL module driver 331:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @{ 332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED 335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/ 337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/ 338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define 340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @{ 341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */ 343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */ 344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */ 345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */ 346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */ 347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */ 348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */ 349:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */ 350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */ 351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */ 352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 353:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U 354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define SLAVE_ADDR_SHIFT 7U 355:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define SLAVE_ADDR_MSK 0x06U 356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */ 358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | \ 359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)HAL_I2C_STATE_BUSY_RX) & \ 360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY)))) 361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /*!< Mask State define, keep only RX and TX bits */ 362:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE)) 363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /*!< Default Value */ 364:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) 366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /*!< Master Busy TX, combinaison of State LSB and Mode enum */ 367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) 369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /*!< Master Busy RX, combinaison of State LSB and Mode enum */ 370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) 372:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /*!< Slave Busy TX, combinaison of State LSB and Mode enum */ 373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ ARM GAS /tmp/ccSHpINd.s page 8 374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) 375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /*!< Slave Busy RX, combinaison of State LSB and Mode enum */ 376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) 378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /*!< Memory Busy TX, combinaison of State LSB and Mode enum */ 379:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) 381:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /*!< Memory Busy RX, combinaison of State LSB and Mode enum */ 382:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */ 385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with 386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ 387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with 388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ 389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /*!< Bit field can be combinated with @ref I2 390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** and @ref I2C_XFER_RX_IT */ 391:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /*!< Bit definition to manage addition of glo 393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** and NACK treatment */ 394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /*!< Bit definition to manage only STOP evene 395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /*!< Bit definition to manage only Reload of 396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 397:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */ 398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U) 399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @} 401:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private macros ------------------------------------------------------------*/ 404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** @addtogroup I2C_Private_Macro 405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @{ 406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 407:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Macro to get remaining data to transfer on DMA side */ 408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) __HAL_DMA_GET_COUNTER(__HANDLE__) 409:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @} 411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/ 414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/ 415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions 417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @{ 418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 419:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private functions to handle DMA transfer */ 420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma); 421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma); 422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma); 423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma); 424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma); 425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma); 426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c); ARM GAS /tmp/ccSHpINd.s page 9 431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c); 432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode); 436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Tickstart); 441:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Tickstart); 444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */ 446:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 447:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t ITSources); 448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t ITSources); 450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t ITSources); 452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 453:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t ITSources); 454:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t ITSources); 456:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t ITSources); 458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */ 460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart); 462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Tickstart); 464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Tickstart); 466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 467:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Tickstart); 468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Tickstart); 470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */ 472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private function to treat different error callback */ 476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c); 477:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private function to flush TXDR register */ 479:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c); 480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 481:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */ 482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Request); 484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Private function to Convert Specific options */ 486:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c); 487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** ARM GAS /tmp/ccSHpINd.s page 10 488:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @} 489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/ 492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions 494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @{ 495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions 498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Initialization and Configuration functions 499:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * 500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** @verbatim 501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** =============================================================================== 502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ##### Initialization and de-initialization functions ##### 503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** =============================================================================== 504:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and 505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** deinitialize the I2Cx peripheral: 506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures 508:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). 509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 510:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with 511:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the selected configuration: 512:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Clock Timing 513:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Own Address 1 514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Addressing mode (Master, Slave) 515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Dual Addressing mode 516:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Own Address 2 517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Own Address 2 Mask 518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) General call mode 519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Nostretch mode 520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration 522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** of the selected I2Cx peripheral. 523:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** @endverbatim 525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @{ 526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 528:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 529:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters 530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle. 531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 534:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) 536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c == NULL) 539:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); ARM GAS /tmp/ccSHpINd.s page 11 545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET) 554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Allocate lock resource and initialize it */ 556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED; 557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Init the I2C Callback settings */ 560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback 561:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback 562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback 563:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback 564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback 565:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 566:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 569:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback 570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 571:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL) 572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 573:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ 574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 577:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c); 578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 580:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c); 581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 582:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 585:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 586:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable the selected I2C peripheral */ 587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ 590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */ 591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; 592:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ 594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */ 595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; 596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */ 598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) 599:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); 601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 12 602:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */ 603:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); 605:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/ 608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */ 609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 610:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** SET_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10); 612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear the I2C ADD10 bit */ 616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10); 617:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ 619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); 620:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ 622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */ 623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; 624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */ 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \ 627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 629:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/ 630:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */ 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); 632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the selected I2C peripheral */ 634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c); 635:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 638:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 644:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral. 646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 647:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) 651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 652:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c == NULL) 654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 656:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 657:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ ARM GAS /tmp/ccSHpINd.s page 13 659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 660:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 663:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */ 664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 666:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL) 668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ 670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 673:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c); 674:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 676:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c); 677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 678:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 679:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Release Lock */ 685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 686:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 689:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 690:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 691:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Initialize the I2C MSP. 692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 693:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 695:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 696:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) 697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(hi2c); 700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file 703:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 705:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 707:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP. 708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 710:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) 713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(hi2c); ARM GAS /tmp/ccSHpINd.s page 14 716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 718:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file 719:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 723:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Register a User I2C Callback 725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * To be used instead of the weak predefined callback 726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @note The HAL_I2C_RegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_RES 727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * to register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID. 728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 729:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 730:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered 731:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * This parameter can be one of the following values: 732:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 735:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 738:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 740:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pCallback pointer to the Callback function 744:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 745:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 746:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb 747:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback) 748:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 749:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 751:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (pCallback == NULL) 752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update the error code */ 754:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 755:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 756:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 758:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 759:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 761:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** switch (CallbackID) 762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 763:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 764:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback; 765:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 766:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 768:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback; 769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 770:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 771:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback; ARM GAS /tmp/ccSHpINd.s page 15 773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 774:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 775:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 776:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback; 777:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 778:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 779:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 780:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback; 781:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 782:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 783:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback; 785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 786:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 787:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback; 789:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback; 793:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 795:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 796:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback; 797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 804:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** default : 808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update the error code */ 809:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Return error status */ 812:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 814:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 816:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 818:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** switch (CallbackID) 819:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 823:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 824:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** default : 829:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update the error code */ ARM GAS /tmp/ccSHpINd.s page 16 830:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 831:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 832:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Return error status */ 833:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 834:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 837:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update the error code */ 840:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 841:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 842:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Return error status */ 843:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 845:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 846:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return status; 847:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 848:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 849:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 850:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Unregister an I2C Callback 851:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback 852:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @note The HAL_I2C_UnRegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_R 853:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * to un-register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID. 854:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered 857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * This parameter can be one of the following values: 858:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * This parameter can be one of the following values: 859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 861:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 863:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 864:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 867:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 868:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 870:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal 873:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 874:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 876:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 878:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** switch (CallbackID) 879:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 881:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb 882:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb 886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; ARM GAS /tmp/ccSHpINd.s page 17 887:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 888:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 889:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba 890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 892:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 893:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba 894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 896:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 897:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac 898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 899:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 901:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 902:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 903:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 904:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 906:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 910:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 911:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 913:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 914:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 917:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 918:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 920:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** default : 925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update the error code */ 926:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 927:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 928:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Return error status */ 929:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 932:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** switch (CallbackID) 936:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 937:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 938:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 941:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 942:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; ARM GAS /tmp/ccSHpINd.s page 18 944:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 945:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** default : 946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update the error code */ 947:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Return error status */ 950:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 951:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 953:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 954:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 956:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update the error code */ 957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 959:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Return error status */ 960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 963:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return status; 964:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 965:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 967:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback 968:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback 969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function 972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC 975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (pCallback == NULL) 979:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update the error code */ 981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 983:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 986:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 987:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->AddrCallback = pCallback; 989:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update the error code */ 993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Return error status */ 996:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return status; 1000:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 19 1001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1002:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 1003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback 1004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal 1005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1007:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 1008:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 1009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) 1010:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1011:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 1014:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ 1016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update the error code */ 1020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 1021:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1022:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Return error status */ 1023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 1024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1025:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1026:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return status; 1027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1028:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1030:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 1032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @} 1033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 1034:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions 1036:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Data transfers functions 1037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * 1038:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** @verbatim 1039:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** =============================================================================== 1040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ##### IO operation functions ##### 1041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** =============================================================================== 1042:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 1043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data 1044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** transfers. 1045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1046:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (#) There are two modes of transfer: 1047:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode. 1048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** The status of all data processing is returned by the same function 1049:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** after finishing transfer. 1050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts 1051:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup. 1052:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** The end of the data processing will be indicated through the 1053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when 1054:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** using DMA mode. 1055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1056:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (#) Blocking mode functions are : 1057:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit() ARM GAS /tmp/ccSHpINd.s page 20 1058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive() 1059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit() 1060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive() 1061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write() 1062:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read() 1063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady() 1064:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1065:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are : 1066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT() 1067:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT() 1068:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT() 1069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT() 1070:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT() 1071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT() 1072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT() 1073:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT() 1074:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT() 1075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT() 1076:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT() 1077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT() 1078:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT() 1079:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are : 1081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA() 1082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA() 1083:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA() 1084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA() 1085:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA() 1086:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA() 1087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA() 1088:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA() 1089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA() 1090:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA() 1091:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1092:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode: 1093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback() 1094:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback() 1095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback() 1096:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback() 1097:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback() 1098:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback() 1099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback() 1100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback() 1101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback() 1102:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback() 1103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** @endverbatim 1105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @{ 1106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 1107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1108:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 1109:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode. 1110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1113:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1114:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer ARM GAS /tmp/ccSHpINd.s page 21 1115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Timeout Timeout duration 1117:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 1118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 1119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD 1120:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1122:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 1123:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 1124:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1127:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1129:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1130:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1137:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 1145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1146:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1152:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1157:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1160:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Preload TX register */ 1161:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 1162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 1168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 1169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address */ 1171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ ARM GAS /tmp/ccSHpINd.s page 22 1172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode, 1173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1174:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address */ 1178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, 1180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1184:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 1191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1193:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1195:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 1197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 1198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1205:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1212:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1220:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1223:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1226:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1228:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 23 1229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear STOP Flag */ 1230:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1231:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1237:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1238:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 1239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 1242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1243:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 1246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1249:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 1250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode. 1251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1252:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1253:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1255:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1256:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1257:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Timeout Timeout duration 1258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 1259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 1260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa 1261:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1263:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 1264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1266:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1269:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1270:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1277:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 1285:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; ARM GAS /tmp/ccSHpINd.s page 24 1286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address */ 1288:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 1U; 1292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1294:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1309:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1310:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Read data from RXDR */ 1311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1312:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1315:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 1317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 1318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1320:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1321:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1331:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ ARM GAS /tmp/ccSHpINd.s page 25 1343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1349:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear STOP Flag */ 1350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1353:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1355:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 1359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 1362:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1364:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 1366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 1370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode. 1371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1372:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Timeout Timeout duration 1376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 1377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 1378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1379:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Timeout) 1380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1381:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 1382:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t tmpXferCount; 1383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef error; 1384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1391:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 1393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1397:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; ARM GAS /tmp/ccSHpINd.s page 26 1400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1401:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 1405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1407:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1409:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 1411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 1412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Preload TX register */ 1414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 1415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1419:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 1421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 1430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear ADDR flag */ 1436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If 10bit addressing mode is selected */ 1439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 1440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1441:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1446:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1447:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 1448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1453:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear ADDR flag */ 1454:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1456:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 27 1457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */ 1458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) 1459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 1464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1467:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1477:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1479:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 1480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1481:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 1486:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1488:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until AF flag is set */ 1489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** error = I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart); 1490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (error != HAL_OK) 1492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check that I2C transfer finished */ 1494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 1495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Mean XferCount == 0 */ 1496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpXferCount = hi2c->XferCount; 1498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 1499:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset ErrorCode to NONE */ 1501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1504:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1508:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1510:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1511:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1512:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 1513:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); ARM GAS /tmp/ccSHpINd.s page 28 1514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear AF flag */ 1516:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 1517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1523:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear STOP flag */ 1528:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1529:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1534:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1539:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 1546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 1549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 1553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 1557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode 1558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1561:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Timeout Timeout duration 1563:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 1564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 1565:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1566:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Timeout) 1567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 1569:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) ARM GAS /tmp/ccSHpINd.s page 29 1571:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1573:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1577:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 1578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1580:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1582:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1585:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1586:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 1590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1592:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1599:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1602:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1603:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear ADDR flag */ 1605:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */ 1608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) 1609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1610:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1617:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1620:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Store Last receive data if any */ 1624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) 1625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Read data from RXDR */ 1627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; ARM GAS /tmp/ccSHpINd.s page 30 1628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1629:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1630:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 1633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 1634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1635:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1638:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Read data from RXDR */ 1640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1644:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 1646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 1647:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1652:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1656:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1657:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear STOP flag */ 1658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1660:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1663:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 1666:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1673:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1674:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 1675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1676:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 1678:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1679:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 1682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 31 1685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 1686:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt 1687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1689:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1690:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1691:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1693:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 1694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 1695:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1696:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t Size) 1697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 1699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1703:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 1705:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1707:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 1708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1710:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 1717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1718:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1719:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1723:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1729:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1730:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1731:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address */ 1732:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1735:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Preload TX register */ 1736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 1737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1738:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1740:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 32 1742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 1743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 1744:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1745:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode, 1746:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1747:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1748:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1749:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, 1751:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1754:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 1755:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1756:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1758:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1759:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 1760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1761:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* possible to enable all of these */ 1763:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1764:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1765:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1766:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 1768:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1770:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1771:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 1772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1774:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1775:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 1776:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt 1777:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1778:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1779:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1780:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1781:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1782:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1783:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 1784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 1785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t * 1786:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t Size) 1787:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 1789:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1793:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 1795:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1796:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 1798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); ARM GAS /tmp/ccSHpINd.s page 33 1799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1804:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 1807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1809:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1812:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 1U; 1813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1814:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1816:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1818:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1819:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address */ 1822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1823:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ 1824:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 1826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1829:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1830:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 1831:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1832:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1833:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* possible to enable all of these */ 1834:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 1837:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 1839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1840:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1841:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1842:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 1843:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1845:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1846:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 1847:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt 1848:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1849:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1850:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1851:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1852:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 1853:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 1854:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 34 1856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1858:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 1859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1861:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1863:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1864:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1867:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1868:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1870:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 1871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1873:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1874:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 1876:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 1877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1878:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Preload TX register */ 1879:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 1880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1881:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1882:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 1886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 1887:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1888:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1889:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 1890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1892:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1893:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 1895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1896:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1897:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* possible to enable all of these */ 1898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1899:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 1901:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1902:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 1903:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1904:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1906:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 1907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1910:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 1911:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt 1912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains ARM GAS /tmp/ccSHpINd.s page 35 1913:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1914:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 1917:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 1918:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1920:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 1923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1926:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1927:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1928:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1929:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1932:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 1935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1936:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1937:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1938:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 1940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1941:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1942:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1944:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 1945:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1947:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* possible to enable all of these */ 1948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1950:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 1951:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 1953:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1954:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 1955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1956:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 1957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1959:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 1961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA 1962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1963:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1964:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1965:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1967:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1968:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 1969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ ARM GAS /tmp/ccSHpINd.s page 36 1970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t Size) 1972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 1974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 1975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 1976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1979:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 1982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1983:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 1985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1986:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1987:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1989:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 1994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 1996:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2000:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2002:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2007:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2008:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2010:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Preload TX register */ 2011:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 2012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2014:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 2015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 2016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 2018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 2019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 2020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2021:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2022:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2025:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2026:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ ARM GAS /tmp/ccSHpINd.s page 37 2027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 2028:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the DMA error callback */ 2030:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2034:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2036:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the DMA stream */ 2037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, 2038:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 2039:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2042:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 2043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2046:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 2047:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2049:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2051:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2052:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2054:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2056:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2057:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address */ 2058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART 2059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), 2060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 2061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2062:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update XferCount value */ 2063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2064:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2065:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2067:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2068:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2070:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 2071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2073:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2074:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable DMA Request */ 2075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2076:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2078:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2079:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 2080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2083:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ ARM GAS /tmp/ccSHpINd.s page 38 2084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2085:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2086:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2088:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2090:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2091:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2092:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2094:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2096:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2097:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address */ 2098:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 2099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, I2C_AUTOEND_MODE, 2100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 2101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2102:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 2108:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2109:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* possible to enable all of these */ 2110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2113:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2114:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 2116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2117:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 2120:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2122:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2123:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 2124:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA 2125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2127:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2129:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2130:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 2132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 2133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 2134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t Size) 2135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 2137:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 39 2141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 2144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2146:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 2147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2152:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2157:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2160:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2161:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 1U; 2162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2174:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 2176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the DMA error callback */ 2178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2184:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the DMA stream */ 2185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 2186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 2187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 2191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2193:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 2195:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ ARM GAS /tmp/ccSHpINd.s page 40 2198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2205:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address */ 2206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART * 2207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 2208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update XferCount value */ 2210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2212:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 2218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2220:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable DMA Request */ 2222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2223:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2226:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 2227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2228:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2230:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 2231:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2237:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2238:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2243:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address */ 2245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 2246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2249:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2252:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2253:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ ARM GAS /tmp/ccSHpINd.s page 41 2255:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 2256:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* possible to enable all of these */ 2257:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 2260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2261:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 2263:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2266:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 2267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2269:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2270:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 2271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA 2272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 2277:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 2278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size 2279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2285:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2288:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 2290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2294:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 2304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 2305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Preload TX register */ 2307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 2308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2309:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2310:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 2311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; ARM GAS /tmp/ccSHpINd.s page 42 2312:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 2314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 2315:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 2318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2320:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2321:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 2323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the DMA error callback */ 2325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2331:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the DMA stream */ 2332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, 2333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 2334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 2335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 2339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 2343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2349:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2353:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2355:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 2362:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2364:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable DMA Request */ 2366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else ARM GAS /tmp/ccSHpINd.s page 43 2369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 2371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2372:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 2375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2379:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2381:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2382:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2391:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 2394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2397:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 2399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2401:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 2403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 2407:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA 2408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2409:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 2413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 2414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 2415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2419:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ ARM GAS /tmp/ccSHpINd.s page 44 2426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2441:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 2443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the DMA error callback */ 2445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2446:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2447:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the DMA stream */ 2452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 2453:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 2454:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2456:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 2458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 2462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2467:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2477:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2479:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 2481:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); ARM GAS /tmp/ccSHpINd.s page 45 2483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable DMA Request */ 2485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2486:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2488:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 2490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 2494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2499:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 2503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2504:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 2507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2508:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2510:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 2511:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address 2512:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2513:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2516:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Timeout Timeout duration 2521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 2522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 2523:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre 2524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti 2525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 2527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2528:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 2529:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2534:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2539:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ ARM GAS /tmp/ccSHpINd.s page 46 2540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL 2561:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2563:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2565:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2566:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 2568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2569:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2571:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 2572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2573:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 2577:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** do 2580:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 2582:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2585:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2586:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 2588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 2591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 2592:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 2594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 2595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) ARM GAS /tmp/ccSHpINd.s page 47 2597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2599:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2602:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2603:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2605:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2610:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2617:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2620:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear STOP Flag */ 2628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2629:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2630:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2635:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2638:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 2640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 2644:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2647:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 2648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address 2649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2652:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddress Internal memory address ARM GAS /tmp/ccSHpINd.s page 48 2654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2656:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2657:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Timeout Timeout duration 2658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 2659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 2660:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres 2661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim 2662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2663:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 2664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 2666:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2673:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2674:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2676:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 2677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2678:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2679:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2686:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2689:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2690:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2691:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2693:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2695:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2696:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_ 2698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2703:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address */ 2705:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2707:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 1U; 2709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2710:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); ARM GAS /tmp/ccSHpINd.s page 49 2711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2718:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2719:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** do 2720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 2722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) 2723:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Read data from RXDR */ 2728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 2729:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2730:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 2731:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 2732:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 2734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 2735:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2738:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2740:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2744:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2745:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2746:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 1U; 2747:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 2748:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2749:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2751:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2754:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2755:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2756:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2758:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2759:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2761:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2763:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2764:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2765:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2766:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear STOP Flag */ 2767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); ARM GAS /tmp/ccSHpINd.s page 50 2768:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2770:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2771:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2774:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2775:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2776:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2777:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2778:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 2779:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2780:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2781:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2782:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 2783:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 2786:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres 2787:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2789:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2793:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2795:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 2796:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 2797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 2798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 2801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2804:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2809:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2812:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 2814:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2816:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 2817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2818:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2819:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2823:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2824:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 0U; ARM GAS /tmp/ccSHpINd.s page 51 2825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 2829:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 2830:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2831:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 2832:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 2833:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2834:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prefetch Memory Address */ 2835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 2836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2837:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset Memaddress content */ 2838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 2839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2840:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 2841:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2842:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2843:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 2844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 2845:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2846:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 2847:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 2848:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2849:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2850:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_W 2851:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2852:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2853:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2854:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 2858:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* possible to enable all of these */ 2861:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2863:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2864:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 2866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2867:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2868:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 2870:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2873:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 2874:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre 2875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2876:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2878:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2879:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2881:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer ARM GAS /tmp/ccSHpINd.s page 52 2882:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 2884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 2885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd 2886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2887:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2888:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 2889:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2892:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2893:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2896:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2897:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2899:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2901:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 2902:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2903:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2904:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 2905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2906:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2910:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2911:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2913:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2914:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 2916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 2917:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2918:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 2919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 2920:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prefetch Memory Address */ 2922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 2923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset Memaddress content */ 2925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 2926:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2927:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 2928:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2929:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 2931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 2932:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 2934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 2935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2936:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2937:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_ 2938:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 53 2939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 2940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2941:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2942:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2944:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 2945:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2947:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* possible to enable all of these */ 2948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2950:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2951:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 2953:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2954:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 2955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2956:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 2957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2959:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 2961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address 2962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2963:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2964:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2965:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2967:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2968:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 2971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 2972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA 2973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 2978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2979:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2983:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2986:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2987:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2989:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 2991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 2994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 54 2996:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3000:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3002:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 3005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 3006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3007:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3008:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3010:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3011:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3014:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 3017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 3018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prefetch Memory Address */ 3020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 3021:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3022:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset Memaddress content */ 3023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 3024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3025:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 3026:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3028:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 3029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 3030:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 3032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 3033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3034:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3036:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3038:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3039:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the DMA error callback */ 3041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3042:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3046:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3047:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the DMA stream */ 3048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 3049:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 3050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3051:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3052:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 55 3053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 3054:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3056:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3057:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 3058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3062:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3064:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3065:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3067:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3068:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 3069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START 3070:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3073:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3074:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3076:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 3077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3078:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* possible to enable all of these */ 3079:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3083:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3085:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 3086:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3088:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 3090:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3091:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3092:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3094:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3096:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3097:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3098:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 3099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3102:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 3103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 3107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address. 3108:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3109:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. ARM GAS /tmp/ccSHpINd.s page 56 3110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddress Internal memory address 3113:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 3114:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be read 3116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 3117:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 3118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 3119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 3120:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3122:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3123:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 3124:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 3125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3127:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3129:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3130:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 3137:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 3140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 3144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3146:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 3151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 3152:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3157:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3160:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3161:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 3163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 3164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prefetch Memory Address */ 3166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); ARM GAS /tmp/ccSHpINd.s page 57 3167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset Memaddress content */ 3169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 3170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 3172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3174:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 3175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 3176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 3178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 3179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3184:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the DMA error callback */ 3187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3193:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the DMA stream */ 3194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 3195:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 3196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 3200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 3204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3205:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3212:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 3215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_STAR 3216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3220:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 3223:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ ARM GAS /tmp/ccSHpINd.s page 58 3224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* possible to enable all of these */ 3225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3226:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3228:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3230:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3231:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 3232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 3236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3237:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3238:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3243:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 3245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 3249:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3252:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 3253:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Checks if target device is ready for communication. 3254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @note This function is used with Memory devices 3255:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3256:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3257:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Trials Number of trials 3260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Timeout Timeout duration 3261:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 3262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 3263:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria 3264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Timeout) 3265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3266:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 3267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL; 3269:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3270:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** FlagStatus tmp1; 3271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** FlagStatus tmp2; 3272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3277:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 3278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ ARM GAS /tmp/ccSHpINd.s page 59 3281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 3284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3285:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** do 3287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3288:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Generate Start */ 3289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress); 3290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 3292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/ 3293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 3294:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET)) 3299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 3301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 3303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 3305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 3308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3309:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3310:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3312:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3315:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3320:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3321:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */ 3322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET) 3323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear STOP Flag */ 3331:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Device is ready */ 3334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); ARM GAS /tmp/ccSHpINd.s page 60 3338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 3340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3349:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 3350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/ 3353:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3355:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Trials */ 3357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Trials++; 3358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } while (I2C_Trials < Trials); 3359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 3361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3362:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 3364:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3372:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 3374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 3378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte 3379:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3381:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3382:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 3388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 3389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3391:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; ARM GAS /tmp/ccSHpINd.s page 61 3395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 3397:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3401:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 3402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3407:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3409:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3419:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \ 3427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 3428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Preload TX register */ 3430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 3431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 3432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 3434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 3435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 3437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 3438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3441:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** do not generate Restart Condition */ 3443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3446:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3447:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ ARM GAS /tmp/ccSHpINd.s page 62 3452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3453:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3454:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3456:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3467:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 3477:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* possible to enable all of these */ 3479:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3481:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 3484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3486:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 3488:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 3492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA. 3493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3499:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 3502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 3503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin 3504:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3508:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; ARM GAS /tmp/ccSHpINd.s page 63 3509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 3510:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3511:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 3512:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3513:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3516:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 3517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3523:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3528:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3529:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3534:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3539:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \ 3542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 3543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Preload TX register */ 3545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 3546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 3547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 3549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 3550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 3552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 3553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** do not generate Restart Condition */ 3558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3561:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3563:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3565:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 64 3566:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3569:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3571:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3573:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3577:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3580:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3582:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the DMA error callback */ 3584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3585:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3586:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the DMA stream */ 3591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, 3592:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 3593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 3597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3599:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 3601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3602:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3603:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3605:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3610:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3617:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3620:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update XferCount value */ 3622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; ARM GAS /tmp/ccSHpINd.s page 65 3623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3629:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 3630:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable DMA Request */ 3634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 3635:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3638:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 3639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 3643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3644:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3647:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3652:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3656:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address */ 3657:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 3658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3660:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3663:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3666:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 3673:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3674:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* possible to enable all of these */ 3675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3676:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3678:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3679:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 66 3680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 3681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 3685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3686:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 3689:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter 3690:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3691:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3693:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3695:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3696:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 3699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 3700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8 3701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3703:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3705:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 3707:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3710:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 3712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3718:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3719:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3723:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3729:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3730:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3731:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3732:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3735:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, ARM GAS /tmp/ccSHpINd.s page 67 3737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** do not generate Restart Condition */ 3738:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3740:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3744:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3745:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3746:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3747:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3748:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3749:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3751:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3754:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3755:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3756:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3758:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3759:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3761:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3763:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3764:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 3765:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3766:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 3768:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3770:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3771:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 3772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3774:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3775:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 3776:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA 3777:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3778:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3779:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3780:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3781:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3782:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3783:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 3786:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 3787:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3789:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3793:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 68 3794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 3795:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3796:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 3800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3804:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3809:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3812:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3814:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3816:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3818:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3819:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3823:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3824:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** do not generate Restart Condition */ 3826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3829:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3830:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3831:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3832:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3833:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3834:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3837:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3840:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3841:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3842:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3843:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3845:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3846:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3847:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3848:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3849:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3850:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 69 3851:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the DMA error callback */ 3852:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3853:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3854:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3858:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the DMA stream */ 3859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 3860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 3861:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3863:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3864:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 3865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3867:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3868:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 3869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3870:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3873:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3874:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3876:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3878:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3879:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3881:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3882:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update XferCount value */ 3883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3887:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3888:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3889:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 3891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3892:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3893:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable DMA Request */ 3895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 3896:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3897:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3899:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 3900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3901:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3902:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3903:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 3904:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3906:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); ARM GAS /tmp/ccSHpINd.s page 70 3908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3910:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3911:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3913:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3914:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3917:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Slave Address */ 3918:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 3919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 3920:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 3921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 3923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3926:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3927:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 3928:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 3929:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* possible to enable all of these */ 3930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3932:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 3936:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3937:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 3938:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 3940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3941:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3942:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 3944:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 3945:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3947:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3950:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3951:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 3952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 3953:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 3954:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t XferOptions) 3955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3956:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 3957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** FlagStatus tmp; 3958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3959:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 3960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 3963:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3964:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) ARM GAS /tmp/ccSHpINd.s page 71 3965:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3967:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3968:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 3972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 3974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 3977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 3978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3979:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable associated Interrupts */ 3981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3983:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 3985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3986:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 3987:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3989:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 3993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA RX */ 3995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 3996:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 3999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4000:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4002:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 4005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4007:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4008:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4010:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4011:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 4012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4014:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 4020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4021:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ ARM GAS /tmp/ccSHpINd.s page 72 4022:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4025:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4026:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 4027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4028:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4030:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 4032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 4034:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 4036:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 4038:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4039:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4042:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 4045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4046:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4047:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 4049:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 4050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4051:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 4052:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t 4054:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t XferOptions) 4055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4056:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4057:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** FlagStatus tmp; 4058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 4061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4062:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4064:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4065:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4067:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4068:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4070:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4073:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4074:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 4076:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4078:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ ARM GAS /tmp/ccSHpINd.s page 73 4079:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable associated Interrupts */ 4082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4083:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4085:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4086:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4088:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4090:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4091:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4092:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4094:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA RX */ 4096:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4097:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4098:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4102:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4108:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4109:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4113:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4114:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4117:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA TX */ 4118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4120:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4122:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4123:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4124:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 4127:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Nothing to do */ 4129:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4130:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 4132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable Address Acknowledge */ ARM GAS /tmp/ccSHpINd.s page 74 4136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4137:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 4139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4146:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 4149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the DMA error callback */ 4151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 4152:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 4155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4157:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the DMA stream */ 4158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 4159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 4160:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4161:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 4162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 4164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 4168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 4171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4174:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update XferCount value */ 4179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset XferSize */ 4182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 0; 4183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4184:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 4185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 4187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 4191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 75 4193:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 4194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4195:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 4201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4205:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 4208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable DMA Request */ 4211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 4212:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 4216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 4217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 4220:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 4222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4223:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4226:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4228:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4230:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4231:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 4233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 4234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 4236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4237:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si 4238:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t XferOptions) 4239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** FlagStatus tmp; 4242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4243:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 4244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4249:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 76 4250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4252:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4253:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4255:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4256:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4257:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 4258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4261:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4263:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable associated Interrupts */ 4265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4266:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4269:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4270:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4277:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA TX */ 4279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4285:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4288:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4294:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 4296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 4304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ ARM GAS /tmp/ccSHpINd.s page 77 4307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4309:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4310:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 4311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4312:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4315:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 4316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 4320:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4321:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 4322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4331:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param pData Pointer to data buffer 4333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Amount of data to be sent 4334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 4336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 4338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t XferOptions) 4339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** FlagStatus tmp; 4342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 4345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4349:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4353:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4355:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 4359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4362:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) ARM GAS /tmp/ccSHpINd.s page 78 4364:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable associated Interrupts */ 4366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4372:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4379:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA TX */ 4380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4381:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4382:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4391:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4397:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4401:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA RX */ 4402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4407:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4409:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 4411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Nothing to do */ 4413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4419:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; ARM GAS /tmp/ccSHpINd.s page 79 4421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare transfer parameters */ 4423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 4433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the DMA error callback */ 4435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 4436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 4439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4441:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the DMA stream */ 4442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, 4443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 4444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 4446:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4447:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 4448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 4452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4453:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4454:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 4455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4456:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update XferCount value */ 4463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset XferSize */ 4466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 0; 4467:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 4469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C state */ 4471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update I2C error code */ 4475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4477:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ ARM GAS /tmp/ccSHpINd.s page 80 4478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4479:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4481:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 4485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4486:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4488:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 4492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable DMA Request */ 4495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 4496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4499:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 4500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 4504:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 4506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4508:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4510:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4511:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4512:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt. 4513:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 4516:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) 4518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 4520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4523:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the Address Match interrupt */ 4525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 4528:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4529:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 4530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 4532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4534:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 81 4535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt. 4537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C 4539:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 4540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) 4542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmp; 4545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */ 4547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 4548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; 4550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 4551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 4554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable the Address Match interrupt */ 4556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 4559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 4561:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_BUSY; 4563:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4565:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4566:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Abort a master or memory I2C IT or DMA process communication with Interrupt. 4568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4569:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 4571:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 4572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 4573:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) 4575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 4577:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((tmp_mode == HAL_I2C_MODE_MASTER) || (tmp_mode == HAL_I2C_MODE_MEM)) 4579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4580:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4582:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 4584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 4585:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4586:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 4588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 4590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); ARM GAS /tmp/ccSHpINd.s page 82 4592:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 4593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 4595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Do nothing */ 4597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4599:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */ 4600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT; 4601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4602:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */ 4603:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe 4604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP); 4605:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 4607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4610:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** process unlock */ 4612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 4613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 4615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 4617:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wrong usage of abort function */ 4619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */ 4620:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @} 4626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks 4629:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @{ 4630:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request. 4634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4635:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 4637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4638:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) /* Derogation MISRAC2012-Rule-8.13 */ 4639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 4641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4644:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/ 4645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferISR != NULL) 4646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4647:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources); 4648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 83 4649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4652:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request. 4653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 4656:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4657:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) 4658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4660:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmperror; 4662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4663:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/ 4664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \ 4665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4666:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; 4668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear BERR flag */ 4670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 4671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4673:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ 4674:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \ 4675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4676:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; 4678:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4679:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear OVR flag */ 4680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 4681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ 4684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \ 4685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4686:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; 4688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4689:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear ARLO flag */ 4690:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 4691:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4693:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 4694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 4695:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4696:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */ 4697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_ 4698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror); 4700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4703:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback. 4705:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains ARM GAS /tmp/ccSHpINd.s page 84 4706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4707:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 4708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) 4710:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(hi2c); 4713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file 4716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4718:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4719:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback. 4721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4723:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 4724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) 4726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(hi2c); 4729:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4730:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4731:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file 4732:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4735:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback. 4736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4738:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 4739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4740:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) 4741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(hi2c); 4744:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4745:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4746:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file 4747:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4748:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4749:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4751:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback. 4752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4754:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 4755:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4756:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) 4757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4758:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4759:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(hi2c); 4760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4761:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file ARM GAS /tmp/ccSHpINd.s page 85 4763:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4764:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4765:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4766:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Slave Address Match callback. 4768:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4770:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE 4771:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code 4772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 4773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4774:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM 4775:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4776:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4777:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(hi2c); 4778:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(TransferDirection); 4779:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(AddrMatchCode); 4780:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4781:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4782:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file 4783:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4786:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4787:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Listen Complete callback. 4788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4789:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 4791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) 4793:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4795:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(hi2c); 4796:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file 4799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback. 4804:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 4807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) 4809:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(hi2c); 4812:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4814:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file 4815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4816:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4818:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4819:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback. ARM GAS /tmp/ccSHpINd.s page 86 4820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 4823:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4824:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) 4825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(hi2c); 4828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4829:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4830:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file 4831:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4832:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4833:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4834:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief I2C error callback. 4836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4837:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 4839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4840:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) 4841:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4842:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4843:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(hi2c); 4844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4845:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4846:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file 4847:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4848:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4849:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4850:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4851:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief I2C abort callback. 4852:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4853:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4854:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 4855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) 4857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4858:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(hi2c); 4860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4861:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file 4863:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4864:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4867:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @} 4868:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4870:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions 4871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions 4872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * 4873:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** @verbatim 4874:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** =============================================================================== 4875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions ##### 4876:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** =============================================================================== ARM GAS /tmp/ccSHpINd.s page 87 4877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** [..] 4878:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral 4879:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** and the data flow. 4880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4881:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** @endverbatim 4882:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @{ 4883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Return the I2C handle state. 4887:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4888:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4889:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL state 4890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c) 4892:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4893:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Return I2C handle state */ 4894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return hi2c->State; 4895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4896:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4897:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode. 4899:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for I2C module 4901:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL mode 4902:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4903:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c) 4904:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return hi2c->Mode; 4906:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Return the I2C error code. 4910:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4911:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval I2C Error Code 4913:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4914:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c) 4915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return hi2c->ErrorCode; 4917:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4918:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4920:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @} 4921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @} 4925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4926:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4927:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions 4928:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @{ 4929:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 4932:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt. 4933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains ARM GAS /tmp/ccSHpINd.s page 88 4934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4936:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4937:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 4938:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 4939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 4940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t ITSources) 4941:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4942:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t devaddress; 4943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4944:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4945:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 4946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4947:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 4949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 4950:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4951:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 4952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4953:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4954:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set corresponding Error Code */ 4955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 4956:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 4957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4959:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 4960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 4963:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 4964:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4965:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 4966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 4967:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4968:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Read data from RXDR */ 4969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 4970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 4972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 4973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 4975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 4976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) == RESET) && \ 4978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 4979:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))) 4980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 4982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 4983:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 4985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 4986:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4987:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 4988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 4989:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; ARM GAS /tmp/ccSHpINd.s page 89 4991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 4992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ 4995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 4996:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 4998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 5000:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5002:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Errata workaround 170323 */ 5004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 5005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 1U; 5007:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5008:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5010:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5011:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 5013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5014:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 5020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 5021:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5022:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 5025:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5026:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5028:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5030:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 5032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5034:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5036:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5038:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5039:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5042:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 5046:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5047:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 90 5048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5049:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5051:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5052:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 5053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 5054:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Generate Stop */ 5056:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 5057:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5062:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5064:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5065:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5067:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 5068:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5070:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5073:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5074:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Nothing to do */ 5075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5076:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5078:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5079:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Master complete process */ 5081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 5082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5083:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 5085:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5086:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 5088:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5090:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 5091:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with Interrupt. 5092:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5094:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5096:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 5097:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 5098:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t ITSources) 5100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 5102:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ ARM GAS /tmp/ccSHpINd.s page 91 5105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 5108:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5109:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 5111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5113:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set corresponding Error Code */ 5114:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5117:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 5119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5120:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 5122:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 5123:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5124:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 5125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 5126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5127:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Read data from RXDR */ 5128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5129:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5130:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 5134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 5135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 5137:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->Memaddress == 0xFFFFFFFFU) 5140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 5142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 5143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5146:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 5148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 5149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5152:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write LSB part of Memory Address */ 5153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress; 5154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset Memaddress content */ 5156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 5157:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ 5160:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5161:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 92 5162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 5163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Errata workaround 170323 */ 5167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 5168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 1U; 5170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5174:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 5177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5184:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 5193:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5195:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 5199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 5200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ; 5204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5205:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Errata workaround 170323 */ 5209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 5210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 1U; 5212:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ ARM GAS /tmp/ccSHpINd.s page 93 5219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5220:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 5221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5223:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5226:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */ 5227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5228:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 5229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5230:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5231:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Nothing to do */ 5234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5237:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5238:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Master complete process */ 5240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 5241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5243:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 5244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 5247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5249:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 5250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt. 5251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5252:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5253:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5255:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 5256:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 5257:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t ITSources) 5259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5261:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5263:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process locked */ 5264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5266:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if STOPF is set */ 5267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5269:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5270:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags); 5272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 5274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 94 5276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5277:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 5278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Mean XferCount == 0*/ 5279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5285:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 5288:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 5290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 5292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5294:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 5295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 5304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5309:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 5310:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 5311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5312:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5315:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5320:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5321:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 5324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 5325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 5327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Read data from RXDR */ 5329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5331:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; ARM GAS /tmp/ccSHpINd.s page 95 5333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 5335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 5336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \ 5339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 5340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \ 5346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags); 5349:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 5351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5353:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */ 5354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */ 5355:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if all Data have already been sent */ 5356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */ 5357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 5358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write data to TXDR */ 5360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 5361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5362:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5364:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 5366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 5367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 5371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5372:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5379:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Nothing to do */ 5381:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5382:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 5384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 5387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** ARM GAS /tmp/ccSHpINd.s page 96 5390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA. 5391:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 5396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 5397:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t ITSources) 5399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t devaddress; 5401:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 5402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 5404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5407:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5409:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 5410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set corresponding Error Code */ 5413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 5417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5419:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 5421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ 5424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable TC interrupt */ 5427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI); 5428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Recover Slave address */ 5432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 5433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Errata workaround 170323 */ 5438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 5439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 1U; 5441:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5446:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; ARM GAS /tmp/ccSHpINd.s page 97 5447:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5453:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 5454:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5456:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */ 5462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 5463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update XferCount value */ 5465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5467:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable DMA Request */ 5468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5477:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5479:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 5480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5481:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5486:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5488:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ 5494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5499:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 5501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 5502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Generate Stop */ ARM GAS /tmp/ccSHpINd.s page 98 5504:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 5505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5508:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5510:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5511:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5512:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5513:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 5516:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5523:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Master complete process */ 5524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5528:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Nothing to do */ 5529:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 5532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5534:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 5535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 5538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with DMA. 5539:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 5544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 5545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t ITSources) 5547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 5549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Locked */ 5551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 5557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set corresponding Error Code */ 5560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; ARM GAS /tmp/ccSHpINd.s page 99 5561:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5563:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 5564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5565:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5566:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 5568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5569:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TXIS) != RESET) && \ 5571:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5573:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write LSB part of Memory Address */ 5574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress; 5575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset Memaddress content */ 5577:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 5578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ 5580:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5582:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5585:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable only Error interrupt */ 5586:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 5587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5592:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Errata workaround 170323 */ 5594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 5595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 1U; 5597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5599:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5602:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5603:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 5604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5605:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5610:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update XferCount value */ 5613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable DMA Request */ 5616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5617:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 100 5618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5620:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5629:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5630:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ 5633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5635:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5638:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable only Error and NACK interrupt for data transfer */ 5639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 5640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ; 5644:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5647:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Errata workaround 170323 */ 5649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 5650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 1U; 5652:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5656:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5657:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 5659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5660:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 5661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5663:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5666:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */ 5667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 5669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update XferCount value */ 5672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5673:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5674:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable DMA Request */ ARM GAS /tmp/ccSHpINd.s page 101 5675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5676:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5678:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5679:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5686:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Master complete process */ 5688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5689:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5690:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5691:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Nothing to do */ 5693:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5695:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 5696:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 5699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 5702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA. 5703:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5705:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5707:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 5708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 5709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5710:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t ITSources) 5711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 5714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 5715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process locked */ 5717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5718:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5719:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if STOPF is set */ 5720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5723:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags); 5725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5729:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5730:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 5731:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Mean XferCount == 0 */ ARM GAS /tmp/ccSHpINd.s page 102 5732:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) || 5734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 5735:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */ 5737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 5738:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET) 5740:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) 5742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** treatdmanack = 1U; 5744:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5745:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5746:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5747:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5748:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */ 5749:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 5750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5751:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) 5752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U) 5754:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5755:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** treatdmanack = 1U; 5756:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5758:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5759:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (treatdmanack == 1U) 5761:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5763:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5764:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5765:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5766:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags); 5768:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM 5770:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5771:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 5772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5774:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 5775:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5776:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5777:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5778:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5779:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5780:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5781:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5782:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5783:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 5784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5786:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5787:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 103 5789:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 5790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 5791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5793:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 5794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5795:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5796:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */ 5797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpstate = hi2c->State; 5798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 5802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5804:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN 5806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5809:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Do nothing */ 5812:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5814:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5816:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5818:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5819:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */ 5822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5823:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5824:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \ 5826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags); 5829:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5830:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5831:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5832:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Nothing to do */ 5833:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5834:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 5836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5837:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 5839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5840:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5841:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 5842:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques 5843:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5845:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value ARM GAS /tmp/ccSHpINd.s page 104 5846:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5847:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddress Internal memory address 5848:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5849:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Timeout Timeout duration 5850:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Tickstart Tick start value 5851:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 5852:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 5853:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5854:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 5855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Tickstart) 5856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 5858:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5861:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5863:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5864:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5867:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5868:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Memory Address */ 5869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5870:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5873:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5874:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5876:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5878:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5879:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5881:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5882:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5887:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 5888:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) 5889:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5892:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5893:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 5894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5896:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 5897:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request 5898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5899:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5901:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5902:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddress Internal memory address ARM GAS /tmp/ccSHpINd.s page 105 5903:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5904:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Timeout Timeout duration 5905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Tickstart Tick start value 5906:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 5907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 5908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 5910:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Tickstart) 5911:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 5913:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5914:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5917:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5918:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5920:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send Memory Address */ 5924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5926:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5927:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 5928:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5929:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5932:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5936:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5937:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5938:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5941:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5942:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until TC flag is set */ 5943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) 5944:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5945:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5947:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 5949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5950:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5951:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 5952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief I2C Address complete process callback. 5953:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c I2C handle. 5954:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 5956:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 5957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5959:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint8_t transferdirection; ARM GAS /tmp/ccSHpINd.s page 106 5960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t slaveaddrcode; 5961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t ownadd1code; 5962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t ownadd2code; 5963:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5964:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 5965:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(ITFlags); 5966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5967:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */ 5968:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 5969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c); 5971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 5972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 5973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 5974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If 10bits addressing mode is selected */ 5976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 5977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK)) 5979:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** slaveaddrcode = ownadd1code; 5981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->AddrEventCount++; 5982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 5983:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset Address Event counter */ 5985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->AddrEventCount = 0U; 5986:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5987:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear ADDR flag */ 5988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5989:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 5991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call Slave Addr callback */ 5994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5996:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 5997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6000:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6002:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** slaveaddrcode = ownadd2code; 6004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 6006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 6007:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6008:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6010:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6011:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call Slave Addr callback */ 6012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 6014:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 6016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ ARM GAS /tmp/ccSHpINd.s page 107 6017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */ 6020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6021:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6022:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 6023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 6024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6025:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6026:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6028:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call Slave Addr callback */ 6029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6030:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 6031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 6033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6034:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6036:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Else clear address flag only */ 6037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6038:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6039:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear ADDR flag */ 6040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 6041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6042:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6046:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6047:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 6048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief I2C Master sequential complete process. 6049:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c I2C handle. 6050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 6051:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 6052:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c) 6053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6054:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset I2C handle mode */ 6055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6056:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6057:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */ 6058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */ 6059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6062:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 6063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6064:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6065:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupts */ 6066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 6067:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6068:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6070:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6073:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); ARM GAS /tmp/ccSHpINd.s page 108 6074:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 6076:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6078:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 6079:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 6083:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6085:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupts */ 6086:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6088:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6090:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6091:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6092:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 6094:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 6096:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6097:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6098:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 6101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief I2C Slave sequential complete process. 6102:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c I2C handle. 6103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 6104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 6105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c) 6106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 6108:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6109:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset I2C handle mode */ 6110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 6113:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 6114:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable DMA Request */ 6116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6117:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 6119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6120:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable DMA Request */ 6121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6122:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6123:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6124:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Do nothing */ 6126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6127:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 6129:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6130:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ ARM GAS /tmp/ccSHpINd.s page 109 6131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 6133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupts */ 6135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 6136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6137:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 6143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 6145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6146:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 6149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */ 6151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6152:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 6153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupts */ 6155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6157:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6160:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6161:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 6163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 6165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Nothing to do */ 6170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 6174:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief I2C Master complete process. 6175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c I2C handle. 6176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 6178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 6179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmperror; 6182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 6183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __IO uint32_t tmpreg; 6184:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear STOP Flag */ 6186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 110 6188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 6189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 6192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 6193:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6195:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 6198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Do nothing */ 6202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6205:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset handle parameters */ 6208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) 6212:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 6214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set acknowledge error code */ 6217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6220:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Fetch Last receive data if any */ 6221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)) 6222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6223:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Read data from RXDR */ 6224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR; 6225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(tmpreg); 6226:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6228:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 6229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6230:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6231:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 6232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 6233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE)) 6236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6237:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6238:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */ 6241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6243:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; ARM GAS /tmp/ccSHpINd.s page 111 6245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 6247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6249:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6252:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6253:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6255:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c); 6256:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6257:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c); 6258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6261:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6263:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6266:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6269:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 6270:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 6272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 6276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6277:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 6282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6285:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6288:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c); 6291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c); 6293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6294:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 112 6302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 6305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 6307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6309:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6310:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6312:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Nothing to do */ 6313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6315:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 6317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief I2C Slave complete process. 6318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c I2C handle. 6319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6320:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 6321:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 6322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 6325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 6326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 6328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear STOP Flag */ 6330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6331:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 6333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 6334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 6336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 6337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 6341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 6342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (tmpstate == HAL_I2C_STATE_LISTEN) 6344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT | I2C_XFER_RX_IT); 6346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6349:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Do nothing */ 6351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6353:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 6354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6355:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 113 6359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 6360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6362:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 6363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 6364:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable DMA Request */ 6366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx); 6371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6372:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 6374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable DMA Request */ 6376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6379:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx); 6381:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6382:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Do nothing */ 6386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Store Last receive data if any */ 6389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) 6390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6391:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 6392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 6393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Read data from RXDR */ 6395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 6396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6397:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 6398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 6399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 6401:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 6403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 6404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6407:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */ 6408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 6409:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 6415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) ARM GAS /tmp/ccSHpINd.s page 114 6416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check that I2C transfer finished */ 6418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 6419:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Mean XferCount == 0*/ 6420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* So clear Flag NACKF only */ 6421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 6424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 6425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 6426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 6428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 6429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 6431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 6433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 6436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6441:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 6445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6446:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6447:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 6451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 6452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6453:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6454:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6456:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 6458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6467:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) 6469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 115 6473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 6475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 6477:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 6478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6479:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 6481:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */ 6483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6486:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6488:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 6495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 6497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6499:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6504:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6508:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6510:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 6511:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6512:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 6513:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6516:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6523:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 6526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 6528:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6529:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 116 6530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 6533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief I2C Listen complete process. 6534:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c I2C handle. 6535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 6537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 6538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6539:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset handle parameters */ 6541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Store Last receive data if any */ 6548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET) 6549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Read data from RXDR */ 6551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 6552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Increment Buffer pointer */ 6554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr++; 6555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 6557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 6559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 6560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6561:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6563:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6565:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6566:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable all Interrupts*/ 6567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6569:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACK Flag */ 6570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6571:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6573:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6577:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 6578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 6580:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6582:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 6584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief I2C interrupts error process. 6585:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c I2C handle. 6586:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param ErrorCode Error code to handle. ARM GAS /tmp/ccSHpINd.s page 117 6587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 6588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 6589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) 6590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 6592:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmppreviousstate; 6594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset handle parameters */ 6596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = 0U; 6599:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set new error code */ 6601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode; 6602:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6603:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Interrupts */ 6604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) || 6605:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 6606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */ 6609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6610:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */ 6612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 6614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6617:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable all interrupts */ 6618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6620:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 6621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */ 6624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* This change will be do later */ 6625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT) 6626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */ 6628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6629:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6630:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if a STOPF is detected */ 6631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) 6632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 6634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6635:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6638:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear STOP Flag */ 6640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 118 6644:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6647:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA TX transfer if any */ 6648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState; 6649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 6651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 6652:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 6654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6656:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6657:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) 6659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6660:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 6663:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6666:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA TX */ 6668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 6669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 6671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 6672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6673:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6674:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6676:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6678:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6679:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA RX transfer if any */ 6680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \ 6681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 6682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 6684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6686:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) 6689:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6690:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6691:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 6693:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6695:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6696:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Abort DMA RX */ 6698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 6699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ ARM GAS /tmp/ccSHpINd.s page 119 6701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 6702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6703:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6705:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6707:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6710:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 6716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief I2C Error callback treatment. 6717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c I2C handle. 6718:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 6719:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 6720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c) 6721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 6723:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6729:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6730:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6731:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6732:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c); 6733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); 6735:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6738:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6740:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 6742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6744:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6745:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6746:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c); 6747:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #else 6748:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); 6749:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6751:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 6754:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief I2C Tx data register flush process. 6755:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c I2C handle. 6756:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 6757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ ARM GAS /tmp/ccSHpINd.s page 120 6758:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) 6759:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 28 .loc 1 6759 1 view -0 29 .cfi_startproc 30 @ args = 0, pretend = 0, frame = 0 31 @ frame_needed = 0, uses_anonymous_args = 0 32 @ link register save eliminated. 6760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If a pending TXIS flag is set */ 6761:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */ 6762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) 33 .loc 1 6762 3 view .LVU1 34 .loc 1 6762 7 is_stmt 0 view .LVU2 35 0000 0368 ldr r3, [r0] 36 0002 9A69 ldr r2, [r3, #24] 37 .loc 1 6762 6 view .LVU3 38 0004 12F0020F tst r2, #2 39 0008 01D0 beq .L2 6763:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6764:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U; 40 .loc 1 6764 5 is_stmt 1 view .LVU4 41 .loc 1 6764 26 is_stmt 0 view .LVU5 42 000a 0022 movs r2, #0 43 000c 9A62 str r2, [r3, #40] 44 .L2: 6765:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6766:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register if not empty */ 6768:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) 45 .loc 1 6768 3 is_stmt 1 view .LVU6 46 .loc 1 6768 7 is_stmt 0 view .LVU7 47 000e 0368 ldr r3, [r0] 48 0010 9A69 ldr r2, [r3, #24] 49 .loc 1 6768 6 view .LVU8 50 0012 12F0010F tst r2, #1 51 0016 03D1 bne .L1 6769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6770:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); 52 .loc 1 6770 5 is_stmt 1 view .LVU9 53 0018 9A69 ldr r2, [r3, #24] 54 001a 42F00102 orr r2, r2, #1 55 001e 9A61 str r2, [r3, #24] 56 .L1: 6771:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 57 .loc 1 6772 1 is_stmt 0 view .LVU10 58 0020 7047 bx lr 59 .cfi_endproc 60 .LFE206: 62 .section .text.I2C_TransferConfig,"ax",%progbits 63 .align 1 64 .syntax unified 65 .thumb 66 .thumb_func 68 I2C_TransferConfig: 69 .LVL1: 70 .LFB218: 6773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 121 6774:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 6775:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback. 6776:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hdma DMA handle 6777:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 6778:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 6779:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma) 6780:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6781:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6782:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6783:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable DMA Request */ 6785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6786:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6787:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6789:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable STOP interrupt */ 6791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6793:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6795:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6796:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update Buffer pointer */ 6797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6804:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6809:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the DMA stream */ 6810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 6811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6812:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6814:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6816:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6818:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable TC interrupts */ 6819:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6823:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6824:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 6826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback. 6827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hdma DMA handle 6828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 6829:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 6830:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) ARM GAS /tmp/ccSHpINd.s page 122 6831:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6832:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6833:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6834:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 6837:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable DMA Request */ 6839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6840:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6841:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6842:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6843:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6845:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6846:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6847:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6848:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6849:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6850:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6851:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6852:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6853:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6854:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 6855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback. 6856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hdma DMA handle 6857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 6858:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 6859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma) 6860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6861:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6863:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6864:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable DMA Request */ 6865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6867:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6868:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6870:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable STOP interrupt */ 6871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6873:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6874:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6876:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update Buffer pointer */ 6877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6878:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6879:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6881:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6882:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Errata workaround 170323 */ 6883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) 6884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = 1U; 6886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6887:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else ARM GAS /tmp/ccSHpINd.s page 123 6888:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6889:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6892:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6893:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6896:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6897:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable the DMA stream */ 6898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, 6899:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6901:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6902:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6903:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6904:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6906:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable TC interrupts */ 6907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6910:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6911:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6913:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 6914:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback. 6915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hdma DMA handle 6916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 6917:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 6918:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma) 6919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6920:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \ 6925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 6926:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6927:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable DMA Request */ 6928:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6929:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6932:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 6934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6936:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6937:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6938:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6941:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6942:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 6943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief DMA I2C communication error callback. 6944:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hdma DMA handle ARM GAS /tmp/ccSHpINd.s page 124 6945:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 6946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 6947:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma) 6948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U; 6950:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6951:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6953:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6954:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U) 6956:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** treatdmaerror = 1U; 6958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6959:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6963:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) 6964:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6965:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** treatdmaerror = 1U; 6966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6967:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6968:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if a FIFO error is detected, if true normal use case, so no specific action to perform * 6970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (!((HAL_DMA_GetError(hdma) == HAL_DMA_ERROR_FE)) && (treatdmaerror != 0U)) 6971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable Acknowledge */ 6973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6979:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 6982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief DMA I2C communication abort callback 6983:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure). 6984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hdma DMA handle. 6985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 6986:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 6987:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) 6988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6989:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset AbortCpltCallback */ 6993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6996:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 7000:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 125 7002:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 7003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 7007:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. It waits 7008:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * until a flag is no longer in the specified status. 7009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7010:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7011:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check. 7012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Status The actual Flag status (SET or RESET). 7013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Timeout Timeout duration 7014:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Tickstart Tick start value 7015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 7016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 7017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 7018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart) 7019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 7021:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7022:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if an error is detected */ 7023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7025:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 7026:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7028:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check for the Timeout */ 7029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 7030:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 7032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)) 7034:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7036:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7038:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7039:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 7040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 7042:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7046:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 7047:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7049:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 7050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag. 7051:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7052:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Timeout Timeout duration 7054:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Tickstart Tick start value 7055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 7056:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 7057:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 7058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Tickstart) ARM GAS /tmp/ccSHpINd.s page 126 7059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 7061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7062:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if an error is detected */ 7063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7064:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7065:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 7066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7067:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7068:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check for the Timeout */ 7069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 7070:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 7072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7073:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)) 7074:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7076:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7078:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7079:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 7080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 7083:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7085:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7086:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 7088:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7090:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 7091:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. 7092:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7094:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Timeout Timeout duration 7095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Tickstart Tick start value 7096:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 7097:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 7098:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 7099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Tickstart) 7100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 7102:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if an error is detected */ 7104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 7107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7108:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7109:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check for the Timeout */ 7110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 7111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)) 7113:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7114:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; ARM GAS /tmp/ccSHpINd.s page 127 7116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7117:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 7119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7120:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 7122:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7123:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7124:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_OK; 7126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7127:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 7129:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. 7130:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Timeout Timeout duration 7133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Tickstart Tick start value 7134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 7135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 7136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 7137:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Tickstart) 7138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 7140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) && (status == HAL_OK)) 7142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if an error is detected */ 7144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7146:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 7147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if a STOPF is detected */ 7150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) && (status == HAL_OK)) 7151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7152:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if an RXNE is pending */ 7153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Store Last receive data if any */ 7154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U)) 7155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Return HAL_OK */ 7157:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */ 7158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_OK; 7159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7160:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7161:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check a no-acknowledge have been detected */ 7162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 7163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 7165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 7166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear STOP Flag */ 7168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 7169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 7171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 7172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 128 7173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7174:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 7177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 7180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 7182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7184:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check for the Timeout */ 7188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) && (status == HAL_OK)) 7189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)) 7191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7193:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7195:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 7196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 7199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return status; 7203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7205:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 7206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief This function handles errors detection during an I2C Communication. 7207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Timeout Timeout duration 7210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Tickstart Tick start value 7211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval HAL status 7212:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 7213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Ti 7214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 7216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 7217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t error_code = 0; 7218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 7219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmp1; 7220:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 7221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF)) 7223:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear NACKF Flag */ 7225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 7226:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Wait until STOP Flag is set or timeout occurred */ 7228:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */ 7229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) ARM GAS /tmp/ccSHpINd.s page 129 7230:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7231:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check for the Timeout */ 7232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 7233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 7235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP); 7237:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 7238:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* In case of I2C still busy, try to regenerate a STOP manually */ 7240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \ 7241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 7242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 7243:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Generate Stop */ 7245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 7246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Update Tick with new reference */ 7248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 7249:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 7252:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7253:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check for the Timeout */ 7254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF) 7255:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7256:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_TIMEOUT; 7257:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 7259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** break; 7261:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7263:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7266:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* In case STOP Flag is detected, clear it */ 7268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (status == HAL_OK) 7269:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7270:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear STOP Flag */ 7271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 7272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_AF; 7275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 7277:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Refresh Content of Status register */ 7280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** itflag = hi2c->Instance->ISR; 7281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Then verify if an additional errors occurs */ 7283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if a Bus error occurred */ 7284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR)) 7285:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR; ARM GAS /tmp/ccSHpINd.s page 130 7287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7288:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear BERR flag */ 7289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 7290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 7292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7294:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if an Over-Run/Under-Run error occurred */ 7295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR)) 7296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_OVR; 7298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear OVR flag */ 7300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 7301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 7303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check if an Arbitration Loss error occurred */ 7306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO)) 7307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_ARLO; 7309:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7310:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear ARLO flag */ 7311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 7312:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** status = HAL_ERROR; 7314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7315:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (status != HAL_OK) 7317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Flush TX register */ 7319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 7320:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7321:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 7322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 7323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= error_code; 7325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Process Unlocked */ 7329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7331:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return status; 7333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 7336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar 7337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c I2C handle. 7338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed. 7339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed. 7340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * This parameter must be a value between 0 and 255. 7341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation. 7342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * This parameter can be one of the following values: 7343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode . ARM GAS /tmp/ccSHpINd.s page 131 7344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode. 7345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode. 7346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation. 7347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * This parameter can be one of the following values: 7348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition. 7349:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0). 7350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request. 7351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. 7352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 7353:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 7354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 7355:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Request) 7356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 71 .loc 1 7356 1 is_stmt 1 view -0 72 .cfi_startproc 73 @ args = 4, pretend = 0, frame = 0 74 @ frame_needed = 0, uses_anonymous_args = 0 75 @ link register save eliminated. 76 .loc 1 7356 1 is_stmt 0 view .LVU12 77 0000 10B4 push {r4} 78 .LCFI0: 79 .cfi_def_cfa_offset 4 80 .cfi_offset 4, -4 81 0002 019C ldr r4, [sp, #4] 7357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 7358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 82 .loc 1 7358 3 is_stmt 1 view .LVU13 7359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode)); 83 .loc 1 7359 3 view .LVU14 7360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request)); 84 .loc 1 7360 3 view .LVU15 7361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7362:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 7363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ 85 .loc 1 7363 3 view .LVU16 86 .loc 1 7363 52 is_stmt 0 view .LVU17 87 0004 C1F30901 ubfx r1, r1, #0, #10 88 .LVL2: 89 .loc 1 7363 68 view .LVU18 90 0008 41EA0241 orr r1, r1, r2, lsl #16 7364:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 91 .loc 1 7364 88 view .LVU19 92 000c 1943 orrs r1, r1, r3 7363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 93 .loc 1 7363 19 view .LVU20 94 000e 2143 orrs r1, r1, r4 7363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 95 .loc 1 7363 12 view .LVU21 96 0010 21F00041 bic r1, r1, #-2147483648 97 .LVL3: 7365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U)); 7366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* update CR2 register */ 7368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, \ 98 .loc 1 7368 3 is_stmt 1 view .LVU22 99 0014 0268 ldr r2, [r0] 100 .LVL4: ARM GAS /tmp/ccSHpINd.s page 132 101 .loc 1 7368 3 is_stmt 0 view .LVU23 102 0016 5368 ldr r3, [r2, #4] 103 .LVL5: 104 .loc 1 7368 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] 7369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \ 7370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \ 7371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), tmp); 7372:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 114 .loc 1 7372 1 view .LVU25 115 0036 5DF8044B ldr r4, [sp], #4 116 .LCFI1: 117 .cfi_restore 4 118 .cfi_def_cfa_offset 0 119 .LVL6: 120 .loc 1 7372 1 view .LVU26 121 003a 7047 bx lr 122 .cfi_endproc 123 .LFE218: 125 .section .text.I2C_Enable_IRQ,"ax",%progbits 126 .align 1 127 .syntax unified 128 .thumb 129 .thumb_func 131 I2C_Enable_IRQ: 132 .LVL7: 133 .LFB219: 7373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 7375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts. 7376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 7379:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 7380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 7381:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 7382:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 134 .loc 1 7382 1 is_stmt 1 view -0 135 .cfi_startproc 136 @ args = 0, pretend = 0, frame = 0 137 @ frame_needed = 0, uses_anonymous_args = 0 138 @ link register save eliminated. 7383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpisr = 0U; 139 .loc 1 7383 3 view .LVU28 7384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Master_ISR_DMA) && \ 140 .loc 1 7385 3 view .LVU29 141 .loc 1 7385 12 is_stmt 0 view .LVU30 142 0000 436B ldr r3, [r0, #52] ARM GAS /tmp/ccSHpINd.s page 133 143 .loc 1 7385 6 view .LVU31 144 0002 234A ldr r2, .L24 145 0004 9342 cmp r3, r2 146 0006 1FD0 beq .L7 147 .loc 1 7385 45 discriminator 1 view .LVU32 148 0008 224A ldr r2, .L24+4 149 000a 9342 cmp r3, r2 150 000c 1CD0 beq .L7 7386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \ 151 .loc 1 7386 44 view .LVU33 152 000e 224A ldr r2, .L24+8 153 0010 9342 cmp r3, r2 154 0012 19D0 beq .L7 7387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->XferISR != I2C_Mem_ISR_DMA)) 7388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 155 .loc 1 7389 5 is_stmt 1 view .LVU34 156 .loc 1 7389 8 is_stmt 0 view .LVU35 157 0014 11F4004F tst r1, #32768 158 0018 11D1 bne .L18 7383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 159 .loc 1 7383 12 view .LVU36 160 001a 0023 movs r3, #0 161 .L8: 162 .LVL8: 7390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7391:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 7392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 163 .loc 1 7395 5 is_stmt 1 view .LVU37 164 .loc 1 7395 8 is_stmt 0 view .LVU38 165 001c 11F0010F tst r1, #1 166 0020 01D0 beq .L9 7396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7397:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 7398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; 167 .loc 1 7398 7 is_stmt 1 view .LVU39 168 .loc 1 7398 14 is_stmt 0 view .LVU40 169 0022 43F0F203 orr r3, r3, #242 170 .LVL9: 171 .L9: 7399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7401:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 172 .loc 1 7401 5 is_stmt 1 view .LVU41 173 .loc 1 7401 8 is_stmt 0 view .LVU42 174 0026 11F0020F tst r1, #2 175 002a 01D0 beq .L10 7402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 7404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; 176 .loc 1 7404 7 is_stmt 1 view .LVU43 177 .loc 1 7404 14 is_stmt 0 view .LVU44 178 002c 43F0F403 orr r3, r3, #244 179 .LVL10: ARM GAS /tmp/ccSHpINd.s page 134 180 .L10: 7405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7407:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 181 .loc 1 7407 5 is_stmt 1 view .LVU45 182 .loc 1 7407 8 is_stmt 0 view .LVU46 183 0030 1029 cmp r1, #16 184 0032 06D0 beq .L20 185 .L11: 7408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7409:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 186 .loc 1 7413 5 is_stmt 1 view .LVU47 187 .loc 1 7413 8 is_stmt 0 view .LVU48 188 0034 2029 cmp r1, #32 189 0036 1BD1 bne .L12 7414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable STOP interrupts */ 7416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 190 .loc 1 7416 7 is_stmt 1 view .LVU49 191 .loc 1 7416 14 is_stmt 0 view .LVU50 192 0038 43F02003 orr r3, r3, #32 193 .LVL11: 194 .loc 1 7416 14 view .LVU51 195 003c 18E0 b .L12 196 .LVL12: 197 .L18: 7392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 198 .loc 1 7392 14 view .LVU52 199 003e B823 movs r3, #184 200 0040 ECE7 b .L8 201 .LVL13: 202 .L20: 7410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 203 .loc 1 7410 7 is_stmt 1 view .LVU53 7410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 204 .loc 1 7410 14 is_stmt 0 view .LVU54 205 0042 43F09003 orr r3, r3, #144 206 .LVL14: 7410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 207 .loc 1 7410 14 view .LVU55 208 0046 F5E7 b .L11 209 .LVL15: 210 .L7: 7417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7419:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 7421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 211 .loc 1 7422 5 is_stmt 1 view .LVU56 212 .loc 1 7422 8 is_stmt 0 view .LVU57 213 0048 11F4004F tst r1, #32768 214 004c 15D1 bne .L19 ARM GAS /tmp/ccSHpINd.s page 135 7383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 215 .loc 1 7383 12 view .LVU58 216 004e 0023 movs r3, #0 217 .L13: 218 .LVL16: 7423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 7425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 219 .loc 1 7428 5 is_stmt 1 view .LVU59 220 .loc 1 7428 8 is_stmt 0 view .LVU60 221 0050 11F0010F tst r1, #1 222 0054 01D0 beq .L14 7429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 7431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; 223 .loc 1 7431 7 is_stmt 1 view .LVU61 224 .loc 1 7431 14 is_stmt 0 view .LVU62 225 0056 43F0F203 orr r3, r3, #242 226 .LVL17: 227 .L14: 7432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 228 .loc 1 7434 5 is_stmt 1 view .LVU63 229 .loc 1 7434 8 is_stmt 0 view .LVU64 230 005a 11F0020F tst r1, #2 231 005e 01D0 beq .L15 7435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 7437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; 232 .loc 1 7437 7 is_stmt 1 view .LVU65 233 .loc 1 7437 14 is_stmt 0 view .LVU66 234 0060 43F0F403 orr r3, r3, #244 235 .LVL18: 236 .L15: 7438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 237 .loc 1 7440 5 is_stmt 1 view .LVU67 238 .loc 1 7440 8 is_stmt 0 view .LVU68 239 0064 1029 cmp r1, #16 240 0066 0AD0 beq .L21 241 .L16: 7441:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7446:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 242 .loc 1 7446 5 is_stmt 1 view .LVU69 243 .loc 1 7446 8 is_stmt 0 view .LVU70 244 0068 2029 cmp r1, #32 245 006a 0BD0 beq .L22 246 .L17: ARM GAS /tmp/ccSHpINd.s page 136 7447:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable STOP interrupts */ 7449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI); 7450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 247 .loc 1 7452 5 is_stmt 1 view .LVU71 248 .loc 1 7452 8 is_stmt 0 view .LVU72 249 006c 4029 cmp r1, #64 250 006e 0CD0 beq .L23 251 .L12: 7453:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7454:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable TC interrupts */ 7455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 7456:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable interrupts only at the end */ 7460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */ 7461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* all interrupts requested done */ 7462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr); 252 .loc 1 7462 3 is_stmt 1 view .LVU73 253 0070 0168 ldr r1, [r0] 254 .LVL19: 255 .loc 1 7462 3 is_stmt 0 view .LVU74 256 0072 0A68 ldr r2, [r1] 257 0074 1343 orrs r3, r3, r2 258 .LVL20: 259 .loc 1 7462 3 view .LVU75 260 0076 0B60 str r3, [r1] 7463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 261 .loc 1 7463 1 view .LVU76 262 0078 7047 bx lr 263 .LVL21: 264 .L19: 7425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 265 .loc 1 7425 14 view .LVU77 266 007a B823 movs r3, #184 267 007c E8E7 b .L13 268 .LVL22: 269 .L21: 7443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 270 .loc 1 7443 7 is_stmt 1 view .LVU78 7443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 271 .loc 1 7443 14 is_stmt 0 view .LVU79 272 007e 43F09003 orr r3, r3, #144 273 .LVL23: 7443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 274 .loc 1 7443 14 view .LVU80 275 0082 F1E7 b .L16 276 .L22: 7449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 277 .loc 1 7449 7 is_stmt 1 view .LVU81 7449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 278 .loc 1 7449 14 is_stmt 0 view .LVU82 279 0084 43F06003 orr r3, r3, #96 280 .LVL24: ARM GAS /tmp/ccSHpINd.s page 137 7449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 281 .loc 1 7449 14 view .LVU83 282 0088 F0E7 b .L17 283 .L23: 7455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 284 .loc 1 7455 7 is_stmt 1 view .LVU84 7455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 285 .loc 1 7455 14 is_stmt 0 view .LVU85 286 008a 43F04003 orr r3, r3, #64 287 .LVL25: 7455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 288 .loc 1 7455 14 view .LVU86 289 008e EFE7 b .L12 290 .L25: 291 .align 2 292 .L24: 293 0090 00000000 .word I2C_Master_ISR_DMA 294 0094 00000000 .word I2C_Slave_ISR_DMA 295 0098 00000000 .word I2C_Mem_ISR_DMA 296 .cfi_endproc 297 .LFE219: 299 .section .text.I2C_Disable_IRQ,"ax",%progbits 300 .align 1 301 .syntax unified 302 .thumb 303 .thumb_func 305 I2C_Disable_IRQ: 306 .LVL26: 307 .LFB220: 7464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 7466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts. 7467:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 7470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 7471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 7472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 7473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 308 .loc 1 7473 1 is_stmt 1 view -0 309 .cfi_startproc 310 @ args = 0, pretend = 0, frame = 0 311 @ frame_needed = 0, uses_anonymous_args = 0 312 @ link register save eliminated. 7474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpisr = 0U; 313 .loc 1 7474 3 view .LVU88 7475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 314 .loc 1 7476 3 view .LVU89 315 .loc 1 7476 6 is_stmt 0 view .LVU90 316 0000 11F0010F tst r1, #1 317 0004 09D0 beq .L33 7477:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable TC and TXI interrupts */ 7479:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI; 318 .loc 1 7479 5 is_stmt 1 view .LVU91 319 .LVL27: ARM GAS /tmp/ccSHpINd.s page 138 7480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7481:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 320 .loc 1 7481 5 view .LVU92 321 .loc 1 7481 24 is_stmt 0 view .LVU93 322 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 323 .loc 1 7481 8 view .LVU94 324 000a 03F02803 and r3, r3, #40 325 000e 282B cmp r3, #40 326 0010 01D0 beq .L36 7482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 7484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 327 .loc 1 7484 14 view .LVU95 328 0012 F223 movs r3, #242 329 0014 02E0 b .L27 330 .L36: 7479:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 331 .loc 1 7479 12 view .LVU96 332 0016 4223 movs r3, #66 333 0018 00E0 b .L27 334 .LVL28: 335 .L33: 7474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 336 .loc 1 7474 12 view .LVU97 337 001a 0023 movs r3, #0 338 .LVL29: 339 .L27: 7485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7486:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7488:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 340 .loc 1 7488 3 is_stmt 1 view .LVU98 341 .loc 1 7488 6 is_stmt 0 view .LVU99 342 001c 11F0020F tst r1, #2 343 0020 09D0 beq .L28 7489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable TC and RXI interrupts */ 7491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI; 344 .loc 1 7491 5 is_stmt 1 view .LVU100 345 .loc 1 7491 12 is_stmt 0 view .LVU101 346 0022 43F0440C orr ip, r3, #68 347 .LVL30: 7492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 348 .loc 1 7493 5 is_stmt 1 view .LVU102 349 .loc 1 7493 24 is_stmt 0 view .LVU103 350 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 351 .loc 1 7493 8 view .LVU104 352 002a 02F02802 and r2, r2, #40 353 002e 282A cmp r2, #40 354 0030 10D0 beq .L35 7494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 7496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 355 .loc 1 7496 7 is_stmt 1 view .LVU105 356 .loc 1 7496 14 is_stmt 0 view .LVU106 357 0032 43F0F403 orr r3, r3, #244 ARM GAS /tmp/ccSHpINd.s page 139 358 .LVL31: 359 .L28: 7497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7499:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 360 .loc 1 7500 3 is_stmt 1 view .LVU107 361 .loc 1 7500 6 is_stmt 0 view .LVU108 362 0036 11F4004F tst r1, #32768 363 003a 0DD1 bne .L37 364 .L29: 7501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */ 7503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7504:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 365 .loc 1 7506 3 is_stmt 1 view .LVU109 366 .loc 1 7506 6 is_stmt 0 view .LVU110 367 003c 1029 cmp r1, #16 368 003e 0ED0 beq .L38 369 .L30: 7507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7508:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7510:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7511:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7512:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 370 .loc 1 7512 3 is_stmt 1 view .LVU111 371 .loc 1 7512 6 is_stmt 0 view .LVU112 372 0040 2029 cmp r1, #32 373 0042 0FD0 beq .L39 374 .L31: 7513:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable STOP interrupts */ 7515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 7516:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 375 .loc 1 7518 3 is_stmt 1 view .LVU113 376 .loc 1 7518 6 is_stmt 0 view .LVU114 377 0044 4029 cmp r1, #64 378 0046 10D0 beq .L40 379 .L32: 7519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Enable TC interrupts */ 7521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 7522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7523:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Disable interrupts only at the end */ 7525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */ 7526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* all disable interrupts request are not done */ 7527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr); 380 .loc 1 7527 3 is_stmt 1 view .LVU115 381 0048 0168 ldr r1, [r0] 382 .LVL32: 383 .loc 1 7527 3 is_stmt 0 view .LVU116 ARM GAS /tmp/ccSHpINd.s page 140 384 004a 0A68 ldr r2, [r1] 385 004c 22EA0303 bic r3, r2, r3 386 .LVL33: 387 .loc 1 7527 3 view .LVU117 388 0050 0B60 str r3, [r1] 7528:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 389 .loc 1 7528 1 view .LVU118 390 0052 7047 bx lr 391 .LVL34: 392 .L35: 7491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 393 .loc 1 7491 12 view .LVU119 394 0054 6346 mov r3, ip 395 0056 EEE7 b .L28 396 .LVL35: 397 .L37: 7503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 398 .loc 1 7503 5 is_stmt 1 view .LVU120 7503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 399 .loc 1 7503 12 is_stmt 0 view .LVU121 400 0058 43F0B803 orr r3, r3, #184 401 .LVL36: 7503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 402 .loc 1 7503 12 view .LVU122 403 005c EEE7 b .L29 404 .L38: 7509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 405 .loc 1 7509 5 is_stmt 1 view .LVU123 7509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 406 .loc 1 7509 12 is_stmt 0 view .LVU124 407 005e 43F09003 orr r3, r3, #144 408 .LVL37: 7509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 409 .loc 1 7509 12 view .LVU125 410 0062 EDE7 b .L30 411 .L39: 7515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 412 .loc 1 7515 5 is_stmt 1 view .LVU126 7515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 413 .loc 1 7515 12 is_stmt 0 view .LVU127 414 0064 43F02003 orr r3, r3, #32 415 .LVL38: 7515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 416 .loc 1 7515 12 view .LVU128 417 0068 ECE7 b .L31 418 .L40: 7521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 419 .loc 1 7521 5 is_stmt 1 view .LVU129 7521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 420 .loc 1 7521 12 is_stmt 0 view .LVU130 421 006a 43F04003 orr r3, r3, #64 422 .LVL39: 7521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 423 .loc 1 7521 12 view .LVU131 424 006e EBE7 b .L32 425 .cfi_endproc 426 .LFE220: ARM GAS /tmp/ccSHpINd.s page 141 428 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits 429 .align 1 430 .syntax unified 431 .thumb 432 .thumb_func 434 I2C_ConvertOtherXferOptions: 435 .LVL40: 436 .LFB221: 7529:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 7531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions. 7532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hi2c I2C handle. 7533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @retval None 7534:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** */ 7535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) 7536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 437 .loc 1 7536 1 is_stmt 1 view -0 438 .cfi_startproc 439 @ args = 0, pretend = 0, frame = 0 440 @ frame_needed = 0, uses_anonymous_args = 0 441 @ link register save eliminated. 7537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */ 7538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 7539:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */ 7540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME) 442 .loc 1 7540 3 view .LVU133 443 .loc 1 7540 11 is_stmt 0 view .LVU134 444 0000 C36A ldr r3, [r0, #44] 445 .loc 1 7540 6 view .LVU135 446 0002 AA2B cmp r3, #170 447 0004 04D0 beq .L44 7541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME; 7543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */ 7545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 7546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */ 7547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */ 7548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) 448 .loc 1 7548 8 is_stmt 1 view .LVU136 449 .loc 1 7548 16 is_stmt 0 view .LVU137 450 0006 C36A ldr r3, [r0, #44] 451 .loc 1 7548 11 view .LVU138 452 0008 B3F52A4F cmp r3, #43520 453 000c 03D0 beq .L45 454 .L41: 7549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; 7551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 7553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Nothing to do */ 7555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 455 .loc 1 7556 1 view .LVU139 456 000e 7047 bx lr 457 .L44: ARM GAS /tmp/ccSHpINd.s page 142 7542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 458 .loc 1 7542 5 is_stmt 1 view .LVU140 7542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 459 .loc 1 7542 23 is_stmt 0 view .LVU141 460 0010 0023 movs r3, #0 461 0012 C362 str r3, [r0, #44] 462 0014 7047 bx lr 463 .L45: 7550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 464 .loc 1 7550 5 is_stmt 1 view .LVU142 7550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 465 .loc 1 7550 23 is_stmt 0 view .LVU143 466 0016 4FF00073 mov r3, #33554432 467 001a C362 str r3, [r0, #44] 7555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 468 .loc 1 7555 3 is_stmt 1 view .LVU144 469 .loc 1 7556 1 is_stmt 0 view .LVU145 470 001c F7E7 b .L41 471 .cfi_endproc 472 .LFE221: 474 .section .text.I2C_IsErrorOccurred,"ax",%progbits 475 .align 1 476 .syntax unified 477 .thumb 478 .thumb_func 480 I2C_IsErrorOccurred: 481 .LVL41: 482 .LFB217: 7214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 483 .loc 1 7214 1 is_stmt 1 view -0 484 .cfi_startproc 485 @ args = 0, pretend = 0, frame = 0 486 @ frame_needed = 0, uses_anonymous_args = 0 7214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 487 .loc 1 7214 1 is_stmt 0 view .LVU147 488 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 489 .LCFI2: 490 .cfi_def_cfa_offset 24 491 .cfi_offset 4, -24 492 .cfi_offset 5, -20 493 .cfi_offset 6, -16 494 .cfi_offset 7, -12 495 .cfi_offset 8, -8 496 .cfi_offset 14, -4 497 0004 0446 mov r4, r0 7215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 498 .loc 1 7215 3 is_stmt 1 view .LVU148 499 .LVL42: 7216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t error_code = 0; 500 .loc 1 7216 3 view .LVU149 7216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t error_code = 0; 501 .loc 1 7216 27 is_stmt 0 view .LVU150 502 0006 0368 ldr r3, [r0] 7216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t error_code = 0; 503 .loc 1 7216 12 view .LVU151 504 0008 9E69 ldr r6, [r3, #24] 505 .LVL43: ARM GAS /tmp/ccSHpINd.s page 143 7217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 506 .loc 1 7217 3 is_stmt 1 view .LVU152 7218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmp1; 507 .loc 1 7218 3 view .LVU153 7219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 508 .loc 1 7219 3 view .LVU154 7220:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 509 .loc 1 7220 3 view .LVU155 7222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 510 .loc 1 7222 3 view .LVU156 7222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 511 .loc 1 7222 6 is_stmt 0 view .LVU157 512 000a 16F01006 ands r6, r6, #16 513 .LVL44: 7222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 514 .loc 1 7222 6 view .LVU158 515 000e 7ED0 beq .L63 516 0010 0D46 mov r5, r1 517 0012 9046 mov r8, r2 7225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 518 .loc 1 7225 5 is_stmt 1 view .LVU159 519 0014 1022 movs r2, #16 520 .LVL45: 7225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 521 .loc 1 7225 5 is_stmt 0 view .LVU160 522 0016 DA61 str r2, [r3, #28] 7229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 523 .loc 1 7229 5 is_stmt 1 view .LVU161 7217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 524 .loc 1 7217 12 is_stmt 0 view .LVU162 525 0018 0026 movs r6, #0 7215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 526 .loc 1 7215 21 view .LVU163 527 001a 3746 mov r7, r6 528 .LVL46: 529 .L49: 7229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 530 .loc 1 7229 64 is_stmt 1 view .LVU164 7229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 531 .loc 1 7229 13 is_stmt 0 view .LVU165 532 001c 2368 ldr r3, [r4] 533 001e 9869 ldr r0, [r3, #24] 7229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 534 .loc 1 7229 64 view .LVU166 535 0020 10F0200F tst r0, #32 536 0024 32D1 bne .L55 7229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 537 .loc 1 7229 64 discriminator 1 view .LVU167 538 0026 8FBB cbnz r7, .L55 7232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 539 .loc 1 7232 7 is_stmt 1 view .LVU168 7232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 540 .loc 1 7232 10 is_stmt 0 view .LVU169 541 0028 B5F1FF3F cmp r5, #-1 542 002c F6D0 beq .L49 7234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 543 .loc 1 7234 9 is_stmt 1 view .LVU170 ARM GAS /tmp/ccSHpINd.s page 144 7234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 544 .loc 1 7234 15 is_stmt 0 view .LVU171 545 002e FFF7FEFF bl HAL_GetTick 546 .LVL47: 7234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 547 .loc 1 7234 29 discriminator 1 view .LVU172 548 0032 A0EB0800 sub r0, r0, r8 7234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 549 .loc 1 7234 12 discriminator 1 view .LVU173 550 0036 A842 cmp r0, r5 551 0038 01D8 bhi .L50 7234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 552 .loc 1 7234 53 discriminator 1 view .LVU174 553 003a 002D cmp r5, #0 554 003c EED1 bne .L49 555 .L50: 7236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 556 .loc 1 7236 11 is_stmt 1 view .LVU175 7236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 557 .loc 1 7236 33 is_stmt 0 view .LVU176 558 003e 2168 ldr r1, [r4] 7236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 559 .loc 1 7236 43 view .LVU177 560 0040 4A68 ldr r2, [r1, #4] 7236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 561 .loc 1 7236 16 view .LVU178 562 0042 02F48042 and r2, r2, #16384 563 .LVL48: 7237:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 564 .loc 1 7237 11 is_stmt 1 view .LVU179 7237:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 565 .loc 1 7237 16 is_stmt 0 view .LVU180 566 0046 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 567 004a DBB2 uxtb r3, r3 568 .LVL49: 7240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 569 .loc 1 7240 11 is_stmt 1 view .LVU181 7240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 570 .loc 1 7240 16 is_stmt 0 view .LVU182 571 004c 8869 ldr r0, [r1, #24] 7240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 572 .loc 1 7240 14 view .LVU183 573 004e 10F4004F tst r0, #32768 574 0052 04D0 beq .L53 7242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 575 .loc 1 7242 21 view .LVU184 576 0054 203B subs r3, r3, #32 577 .LVL50: 7242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 578 .loc 1 7242 21 view .LVU185 579 0056 18BF it ne 580 0058 0123 movne r3, #1 581 .LVL51: 7241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 582 .loc 1 7241 38 view .LVU186 583 005a 02B9 cbnz r2, .L53 584 005c 73B9 cbnz r3, .L65 ARM GAS /tmp/ccSHpINd.s page 145 585 .LVL52: 586 .L53: 7251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 587 .loc 1 7251 59 is_stmt 1 view .LVU187 7251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 588 .loc 1 7251 18 is_stmt 0 view .LVU188 589 005e 2368 ldr r3, [r4] 590 0060 9B69 ldr r3, [r3, #24] 7251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 591 .loc 1 7251 59 view .LVU189 592 0062 13F0200F tst r3, #32 593 0066 D9D1 bne .L49 7254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 594 .loc 1 7254 13 is_stmt 1 view .LVU190 7254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 595 .loc 1 7254 18 is_stmt 0 view .LVU191 596 0068 FFF7FEFF bl HAL_GetTick 597 .LVL53: 7254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 598 .loc 1 7254 32 discriminator 1 view .LVU192 599 006c A0EB0800 sub r0, r0, r8 7254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 600 .loc 1 7254 16 discriminator 1 view .LVU193 601 0070 1928 cmp r0, #25 602 0072 F4D9 bls .L53 7256:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 603 .loc 1 7256 15 is_stmt 1 view .LVU194 7256:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 604 .loc 1 7256 26 is_stmt 0 view .LVU195 605 0074 46F02006 orr r6, r6, #32 606 .LVL54: 7258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 607 .loc 1 7258 15 is_stmt 1 view .LVU196 7260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 608 .loc 1 7260 15 view .LVU197 7258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 609 .loc 1 7258 22 is_stmt 0 view .LVU198 610 0078 0127 movs r7, #1 7260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 611 .loc 1 7260 15 view .LVU199 612 007a CFE7 b .L49 613 .LVL55: 614 .L65: 7245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 615 .loc 1 7245 13 is_stmt 1 view .LVU200 7245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 616 .loc 1 7245 27 is_stmt 0 view .LVU201 617 007c 4B68 ldr r3, [r1, #4] 7245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 618 .loc 1 7245 33 view .LVU202 619 007e 43F48043 orr r3, r3, #16384 620 0082 4B60 str r3, [r1, #4] 7248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 621 .loc 1 7248 13 is_stmt 1 view .LVU203 7248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 622 .loc 1 7248 25 is_stmt 0 view .LVU204 623 0084 FFF7FEFF bl HAL_GetTick ARM GAS /tmp/ccSHpINd.s page 146 624 .LVL56: 7248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 625 .loc 1 7248 25 view .LVU205 626 0088 8046 mov r8, r0 627 .LVL57: 7248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 628 .loc 1 7248 25 view .LVU206 629 008a E8E7 b .L53 630 .LVL58: 631 .L55: 7268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 632 .loc 1 7268 5 is_stmt 1 view .LVU207 7268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 633 .loc 1 7268 8 is_stmt 0 view .LVU208 634 008c 0FB9 cbnz r7, .L57 7271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 635 .loc 1 7271 7 is_stmt 1 view .LVU209 636 008e 2022 movs r2, #32 637 0090 DA61 str r2, [r3, #28] 638 .L57: 7274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 639 .loc 1 7274 5 view .LVU210 7274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 640 .loc 1 7274 16 is_stmt 0 view .LVU211 641 0092 46F00406 orr r6, r6, #4 642 .LVL59: 7276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 643 .loc 1 7276 5 is_stmt 1 view .LVU212 7276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 644 .loc 1 7276 12 is_stmt 0 view .LVU213 645 0096 0125 movs r5, #1 646 .LVL60: 647 .L47: 7280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 648 .loc 1 7280 3 is_stmt 1 view .LVU214 7280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 649 .loc 1 7280 16 is_stmt 0 view .LVU215 650 0098 2268 ldr r2, [r4] 7280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 651 .loc 1 7280 10 view .LVU216 652 009a 9369 ldr r3, [r2, #24] 653 .LVL61: 7284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 654 .loc 1 7284 3 is_stmt 1 view .LVU217 7284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 655 .loc 1 7284 6 is_stmt 0 view .LVU218 656 009c 13F4807F tst r3, #256 657 00a0 05D0 beq .L58 7286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 658 .loc 1 7286 5 is_stmt 1 view .LVU219 7286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 659 .loc 1 7286 16 is_stmt 0 view .LVU220 660 00a2 46F00106 orr r6, r6, #1 661 .LVL62: 7289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 662 .loc 1 7289 5 is_stmt 1 view .LVU221 663 00a6 4FF48071 mov r1, #256 ARM GAS /tmp/ccSHpINd.s page 147 664 00aa D161 str r1, [r2, #28] 7291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 665 .loc 1 7291 5 view .LVU222 666 .LVL63: 7291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 667 .loc 1 7291 12 is_stmt 0 view .LVU223 668 00ac 0125 movs r5, #1 669 .LVL64: 670 .L58: 7295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 671 .loc 1 7295 3 is_stmt 1 view .LVU224 7295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 672 .loc 1 7295 6 is_stmt 0 view .LVU225 673 00ae 13F4806F tst r3, #1024 674 00b2 06D0 beq .L59 7297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 675 .loc 1 7297 5 is_stmt 1 view .LVU226 7297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 676 .loc 1 7297 16 is_stmt 0 view .LVU227 677 00b4 46F00806 orr r6, r6, #8 678 .LVL65: 7300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 679 .loc 1 7300 5 is_stmt 1 view .LVU228 680 00b8 2268 ldr r2, [r4] 681 00ba 4FF48061 mov r1, #1024 682 00be D161 str r1, [r2, #28] 7302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 683 .loc 1 7302 5 view .LVU229 684 .LVL66: 7302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 685 .loc 1 7302 12 is_stmt 0 view .LVU230 686 00c0 0125 movs r5, #1 687 .LVL67: 688 .L59: 7306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 689 .loc 1 7306 3 is_stmt 1 view .LVU231 7306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 690 .loc 1 7306 6 is_stmt 0 view .LVU232 691 00c2 13F4007F tst r3, #512 692 00c6 24D0 beq .L60 7308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 693 .loc 1 7308 5 is_stmt 1 view .LVU233 7308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 694 .loc 1 7308 16 is_stmt 0 view .LVU234 695 00c8 46F00206 orr r6, r6, #2 696 .LVL68: 7311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 697 .loc 1 7311 5 is_stmt 1 view .LVU235 698 00cc 2368 ldr r3, [r4] 699 .LVL69: 7311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 700 .loc 1 7311 5 is_stmt 0 view .LVU236 701 00ce 4FF40072 mov r2, #512 702 00d2 DA61 str r2, [r3, #28] 7313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 703 .loc 1 7313 5 is_stmt 1 view .LVU237 704 .LVL70: ARM GAS /tmp/ccSHpINd.s page 148 7316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 705 .loc 1 7316 3 view .LVU238 7313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 706 .loc 1 7313 12 is_stmt 0 view .LVU239 707 00d4 0125 movs r5, #1 708 .LVL71: 709 .L61: 7319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 710 .loc 1 7319 5 is_stmt 1 view .LVU240 711 00d6 2046 mov r0, r4 712 00d8 FFF7FEFF bl I2C_Flush_TXDR 713 .LVL72: 7322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 714 .loc 1 7322 5 view .LVU241 715 00dc 2268 ldr r2, [r4] 716 00de 5368 ldr r3, [r2, #4] 717 00e0 23F0FF73 bic r3, r3, #33423360 718 00e4 23F48B33 bic r3, r3, #71168 719 00e8 23F4FF73 bic r3, r3, #510 720 00ec 23F00103 bic r3, r3, #1 721 00f0 5360 str r3, [r2, #4] 7324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 722 .loc 1 7324 5 view .LVU242 7324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 723 .loc 1 7324 9 is_stmt 0 view .LVU243 724 00f2 636C ldr r3, [r4, #68] 7324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 725 .loc 1 7324 21 view .LVU244 726 00f4 3343 orrs r3, r3, r6 727 00f6 6364 str r3, [r4, #68] 7325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 728 .loc 1 7325 5 is_stmt 1 view .LVU245 7325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 729 .loc 1 7325 17 is_stmt 0 view .LVU246 730 00f8 2023 movs r3, #32 731 00fa 84F84130 strb r3, [r4, #65] 7326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 732 .loc 1 7326 5 is_stmt 1 view .LVU247 7326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 733 .loc 1 7326 16 is_stmt 0 view .LVU248 734 00fe 0023 movs r3, #0 735 0100 84F84230 strb r3, [r4, #66] 7329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 736 .loc 1 7329 5 is_stmt 1 view .LVU249 7329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 737 .loc 1 7329 5 view .LVU250 738 0104 84F84030 strb r3, [r4, #64] 739 .L62: 7329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 740 .loc 1 7329 5 discriminator 1 view .LVU251 7332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 741 .loc 1 7332 3 view .LVU252 7333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 742 .loc 1 7333 1 is_stmt 0 view .LVU253 743 0108 2846 mov r0, r5 744 010a BDE8F081 pop {r4, r5, r6, r7, r8, pc} 745 .LVL73: ARM GAS /tmp/ccSHpINd.s page 149 746 .L63: 7215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 747 .loc 1 7215 21 view .LVU254 748 010e 0025 movs r5, #0 749 0110 C2E7 b .L47 750 .LVL74: 751 .L60: 7316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 752 .loc 1 7316 3 is_stmt 1 view .LVU255 7316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 753 .loc 1 7316 6 is_stmt 0 view .LVU256 754 0112 002D cmp r5, #0 755 0114 F8D0 beq .L62 756 0116 DEE7 b .L61 757 .cfi_endproc 758 .LFE217: 760 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits 761 .align 1 762 .syntax unified 763 .thumb 764 .thumb_func 766 I2C_WaitOnTXISFlagUntilTimeout: 767 .LVL75: 768 .LFB214: 7059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 769 .loc 1 7059 1 is_stmt 1 view -0 770 .cfi_startproc 771 @ args = 0, pretend = 0, frame = 0 772 @ frame_needed = 0, uses_anonymous_args = 0 7059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 773 .loc 1 7059 1 is_stmt 0 view .LVU258 774 0000 70B5 push {r4, r5, r6, lr} 775 .LCFI3: 776 .cfi_def_cfa_offset 16 777 .cfi_offset 4, -16 778 .cfi_offset 5, -12 779 .cfi_offset 6, -8 780 .cfi_offset 14, -4 781 0002 0446 mov r4, r0 782 0004 0D46 mov r5, r1 783 0006 1646 mov r6, r2 7060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 784 .loc 1 7060 3 is_stmt 1 view .LVU259 785 .LVL76: 786 .L69: 7060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 787 .loc 1 7060 50 view .LVU260 7060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 788 .loc 1 7060 10 is_stmt 0 view .LVU261 789 0008 2368 ldr r3, [r4] 790 000a 9B69 ldr r3, [r3, #24] 7060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 791 .loc 1 7060 50 view .LVU262 792 000c 13F0020F tst r3, #2 793 0010 22D1 bne .L74 7063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 794 .loc 1 7063 5 is_stmt 1 view .LVU263 ARM GAS /tmp/ccSHpINd.s page 150 7063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 795 .loc 1 7063 9 is_stmt 0 view .LVU264 796 0012 3246 mov r2, r6 797 0014 2946 mov r1, r5 798 0016 2046 mov r0, r4 799 0018 FFF7FEFF bl I2C_IsErrorOccurred 800 .LVL77: 7063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 801 .loc 1 7063 8 discriminator 1 view .LVU265 802 001c F0B9 cbnz r0, .L72 7069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 803 .loc 1 7069 5 is_stmt 1 view .LVU266 7069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 804 .loc 1 7069 8 is_stmt 0 view .LVU267 805 001e B5F1FF3F cmp r5, #-1 806 0022 F1D0 beq .L69 7071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 807 .loc 1 7071 7 is_stmt 1 view .LVU268 7071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 808 .loc 1 7071 13 is_stmt 0 view .LVU269 809 0024 FFF7FEFF bl HAL_GetTick 810 .LVL78: 7071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 811 .loc 1 7071 27 discriminator 1 view .LVU270 812 0028 801B subs r0, r0, r6 7071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 813 .loc 1 7071 10 discriminator 1 view .LVU271 814 002a A842 cmp r0, r5 815 002c 01D8 bhi .L70 7071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 816 .loc 1 7071 51 discriminator 1 view .LVU272 817 002e 002D cmp r5, #0 818 0030 EAD1 bne .L69 819 .L70: 7073:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 820 .loc 1 7073 9 is_stmt 1 view .LVU273 7073:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 821 .loc 1 7073 14 is_stmt 0 view .LVU274 822 0032 2368 ldr r3, [r4] 823 0034 9B69 ldr r3, [r3, #24] 7073:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 824 .loc 1 7073 12 view .LVU275 825 0036 13F0020F tst r3, #2 826 003a E5D1 bne .L69 7075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 827 .loc 1 7075 11 is_stmt 1 view .LVU276 7075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 828 .loc 1 7075 15 is_stmt 0 view .LVU277 829 003c 636C ldr r3, [r4, #68] 7075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 830 .loc 1 7075 27 view .LVU278 831 003e 43F02003 orr r3, r3, #32 832 0042 6364 str r3, [r4, #68] 7076:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 833 .loc 1 7076 11 is_stmt 1 view .LVU279 7076:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 834 .loc 1 7076 23 is_stmt 0 view .LVU280 ARM GAS /tmp/ccSHpINd.s page 151 835 0044 2023 movs r3, #32 836 0046 84F84130 strb r3, [r4, #65] 7077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 837 .loc 1 7077 11 is_stmt 1 view .LVU281 7077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 838 .loc 1 7077 22 is_stmt 0 view .LVU282 839 004a 0023 movs r3, #0 840 004c 84F84230 strb r3, [r4, #66] 7080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 841 .loc 1 7080 11 is_stmt 1 view .LVU283 7080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 842 .loc 1 7080 11 view .LVU284 843 0050 84F84030 strb r3, [r4, #64] 7080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 844 .loc 1 7080 11 view .LVU285 7082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 845 .loc 1 7082 11 view .LVU286 7082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 846 .loc 1 7082 18 is_stmt 0 view .LVU287 847 0054 0120 movs r0, #1 848 0056 00E0 b .L68 849 .L74: 7087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 850 .loc 1 7087 10 view .LVU288 851 0058 0020 movs r0, #0 852 .L68: 7088:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 853 .loc 1 7088 1 view .LVU289 854 005a 70BD pop {r4, r5, r6, pc} 855 .LVL79: 856 .L72: 7065:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 857 .loc 1 7065 14 view .LVU290 858 005c 0120 movs r0, #1 859 005e FCE7 b .L68 860 .cfi_endproc 861 .LFE214: 863 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits 864 .align 1 865 .syntax unified 866 .thumb 867 .thumb_func 869 I2C_WaitOnFlagUntilTimeout: 870 .LVL80: 871 .LFB213: 7019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 872 .loc 1 7019 1 is_stmt 1 view -0 873 .cfi_startproc 874 @ args = 4, pretend = 0, frame = 0 875 @ frame_needed = 0, uses_anonymous_args = 0 7019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 876 .loc 1 7019 1 is_stmt 0 view .LVU292 877 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 878 .LCFI4: 879 .cfi_def_cfa_offset 32 880 .cfi_offset 3, -32 881 .cfi_offset 4, -28 ARM GAS /tmp/ccSHpINd.s page 152 882 .cfi_offset 5, -24 883 .cfi_offset 6, -20 884 .cfi_offset 7, -16 885 .cfi_offset 8, -12 886 .cfi_offset 9, -8 887 .cfi_offset 14, -4 888 0004 0546 mov r5, r0 889 0006 8846 mov r8, r1 890 0008 1746 mov r7, r2 891 000a 1E46 mov r6, r3 892 000c DDF82090 ldr r9, [sp, #32] 7020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 893 .loc 1 7020 3 is_stmt 1 view .LVU293 894 .LVL81: 895 .L78: 7020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 896 .loc 1 7020 41 view .LVU294 7020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 897 .loc 1 7020 10 is_stmt 0 view .LVU295 898 0010 2B68 ldr r3, [r5] 899 0012 9C69 ldr r4, [r3, #24] 900 0014 38EA0404 bics r4, r8, r4 901 0018 0CBF ite eq 902 001a 0123 moveq r3, #1 903 001c 0023 movne r3, #0 7020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 904 .loc 1 7020 41 view .LVU296 905 001e BB42 cmp r3, r7 906 0020 27D1 bne .L83 7023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 907 .loc 1 7023 5 is_stmt 1 view .LVU297 7023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 908 .loc 1 7023 9 is_stmt 0 view .LVU298 909 0022 4A46 mov r2, r9 910 0024 3146 mov r1, r6 911 0026 2846 mov r0, r5 912 0028 FFF7FEFF bl I2C_IsErrorOccurred 913 .LVL82: 7023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 914 .loc 1 7023 8 discriminator 1 view .LVU299 915 002c 20BB cbnz r0, .L81 7029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 916 .loc 1 7029 5 is_stmt 1 view .LVU300 7029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 917 .loc 1 7029 8 is_stmt 0 view .LVU301 918 002e B6F1FF3F cmp r6, #-1 919 0032 EDD0 beq .L78 7031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 920 .loc 1 7031 7 is_stmt 1 view .LVU302 7031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 921 .loc 1 7031 13 is_stmt 0 view .LVU303 922 0034 FFF7FEFF bl HAL_GetTick 923 .LVL83: 7031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 924 .loc 1 7031 27 discriminator 1 view .LVU304 925 0038 A0EB0900 sub r0, r0, r9 7031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 153 926 .loc 1 7031 10 discriminator 1 view .LVU305 927 003c B042 cmp r0, r6 928 003e 01D8 bhi .L79 7031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 929 .loc 1 7031 51 discriminator 1 view .LVU306 930 0040 002E cmp r6, #0 931 0042 E5D1 bne .L78 932 .L79: 7033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 933 .loc 1 7033 9 is_stmt 1 view .LVU307 7033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 934 .loc 1 7033 14 is_stmt 0 view .LVU308 935 0044 2B68 ldr r3, [r5] 936 0046 9B69 ldr r3, [r3, #24] 937 0048 38EA0303 bics r3, r8, r3 938 004c 0CBF ite eq 939 004e 0123 moveq r3, #1 940 0050 0023 movne r3, #0 7033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 941 .loc 1 7033 12 view .LVU309 942 0052 BB42 cmp r3, r7 943 0054 DCD1 bne .L78 7035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 944 .loc 1 7035 11 is_stmt 1 view .LVU310 7035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 945 .loc 1 7035 15 is_stmt 0 view .LVU311 946 0056 6B6C ldr r3, [r5, #68] 7035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 947 .loc 1 7035 27 view .LVU312 948 0058 43F02003 orr r3, r3, #32 949 005c 6B64 str r3, [r5, #68] 7036:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 950 .loc 1 7036 11 is_stmt 1 view .LVU313 7036:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 951 .loc 1 7036 23 is_stmt 0 view .LVU314 952 005e 2023 movs r3, #32 953 0060 85F84130 strb r3, [r5, #65] 7037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 954 .loc 1 7037 11 is_stmt 1 view .LVU315 7037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 955 .loc 1 7037 22 is_stmt 0 view .LVU316 956 0064 0023 movs r3, #0 957 0066 85F84230 strb r3, [r5, #66] 7040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 958 .loc 1 7040 11 is_stmt 1 view .LVU317 7040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 959 .loc 1 7040 11 view .LVU318 960 006a 85F84030 strb r3, [r5, #64] 7040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 961 .loc 1 7040 11 view .LVU319 7041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 962 .loc 1 7041 11 view .LVU320 7041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 963 .loc 1 7041 18 is_stmt 0 view .LVU321 964 006e 0120 movs r0, #1 965 0070 00E0 b .L77 966 .L83: ARM GAS /tmp/ccSHpINd.s page 154 7046:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 967 .loc 1 7046 10 view .LVU322 968 0072 0020 movs r0, #0 969 .L77: 7047:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 970 .loc 1 7047 1 view .LVU323 971 0074 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 972 .LVL84: 973 .L81: 7025:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 974 .loc 1 7025 14 view .LVU324 975 0078 0120 movs r0, #1 976 007a FBE7 b .L77 977 .cfi_endproc 978 .LFE213: 980 .section .text.I2C_RequestMemoryWrite,"ax",%progbits 981 .align 1 982 .syntax unified 983 .thumb 984 .thumb_func 986 I2C_RequestMemoryWrite: 987 .LVL85: 988 .LFB196: 5856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 989 .loc 1 5856 1 is_stmt 1 view -0 990 .cfi_startproc 991 @ args = 8, pretend = 0, frame = 0 992 @ frame_needed = 0, uses_anonymous_args = 0 5856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 993 .loc 1 5856 1 is_stmt 0 view .LVU326 994 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 995 .LCFI5: 996 .cfi_def_cfa_offset 24 997 .cfi_offset 4, -24 998 .cfi_offset 5, -20 999 .cfi_offset 6, -16 1000 .cfi_offset 7, -12 1001 .cfi_offset 8, -8 1002 .cfi_offset 14, -4 1003 0004 82B0 sub sp, sp, #8 1004 .LCFI6: 1005 .cfi_def_cfa_offset 32 1006 0006 0446 mov r4, r0 1007 0008 9046 mov r8, r2 1008 000a 1D46 mov r5, r3 1009 000c 089E ldr r6, [sp, #32] 1010 000e 099F ldr r7, [sp, #36] 5857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1011 .loc 1 5857 3 is_stmt 1 view .LVU327 1012 0010 194B ldr r3, .L93 1013 .LVL86: 5857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1014 .loc 1 5857 3 is_stmt 0 view .LVU328 1015 0012 0093 str r3, [sp] 1016 0014 4FF08073 mov r3, #16777216 1017 0018 EAB2 uxtb r2, r5 1018 .LVL87: ARM GAS /tmp/ccSHpINd.s page 155 5857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1019 .loc 1 5857 3 view .LVU329 1020 001a FFF7FEFF bl I2C_TransferConfig 1021 .LVL88: 5860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1022 .loc 1 5860 3 is_stmt 1 view .LVU330 5860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1023 .loc 1 5860 7 is_stmt 0 view .LVU331 1024 001e 3A46 mov r2, r7 1025 0020 3146 mov r1, r6 1026 0022 2046 mov r0, r4 1027 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1028 .LVL89: 5860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1029 .loc 1 5860 6 discriminator 1 view .LVU332 1030 0028 F8B9 cbnz r0, .L88 5866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1031 .loc 1 5866 3 is_stmt 1 view .LVU333 5866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1032 .loc 1 5866 6 is_stmt 0 view .LVU334 1033 002a 012D cmp r5, #1 1034 002c 0ED1 bne .L86 5869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1035 .loc 1 5869 5 is_stmt 1 view .LVU335 5869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1036 .loc 1 5869 9 is_stmt 0 view .LVU336 1037 002e 2368 ldr r3, [r4] 5869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1038 .loc 1 5869 28 view .LVU337 1039 0030 5FFA88F2 uxtb r2, r8 5869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1040 .loc 1 5869 26 view .LVU338 1041 0034 9A62 str r2, [r3, #40] 1042 .L87: 5888:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1043 .loc 1 5888 3 is_stmt 1 view .LVU339 5888:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1044 .loc 1 5888 7 is_stmt 0 view .LVU340 1045 0036 0097 str r7, [sp] 1046 0038 3346 mov r3, r6 1047 003a 0022 movs r2, #0 1048 003c 8021 movs r1, #128 1049 003e 2046 mov r0, r4 1050 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1051 .LVL90: 5888:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1052 .loc 1 5888 6 discriminator 1 view .LVU341 1053 0044 A8B9 cbnz r0, .L92 1054 .L85: 5894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1055 .loc 1 5894 1 view .LVU342 1056 0046 02B0 add sp, sp, #8 1057 .LCFI7: 1058 .cfi_remember_state 1059 .cfi_def_cfa_offset 24 1060 @ sp needed 1061 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc} ARM GAS /tmp/ccSHpINd.s page 156 1062 .LVL91: 1063 .L86: 1064 .LCFI8: 1065 .cfi_restore_state 5875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1066 .loc 1 5875 5 is_stmt 1 view .LVU343 5875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1067 .loc 1 5875 9 is_stmt 0 view .LVU344 1068 004c 2368 ldr r3, [r4] 5875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1069 .loc 1 5875 28 view .LVU345 1070 004e 4FEA1822 lsr r2, r8, #8 5875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1071 .loc 1 5875 26 view .LVU346 1072 0052 9A62 str r2, [r3, #40] 5878:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1073 .loc 1 5878 5 is_stmt 1 view .LVU347 5878:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1074 .loc 1 5878 9 is_stmt 0 view .LVU348 1075 0054 3A46 mov r2, r7 1076 0056 3146 mov r1, r6 1077 0058 2046 mov r0, r4 1078 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1079 .LVL92: 5878:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1080 .loc 1 5878 8 discriminator 1 view .LVU349 1081 005e 30B9 cbnz r0, .L89 5884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1082 .loc 1 5884 5 is_stmt 1 view .LVU350 5884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1083 .loc 1 5884 9 is_stmt 0 view .LVU351 1084 0060 2368 ldr r3, [r4] 5884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1085 .loc 1 5884 28 view .LVU352 1086 0062 5FFA88F2 uxtb r2, r8 5884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1087 .loc 1 5884 26 view .LVU353 1088 0066 9A62 str r2, [r3, #40] 1089 0068 E5E7 b .L87 1090 .L88: 5862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1091 .loc 1 5862 12 view .LVU354 1092 006a 0120 movs r0, #1 1093 006c EBE7 b .L85 1094 .L89: 5880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1095 .loc 1 5880 14 view .LVU355 1096 006e 0120 movs r0, #1 1097 0070 E9E7 b .L85 1098 .L92: 5890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1099 .loc 1 5890 12 view .LVU356 1100 0072 0120 movs r0, #1 1101 0074 E7E7 b .L85 1102 .L94: 1103 0076 00BF .align 2 1104 .L93: ARM GAS /tmp/ccSHpINd.s page 157 1105 0078 00200080 .word -2147475456 1106 .cfi_endproc 1107 .LFE196: 1109 .section .text.I2C_RequestMemoryRead,"ax",%progbits 1110 .align 1 1111 .syntax unified 1112 .thumb 1113 .thumb_func 1115 I2C_RequestMemoryRead: 1116 .LVL93: 1117 .LFB197: 5911:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 1118 .loc 1 5911 1 is_stmt 1 view -0 1119 .cfi_startproc 1120 @ args = 8, pretend = 0, frame = 0 1121 @ frame_needed = 0, uses_anonymous_args = 0 5911:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 1122 .loc 1 5911 1 is_stmt 0 view .LVU358 1123 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1124 .LCFI9: 1125 .cfi_def_cfa_offset 24 1126 .cfi_offset 4, -24 1127 .cfi_offset 5, -20 1128 .cfi_offset 6, -16 1129 .cfi_offset 7, -12 1130 .cfi_offset 8, -8 1131 .cfi_offset 14, -4 1132 0004 82B0 sub sp, sp, #8 1133 .LCFI10: 1134 .cfi_def_cfa_offset 32 1135 0006 0446 mov r4, r0 1136 0008 9046 mov r8, r2 1137 000a 1D46 mov r5, r3 1138 000c 089E ldr r6, [sp, #32] 1139 000e 099F ldr r7, [sp, #36] 5912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1140 .loc 1 5912 3 is_stmt 1 view .LVU359 1141 0010 184B ldr r3, .L104 1142 .LVL94: 5912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1143 .loc 1 5912 3 is_stmt 0 view .LVU360 1144 0012 0093 str r3, [sp] 1145 0014 0023 movs r3, #0 1146 0016 EAB2 uxtb r2, r5 1147 .LVL95: 5912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1148 .loc 1 5912 3 view .LVU361 1149 0018 FFF7FEFF bl I2C_TransferConfig 1150 .LVL96: 5915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1151 .loc 1 5915 3 is_stmt 1 view .LVU362 5915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1152 .loc 1 5915 7 is_stmt 0 view .LVU363 1153 001c 3A46 mov r2, r7 1154 001e 3146 mov r1, r6 1155 0020 2046 mov r0, r4 1156 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout ARM GAS /tmp/ccSHpINd.s page 158 1157 .LVL97: 5915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1158 .loc 1 5915 6 discriminator 1 view .LVU364 1159 0026 F8B9 cbnz r0, .L99 5921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1160 .loc 1 5921 3 is_stmt 1 view .LVU365 5921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1161 .loc 1 5921 6 is_stmt 0 view .LVU366 1162 0028 012D cmp r5, #1 1163 002a 0ED1 bne .L97 5924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1164 .loc 1 5924 5 is_stmt 1 view .LVU367 5924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1165 .loc 1 5924 9 is_stmt 0 view .LVU368 1166 002c 2368 ldr r3, [r4] 5924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1167 .loc 1 5924 28 view .LVU369 1168 002e 5FFA88F2 uxtb r2, r8 5924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1169 .loc 1 5924 26 view .LVU370 1170 0032 9A62 str r2, [r3, #40] 1171 .L98: 5943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1172 .loc 1 5943 3 is_stmt 1 view .LVU371 5943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1173 .loc 1 5943 7 is_stmt 0 view .LVU372 1174 0034 0097 str r7, [sp] 1175 0036 3346 mov r3, r6 1176 0038 0022 movs r2, #0 1177 003a 4021 movs r1, #64 1178 003c 2046 mov r0, r4 1179 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1180 .LVL98: 5943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1181 .loc 1 5943 6 discriminator 1 view .LVU373 1182 0042 A8B9 cbnz r0, .L103 1183 .L96: 5949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1184 .loc 1 5949 1 view .LVU374 1185 0044 02B0 add sp, sp, #8 1186 .LCFI11: 1187 .cfi_remember_state 1188 .cfi_def_cfa_offset 24 1189 @ sp needed 1190 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1191 .LVL99: 1192 .L97: 1193 .LCFI12: 1194 .cfi_restore_state 5930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1195 .loc 1 5930 5 is_stmt 1 view .LVU375 5930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1196 .loc 1 5930 9 is_stmt 0 view .LVU376 1197 004a 2368 ldr r3, [r4] 5930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1198 .loc 1 5930 28 view .LVU377 1199 004c 4FEA1822 lsr r2, r8, #8 ARM GAS /tmp/ccSHpINd.s page 159 5930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1200 .loc 1 5930 26 view .LVU378 1201 0050 9A62 str r2, [r3, #40] 5933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1202 .loc 1 5933 5 is_stmt 1 view .LVU379 5933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1203 .loc 1 5933 9 is_stmt 0 view .LVU380 1204 0052 3A46 mov r2, r7 1205 0054 3146 mov r1, r6 1206 0056 2046 mov r0, r4 1207 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1208 .LVL100: 5933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1209 .loc 1 5933 8 discriminator 1 view .LVU381 1210 005c 30B9 cbnz r0, .L100 5939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1211 .loc 1 5939 5 is_stmt 1 view .LVU382 5939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1212 .loc 1 5939 9 is_stmt 0 view .LVU383 1213 005e 2368 ldr r3, [r4] 5939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1214 .loc 1 5939 28 view .LVU384 1215 0060 5FFA88F2 uxtb r2, r8 5939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1216 .loc 1 5939 26 view .LVU385 1217 0064 9A62 str r2, [r3, #40] 1218 0066 E5E7 b .L98 1219 .L99: 5917:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1220 .loc 1 5917 12 view .LVU386 1221 0068 0120 movs r0, #1 1222 006a EBE7 b .L96 1223 .L100: 5935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1224 .loc 1 5935 14 view .LVU387 1225 006c 0120 movs r0, #1 1226 006e E9E7 b .L96 1227 .L103: 5945:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1228 .loc 1 5945 12 view .LVU388 1229 0070 0120 movs r0, #1 1230 0072 E7E7 b .L96 1231 .L105: 1232 .align 2 1233 .L104: 1234 0074 00200080 .word -2147475456 1235 .cfi_endproc 1236 .LFE197: 1238 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits 1239 .align 1 1240 .syntax unified 1241 .thumb 1242 .thumb_func 1244 I2C_WaitOnSTOPFlagUntilTimeout: 1245 .LVL101: 1246 .LFB215: 7100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) ARM GAS /tmp/ccSHpINd.s page 160 1247 .loc 1 7100 1 is_stmt 1 view -0 1248 .cfi_startproc 1249 @ args = 0, pretend = 0, frame = 0 1250 @ frame_needed = 0, uses_anonymous_args = 0 7100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1251 .loc 1 7100 1 is_stmt 0 view .LVU390 1252 0000 70B5 push {r4, r5, r6, lr} 1253 .LCFI13: 1254 .cfi_def_cfa_offset 16 1255 .cfi_offset 4, -16 1256 .cfi_offset 5, -12 1257 .cfi_offset 6, -8 1258 .cfi_offset 14, -4 1259 0002 0446 mov r4, r0 1260 0004 0D46 mov r5, r1 1261 0006 1646 mov r6, r2 7101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1262 .loc 1 7101 3 is_stmt 1 view .LVU391 7101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1263 .loc 1 7101 9 is_stmt 0 view .LVU392 1264 0008 04E0 b .L107 1265 .LVL102: 1266 .L109: 7112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1267 .loc 1 7112 7 is_stmt 1 view .LVU393 7112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1268 .loc 1 7112 12 is_stmt 0 view .LVU394 1269 000a 2368 ldr r3, [r4] 1270 000c 9B69 ldr r3, [r3, #24] 7112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1271 .loc 1 7112 10 view .LVU395 1272 000e 13F0200F tst r3, #32 1273 0012 12D0 beq .L113 1274 .L107: 7101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1275 .loc 1 7101 51 is_stmt 1 view .LVU396 7101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1276 .loc 1 7101 10 is_stmt 0 view .LVU397 1277 0014 2368 ldr r3, [r4] 1278 0016 9B69 ldr r3, [r3, #24] 7101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1279 .loc 1 7101 51 view .LVU398 1280 0018 13F0200F tst r3, #32 1281 001c 1BD1 bne .L114 7104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1282 .loc 1 7104 5 is_stmt 1 view .LVU399 7104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1283 .loc 1 7104 9 is_stmt 0 view .LVU400 1284 001e 3246 mov r2, r6 1285 0020 2946 mov r1, r5 1286 0022 2046 mov r0, r4 1287 0024 FFF7FEFF bl I2C_IsErrorOccurred 1288 .LVL103: 7104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1289 .loc 1 7104 8 discriminator 1 view .LVU401 1290 0028 B8B9 cbnz r0, .L111 7110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 161 1291 .loc 1 7110 5 is_stmt 1 view .LVU402 7110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1292 .loc 1 7110 11 is_stmt 0 view .LVU403 1293 002a FFF7FEFF bl HAL_GetTick 1294 .LVL104: 7110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1295 .loc 1 7110 25 discriminator 1 view .LVU404 1296 002e 801B subs r0, r0, r6 7110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1297 .loc 1 7110 8 discriminator 1 view .LVU405 1298 0030 A842 cmp r0, r5 1299 0032 EAD8 bhi .L109 7110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1300 .loc 1 7110 49 discriminator 1 view .LVU406 1301 0034 002D cmp r5, #0 1302 0036 EDD1 bne .L107 1303 0038 E7E7 b .L109 1304 .L113: 7114:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1305 .loc 1 7114 9 is_stmt 1 view .LVU407 7114:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1306 .loc 1 7114 13 is_stmt 0 view .LVU408 1307 003a 636C ldr r3, [r4, #68] 7114:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1308 .loc 1 7114 25 view .LVU409 1309 003c 43F02003 orr r3, r3, #32 1310 0040 6364 str r3, [r4, #68] 7115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1311 .loc 1 7115 9 is_stmt 1 view .LVU410 7115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1312 .loc 1 7115 21 is_stmt 0 view .LVU411 1313 0042 2023 movs r3, #32 1314 0044 84F84130 strb r3, [r4, #65] 7116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1315 .loc 1 7116 9 is_stmt 1 view .LVU412 7116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1316 .loc 1 7116 20 is_stmt 0 view .LVU413 1317 0048 0023 movs r3, #0 1318 004a 84F84230 strb r3, [r4, #66] 7119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1319 .loc 1 7119 9 is_stmt 1 view .LVU414 7119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1320 .loc 1 7119 9 view .LVU415 1321 004e 84F84030 strb r3, [r4, #64] 7119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1322 .loc 1 7119 9 view .LVU416 7121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1323 .loc 1 7121 9 view .LVU417 7121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1324 .loc 1 7121 16 is_stmt 0 view .LVU418 1325 0052 0120 movs r0, #1 1326 0054 00E0 b .L108 1327 .L114: 7125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1328 .loc 1 7125 10 view .LVU419 1329 0056 0020 movs r0, #0 1330 .L108: ARM GAS /tmp/ccSHpINd.s page 162 7126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1331 .loc 1 7126 1 view .LVU420 1332 0058 70BD pop {r4, r5, r6, pc} 1333 .LVL105: 1334 .L111: 7106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1335 .loc 1 7106 14 view .LVU421 1336 005a 0120 movs r0, #1 1337 005c FCE7 b .L108 1338 .cfi_endproc 1339 .LFE215: 1341 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits 1342 .align 1 1343 .syntax unified 1344 .thumb 1345 .thumb_func 1347 I2C_WaitOnRXNEFlagUntilTimeout: 1348 .LVL106: 1349 .LFB216: 7138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1350 .loc 1 7138 1 is_stmt 1 view -0 1351 .cfi_startproc 1352 @ args = 0, pretend = 0, frame = 0 1353 @ frame_needed = 0, uses_anonymous_args = 0 7138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1354 .loc 1 7138 1 is_stmt 0 view .LVU423 1355 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 1356 .LCFI14: 1357 .cfi_def_cfa_offset 24 1358 .cfi_offset 3, -24 1359 .cfi_offset 4, -20 1360 .cfi_offset 5, -16 1361 .cfi_offset 6, -12 1362 .cfi_offset 7, -8 1363 .cfi_offset 14, -4 1364 0002 0446 mov r4, r0 1365 0004 0E46 mov r6, r1 1366 0006 1746 mov r7, r2 7139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1367 .loc 1 7139 3 is_stmt 1 view .LVU424 1368 .LVL107: 7141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1369 .loc 1 7141 3 view .LVU425 7139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1370 .loc 1 7139 21 is_stmt 0 view .LVU426 1371 0008 0025 movs r5, #0 7141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1372 .loc 1 7141 9 view .LVU427 1373 000a 18E0 b .L116 1374 .LVL108: 1375 .L119: 7183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1376 .loc 1 7183 9 is_stmt 1 view .LVU428 7183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1377 .loc 1 7183 25 is_stmt 0 view .LVU429 1378 000c 0023 movs r3, #0 1379 000e 6364 str r3, [r4, #68] ARM GAS /tmp/ccSHpINd.s page 163 1380 .LVL109: 1381 .L118: 7188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1382 .loc 1 7188 5 is_stmt 1 view .LVU430 7188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1383 .loc 1 7188 12 is_stmt 0 view .LVU431 1384 0010 FFF7FEFF bl HAL_GetTick 1385 .LVL110: 7188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1386 .loc 1 7188 26 discriminator 1 view .LVU432 1387 0014 C01B subs r0, r0, r7 7188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1388 .loc 1 7188 8 discriminator 1 view .LVU433 1389 0016 B042 cmp r0, r6 1390 0018 00D8 bhi .L120 7188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1391 .loc 1 7188 50 discriminator 2 view .LVU434 1392 001a 86B9 cbnz r6, .L116 1393 .L120: 7188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1394 .loc 1 7188 70 discriminator 3 view .LVU435 1395 001c 7DB9 cbnz r5, .L116 7190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1396 .loc 1 7190 7 is_stmt 1 view .LVU436 7190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1397 .loc 1 7190 12 is_stmt 0 view .LVU437 1398 001e 2368 ldr r3, [r4] 1399 0020 9B69 ldr r3, [r3, #24] 7190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1400 .loc 1 7190 10 view .LVU438 1401 0022 13F0040F tst r3, #4 1402 0026 0AD1 bne .L116 7192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1403 .loc 1 7192 9 is_stmt 1 view .LVU439 7192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1404 .loc 1 7192 13 is_stmt 0 view .LVU440 1405 0028 636C ldr r3, [r4, #68] 7192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1406 .loc 1 7192 25 view .LVU441 1407 002a 43F02003 orr r3, r3, #32 1408 002e 6364 str r3, [r4, #68] 7193:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1409 .loc 1 7193 9 is_stmt 1 view .LVU442 7193:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1410 .loc 1 7193 21 is_stmt 0 view .LVU443 1411 0030 2023 movs r3, #32 1412 0032 84F84130 strb r3, [r4, #65] 7196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1413 .loc 1 7196 9 is_stmt 1 view .LVU444 7196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1414 .loc 1 7196 9 view .LVU445 1415 0036 0023 movs r3, #0 1416 0038 84F84030 strb r3, [r4, #64] 7196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1417 .loc 1 7196 9 view .LVU446 7198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1418 .loc 1 7198 9 view .LVU447 ARM GAS /tmp/ccSHpINd.s page 164 1419 .LVL111: 7198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1420 .loc 1 7198 16 is_stmt 0 view .LVU448 1421 003c 0125 movs r5, #1 1422 .LVL112: 1423 .L116: 7141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1424 .loc 1 7141 61 is_stmt 1 view .LVU449 7141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1425 .loc 1 7141 11 is_stmt 0 view .LVU450 1426 003e 2368 ldr r3, [r4] 1427 0040 9B69 ldr r3, [r3, #24] 7141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1428 .loc 1 7141 61 view .LVU451 1429 0042 13F0040F tst r3, #4 1430 0046 2ED1 bne .L122 7141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1431 .loc 1 7141 61 discriminator 1 view .LVU452 1432 0048 6DBB cbnz r5, .L122 7144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1433 .loc 1 7144 5 is_stmt 1 view .LVU453 7144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1434 .loc 1 7144 9 is_stmt 0 view .LVU454 1435 004a 3A46 mov r2, r7 1436 004c 3146 mov r1, r6 1437 004e 2046 mov r0, r4 1438 0050 FFF7FEFF bl I2C_IsErrorOccurred 1439 .LVL113: 7144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1440 .loc 1 7144 8 discriminator 1 view .LVU455 1441 0054 00B1 cbz r0, .L117 7146:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1442 .loc 1 7146 14 view .LVU456 1443 0056 0125 movs r5, #1 1444 .LVL114: 1445 .L117: 7150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1446 .loc 1 7150 5 is_stmt 1 view .LVU457 7150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1447 .loc 1 7150 10 is_stmt 0 view .LVU458 1448 0058 2368 ldr r3, [r4] 1449 005a 9A69 ldr r2, [r3, #24] 7150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1450 .loc 1 7150 8 view .LVU459 1451 005c 12F0200F tst r2, #32 1452 0060 D6D0 beq .L118 7150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1453 .loc 1 7150 59 discriminator 1 view .LVU460 1454 0062 002D cmp r5, #0 1455 0064 D4D1 bne .L118 7154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1456 .loc 1 7154 7 is_stmt 1 view .LVU461 7154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1457 .loc 1 7154 12 is_stmt 0 view .LVU462 1458 0066 9A69 ldr r2, [r3, #24] 7158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1459 .loc 1 7158 9 is_stmt 1 view .LVU463 ARM GAS /tmp/ccSHpINd.s page 165 7162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1460 .loc 1 7162 7 view .LVU464 7162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1461 .loc 1 7162 11 is_stmt 0 view .LVU465 1462 0068 9A69 ldr r2, [r3, #24] 7162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1463 .loc 1 7162 10 view .LVU466 1464 006a 12F0100F tst r2, #16 1465 006e CDD0 beq .L119 7164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 1466 .loc 1 7164 9 is_stmt 1 view .LVU467 1467 0070 1022 movs r2, #16 1468 0072 DA61 str r2, [r3, #28] 7165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1469 .loc 1 7165 9 view .LVU468 7165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1470 .loc 1 7165 25 is_stmt 0 view .LVU469 1471 0074 0423 movs r3, #4 1472 0076 6364 str r3, [r4, #68] 7168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1473 .loc 1 7168 9 is_stmt 1 view .LVU470 1474 0078 2368 ldr r3, [r4] 1475 007a 2022 movs r2, #32 1476 007c DA61 str r2, [r3, #28] 7171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1477 .loc 1 7171 9 view .LVU471 1478 007e 2168 ldr r1, [r4] 1479 0080 4B68 ldr r3, [r1, #4] 1480 0082 23F0FF73 bic r3, r3, #33423360 1481 0086 23F48B33 bic r3, r3, #71168 1482 008a 23F4FF73 bic r3, r3, #510 1483 008e 23F00103 bic r3, r3, #1 1484 0092 4B60 str r3, [r1, #4] 7173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1485 .loc 1 7173 9 view .LVU472 7173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1486 .loc 1 7173 21 is_stmt 0 view .LVU473 1487 0094 84F84120 strb r2, [r4, #65] 7174:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1488 .loc 1 7174 9 is_stmt 1 view .LVU474 7174:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1489 .loc 1 7174 20 is_stmt 0 view .LVU475 1490 0098 0023 movs r3, #0 1491 009a 84F84230 strb r3, [r4, #66] 7177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1492 .loc 1 7177 9 is_stmt 1 view .LVU476 7177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1493 .loc 1 7177 9 view .LVU477 1494 009e 84F84030 strb r3, [r4, #64] 7177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1495 .loc 1 7177 9 view .LVU478 7179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1496 .loc 1 7179 9 view .LVU479 1497 .LVL115: 7179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1498 .loc 1 7179 16 is_stmt 0 view .LVU480 1499 00a2 0125 movs r5, #1 ARM GAS /tmp/ccSHpINd.s page 166 1500 00a4 B4E7 b .L118 1501 .LVL116: 1502 .L122: 7202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1503 .loc 1 7202 3 is_stmt 1 view .LVU481 7203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1504 .loc 1 7203 1 is_stmt 0 view .LVU482 1505 00a6 2846 mov r0, r5 1506 00a8 F8BD pop {r3, r4, r5, r6, r7, pc} 7203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1507 .loc 1 7203 1 view .LVU483 1508 .cfi_endproc 1509 .LFE216: 1511 .section .text.HAL_I2C_MspInit,"ax",%progbits 1512 .align 1 1513 .weak HAL_I2C_MspInit 1514 .syntax unified 1515 .thumb 1516 .thumb_func 1518 HAL_I2C_MspInit: 1519 .LVL117: 1520 .LFB143: 697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1521 .loc 1 697 1 is_stmt 1 view -0 1522 .cfi_startproc 1523 @ args = 0, pretend = 0, frame = 0 1524 @ frame_needed = 0, uses_anonymous_args = 0 1525 @ link register save eliminated. 699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1526 .loc 1 699 3 view .LVU485 704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1527 .loc 1 704 1 is_stmt 0 view .LVU486 1528 0000 7047 bx lr 1529 .cfi_endproc 1530 .LFE143: 1532 .section .text.HAL_I2C_Init,"ax",%progbits 1533 .align 1 1534 .global HAL_I2C_Init 1535 .syntax unified 1536 .thumb 1537 .thumb_func 1539 HAL_I2C_Init: 1540 .LVL118: 1541 .LFB141: 536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1542 .loc 1 536 1 is_stmt 1 view -0 1543 .cfi_startproc 1544 @ args = 0, pretend = 0, frame = 0 1545 @ frame_needed = 0, uses_anonymous_args = 0 538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1546 .loc 1 538 3 view .LVU488 538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1547 .loc 1 538 6 is_stmt 0 view .LVU489 1548 0000 0028 cmp r0, #0 1549 0002 5DD0 beq .L134 536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1550 .loc 1 536 1 view .LVU490 ARM GAS /tmp/ccSHpINd.s page 167 1551 0004 10B5 push {r4, lr} 1552 .LCFI15: 1553 .cfi_def_cfa_offset 8 1554 .cfi_offset 4, -8 1555 .cfi_offset 14, -4 1556 0006 0446 mov r4, r0 544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 1557 .loc 1 544 3 is_stmt 1 view .LVU491 545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 1558 .loc 1 545 3 view .LVU492 546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 1559 .loc 1 546 3 view .LVU493 547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 1560 .loc 1 547 3 view .LVU494 548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 1561 .loc 1 548 3 view .LVU495 549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 1562 .loc 1 549 3 view .LVU496 550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 1563 .loc 1 550 3 view .LVU497 551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1564 .loc 1 551 3 view .LVU498 553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1565 .loc 1 553 3 view .LVU499 553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1566 .loc 1 553 11 is_stmt 0 view .LVU500 1567 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1568 .loc 1 553 6 view .LVU501 1569 000c 002B cmp r3, #0 1570 000e 46D0 beq .L139 1571 .LVL119: 1572 .L129: 584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1573 .loc 1 584 3 is_stmt 1 view .LVU502 584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1574 .loc 1 584 15 is_stmt 0 view .LVU503 1575 0010 2423 movs r3, #36 1576 0012 84F84130 strb r3, [r4, #65] 587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1577 .loc 1 587 3 is_stmt 1 view .LVU504 1578 0016 2268 ldr r2, [r4] 1579 0018 1368 ldr r3, [r2] 1580 001a 23F00103 bic r3, r3, #1 1581 001e 1360 str r3, [r2] 591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1582 .loc 1 591 3 view .LVU505 591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1583 .loc 1 591 39 is_stmt 0 view .LVU506 1584 0020 6368 ldr r3, [r4, #4] 591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1585 .loc 1 591 7 view .LVU507 1586 0022 2268 ldr r2, [r4] 591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1587 .loc 1 591 47 view .LVU508 1588 0024 23F07063 bic r3, r3, #251658240 591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 168 1589 .loc 1 591 27 view .LVU509 1590 0028 1361 str r3, [r2, #16] 595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1591 .loc 1 595 3 is_stmt 1 view .LVU510 595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1592 .loc 1 595 7 is_stmt 0 view .LVU511 1593 002a 2268 ldr r2, [r4] 595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1594 .loc 1 595 17 view .LVU512 1595 002c 9368 ldr r3, [r2, #8] 595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1596 .loc 1 595 24 view .LVU513 1597 002e 23F40043 bic r3, r3, #32768 1598 0032 9360 str r3, [r2, #8] 598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1599 .loc 1 598 3 is_stmt 1 view .LVU514 598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1600 .loc 1 598 17 is_stmt 0 view .LVU515 1601 0034 E368 ldr r3, [r4, #12] 598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1602 .loc 1 598 6 view .LVU516 1603 0036 012B cmp r3, #1 1604 0038 36D0 beq .L140 604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1605 .loc 1 604 5 is_stmt 1 view .LVU517 604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1606 .loc 1 604 75 is_stmt 0 view .LVU518 1607 003a A368 ldr r3, [r4, #8] 604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1608 .loc 1 604 9 view .LVU519 1609 003c 2268 ldr r2, [r4] 604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1610 .loc 1 604 63 view .LVU520 1611 003e 43F40443 orr r3, r3, #33792 604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1612 .loc 1 604 26 view .LVU521 1613 0042 9360 str r3, [r2, #8] 1614 .L131: 609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1615 .loc 1 609 3 is_stmt 1 view .LVU522 609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1616 .loc 1 609 17 is_stmt 0 view .LVU523 1617 0044 E368 ldr r3, [r4, #12] 609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1618 .loc 1 609 6 view .LVU524 1619 0046 022B cmp r3, #2 1620 0048 34D0 beq .L141 616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1621 .loc 1 616 5 is_stmt 1 view .LVU525 1622 004a 2268 ldr r2, [r4] 1623 004c 5368 ldr r3, [r2, #4] 1624 004e 23F40063 bic r3, r3, #2048 1625 0052 5360 str r3, [r2, #4] 1626 .L133: 619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1627 .loc 1 619 3 view .LVU526 619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 169 1628 .loc 1 619 7 is_stmt 0 view .LVU527 1629 0054 2268 ldr r2, [r4] 619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1630 .loc 1 619 17 view .LVU528 1631 0056 5168 ldr r1, [r2, #4] 619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1632 .loc 1 619 23 view .LVU529 1633 0058 1A4B ldr r3, .L142 1634 005a 0B43 orrs r3, r3, r1 1635 005c 5360 str r3, [r2, #4] 623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1636 .loc 1 623 3 is_stmt 1 view .LVU530 623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1637 .loc 1 623 7 is_stmt 0 view .LVU531 1638 005e 2268 ldr r2, [r4] 623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1639 .loc 1 623 17 view .LVU532 1640 0060 D368 ldr r3, [r2, #12] 623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1641 .loc 1 623 24 view .LVU533 1642 0062 23F40043 bic r3, r3, #32768 1643 0066 D360 str r3, [r2, #12] 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1644 .loc 1 626 3 is_stmt 1 view .LVU534 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1645 .loc 1 626 37 is_stmt 0 view .LVU535 1646 0068 2369 ldr r3, [r4, #16] 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1647 .loc 1 626 66 view .LVU536 1648 006a 6269 ldr r2, [r4, #20] 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1649 .loc 1 626 54 view .LVU537 1650 006c 1343 orrs r3, r3, r2 627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1651 .loc 1 627 38 view .LVU538 1652 006e A169 ldr r1, [r4, #24] 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1653 .loc 1 626 7 view .LVU539 1654 0070 2268 ldr r2, [r4] 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1655 .loc 1 626 79 view .LVU540 1656 0072 43EA0123 orr r3, r3, r1, lsl #8 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1657 .loc 1 626 24 view .LVU541 1658 0076 D360 str r3, [r2, #12] 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1659 .loc 1 631 3 is_stmt 1 view .LVU542 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1660 .loc 1 631 36 is_stmt 0 view .LVU543 1661 0078 E369 ldr r3, [r4, #28] 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1662 .loc 1 631 65 view .LVU544 1663 007a 216A ldr r1, [r4, #32] 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1664 .loc 1 631 7 view .LVU545 1665 007c 2268 ldr r2, [r4] 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 170 1666 .loc 1 631 53 view .LVU546 1667 007e 0B43 orrs r3, r3, r1 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1668 .loc 1 631 23 view .LVU547 1669 0080 1360 str r3, [r2] 634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1670 .loc 1 634 3 is_stmt 1 view .LVU548 1671 0082 2268 ldr r2, [r4] 1672 0084 1368 ldr r3, [r2] 1673 0086 43F00103 orr r3, r3, #1 1674 008a 1360 str r3, [r2] 636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1675 .loc 1 636 3 view .LVU549 636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1676 .loc 1 636 19 is_stmt 0 view .LVU550 1677 008c 0020 movs r0, #0 1678 008e 6064 str r0, [r4, #68] 637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1679 .loc 1 637 3 is_stmt 1 view .LVU551 637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1680 .loc 1 637 15 is_stmt 0 view .LVU552 1681 0090 2023 movs r3, #32 1682 0092 84F84130 strb r3, [r4, #65] 638:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1683 .loc 1 638 3 is_stmt 1 view .LVU553 638:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1684 .loc 1 638 23 is_stmt 0 view .LVU554 1685 0096 2063 str r0, [r4, #48] 639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1686 .loc 1 639 3 is_stmt 1 view .LVU555 639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1687 .loc 1 639 14 is_stmt 0 view .LVU556 1688 0098 84F84200 strb r0, [r4, #66] 641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1689 .loc 1 641 3 is_stmt 1 view .LVU557 642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1690 .loc 1 642 1 is_stmt 0 view .LVU558 1691 009c 10BD pop {r4, pc} 1692 .LVL120: 1693 .L139: 556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1694 .loc 1 556 5 is_stmt 1 view .LVU559 556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1695 .loc 1 556 16 is_stmt 0 view .LVU560 1696 009e 80F84030 strb r3, [r0, #64] 580:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1697 .loc 1 580 5 is_stmt 1 view .LVU561 1698 00a2 FFF7FEFF bl HAL_I2C_MspInit 1699 .LVL121: 580:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1700 .loc 1 580 5 is_stmt 0 view .LVU562 1701 00a6 B3E7 b .L129 1702 .L140: 600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1703 .loc 1 600 5 is_stmt 1 view .LVU563 600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1704 .loc 1 600 56 is_stmt 0 view .LVU564 ARM GAS /tmp/ccSHpINd.s page 171 1705 00a8 A368 ldr r3, [r4, #8] 600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1706 .loc 1 600 9 view .LVU565 1707 00aa 2268 ldr r2, [r4] 600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1708 .loc 1 600 44 view .LVU566 1709 00ac 43F40043 orr r3, r3, #32768 600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1710 .loc 1 600 26 view .LVU567 1711 00b0 9360 str r3, [r2, #8] 1712 00b2 C7E7 b .L131 1713 .L141: 611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1714 .loc 1 611 5 is_stmt 1 view .LVU568 1715 00b4 2268 ldr r2, [r4] 1716 00b6 5368 ldr r3, [r2, #4] 1717 00b8 43F40063 orr r3, r3, #2048 1718 00bc 5360 str r3, [r2, #4] 1719 00be C9E7 b .L133 1720 .LVL122: 1721 .L134: 1722 .LCFI16: 1723 .cfi_def_cfa_offset 0 1724 .cfi_restore 4 1725 .cfi_restore 14 540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1726 .loc 1 540 12 is_stmt 0 view .LVU569 1727 00c0 0120 movs r0, #1 1728 .LVL123: 642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1729 .loc 1 642 1 view .LVU570 1730 00c2 7047 bx lr 1731 .L143: 1732 .align 2 1733 .L142: 1734 00c4 00800002 .word 33587200 1735 .cfi_endproc 1736 .LFE141: 1738 .section .text.HAL_I2C_MspDeInit,"ax",%progbits 1739 .align 1 1740 .weak HAL_I2C_MspDeInit 1741 .syntax unified 1742 .thumb 1743 .thumb_func 1745 HAL_I2C_MspDeInit: 1746 .LVL124: 1747 .LFB144: 713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1748 .loc 1 713 1 is_stmt 1 view -0 1749 .cfi_startproc 1750 @ args = 0, pretend = 0, frame = 0 1751 @ frame_needed = 0, uses_anonymous_args = 0 1752 @ link register save eliminated. 715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1753 .loc 1 715 3 view .LVU572 720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1754 .loc 1 720 1 is_stmt 0 view .LVU573 ARM GAS /tmp/ccSHpINd.s page 172 1755 0000 7047 bx lr 1756 .cfi_endproc 1757 .LFE144: 1759 .section .text.HAL_I2C_DeInit,"ax",%progbits 1760 .align 1 1761 .global HAL_I2C_DeInit 1762 .syntax unified 1763 .thumb 1764 .thumb_func 1766 HAL_I2C_DeInit: 1767 .LVL125: 1768 .LFB142: 651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1769 .loc 1 651 1 is_stmt 1 view -0 1770 .cfi_startproc 1771 @ args = 0, pretend = 0, frame = 0 1772 @ frame_needed = 0, uses_anonymous_args = 0 653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1773 .loc 1 653 3 view .LVU575 653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1774 .loc 1 653 6 is_stmt 0 view .LVU576 1775 0000 A8B1 cbz r0, .L147 651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1776 .loc 1 651 1 view .LVU577 1777 0002 10B5 push {r4, lr} 1778 .LCFI17: 1779 .cfi_def_cfa_offset 8 1780 .cfi_offset 4, -8 1781 .cfi_offset 14, -4 1782 0004 0446 mov r4, r0 659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1783 .loc 1 659 3 is_stmt 1 view .LVU578 661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1784 .loc 1 661 3 view .LVU579 661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1785 .loc 1 661 15 is_stmt 0 view .LVU580 1786 0006 2423 movs r3, #36 1787 0008 80F84130 strb r3, [r0, #65] 664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1788 .loc 1 664 3 is_stmt 1 view .LVU581 1789 000c 0268 ldr r2, [r0] 1790 000e 1368 ldr r3, [r2] 1791 0010 23F00103 bic r3, r3, #1 1792 0014 1360 str r3, [r2] 676:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1793 .loc 1 676 3 view .LVU582 1794 0016 FFF7FEFF bl HAL_I2C_MspDeInit 1795 .LVL126: 679:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1796 .loc 1 679 3 view .LVU583 679:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1797 .loc 1 679 19 is_stmt 0 view .LVU584 1798 001a 0020 movs r0, #0 1799 001c 6064 str r0, [r4, #68] 680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1800 .loc 1 680 3 is_stmt 1 view .LVU585 680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; ARM GAS /tmp/ccSHpINd.s page 173 1801 .loc 1 680 15 is_stmt 0 view .LVU586 1802 001e 84F84100 strb r0, [r4, #65] 681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1803 .loc 1 681 3 is_stmt 1 view .LVU587 681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1804 .loc 1 681 23 is_stmt 0 view .LVU588 1805 0022 2063 str r0, [r4, #48] 682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1806 .loc 1 682 3 is_stmt 1 view .LVU589 682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1807 .loc 1 682 14 is_stmt 0 view .LVU590 1808 0024 84F84200 strb r0, [r4, #66] 685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1809 .loc 1 685 3 is_stmt 1 view .LVU591 685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1810 .loc 1 685 3 view .LVU592 1811 0028 84F84000 strb r0, [r4, #64] 685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1812 .loc 1 685 3 view .LVU593 687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1813 .loc 1 687 3 view .LVU594 688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1814 .loc 1 688 1 is_stmt 0 view .LVU595 1815 002c 10BD pop {r4, pc} 1816 .LVL127: 1817 .L147: 1818 .LCFI18: 1819 .cfi_def_cfa_offset 0 1820 .cfi_restore 4 1821 .cfi_restore 14 655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1822 .loc 1 655 12 view .LVU596 1823 002e 0120 movs r0, #1 1824 .LVL128: 688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1825 .loc 1 688 1 view .LVU597 1826 0030 7047 bx lr 1827 .cfi_endproc 1828 .LFE142: 1830 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits 1831 .align 1 1832 .global HAL_I2C_Master_Transmit 1833 .syntax unified 1834 .thumb 1835 .thumb_func 1837 HAL_I2C_Master_Transmit: 1838 .LVL129: 1839 .LFB145: 1121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 1840 .loc 1 1121 1 is_stmt 1 view -0 1841 .cfi_startproc 1842 @ args = 4, pretend = 0, frame = 0 1843 @ frame_needed = 0, uses_anonymous_args = 0 1121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 1844 .loc 1 1121 1 is_stmt 0 view .LVU599 1845 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 1846 .LCFI19: ARM GAS /tmp/ccSHpINd.s page 174 1847 .cfi_def_cfa_offset 32 1848 .cfi_offset 4, -32 1849 .cfi_offset 5, -28 1850 .cfi_offset 6, -24 1851 .cfi_offset 7, -20 1852 .cfi_offset 8, -16 1853 .cfi_offset 9, -12 1854 .cfi_offset 10, -8 1855 .cfi_offset 14, -4 1856 0004 82B0 sub sp, sp, #8 1857 .LCFI20: 1858 .cfi_def_cfa_offset 40 1859 0006 0F46 mov r7, r1 1860 0008 0A9E ldr r6, [sp, #40] 1122:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 1861 .loc 1 1122 3 is_stmt 1 view .LVU600 1123:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1862 .loc 1 1123 3 view .LVU601 1125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1863 .loc 1 1125 3 view .LVU602 1125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1864 .loc 1 1125 11 is_stmt 0 view .LVU603 1865 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 1866 .LVL130: 1125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1867 .loc 1 1125 11 view .LVU604 1868 000e C9B2 uxtb r1, r1 1125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1869 .loc 1 1125 6 view .LVU605 1870 0010 2029 cmp r1, #32 1871 0012 40F0B780 bne .L162 1872 0016 0446 mov r4, r0 1873 0018 9046 mov r8, r2 1874 001a 9946 mov r9, r3 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1875 .loc 1 1128 5 is_stmt 1 view .LVU606 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1876 .loc 1 1128 5 view .LVU607 1877 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 1878 .LVL131: 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1879 .loc 1 1128 5 is_stmt 0 view .LVU608 1880 0020 012B cmp r3, #1 1881 0022 00F0B380 beq .L163 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1882 .loc 1 1128 5 is_stmt 1 discriminator 2 view .LVU609 1883 0026 4FF0010A mov r10, #1 1884 002a 80F840A0 strb r10, [r0, #64] 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1885 .loc 1 1128 5 discriminator 2 view .LVU610 1131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1886 .loc 1 1131 5 view .LVU611 1131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1887 .loc 1 1131 17 is_stmt 0 view .LVU612 1888 002e FFF7FEFF bl HAL_GetTick 1889 .LVL132: 1131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 175 1890 .loc 1 1131 17 view .LVU613 1891 0032 0546 mov r5, r0 1892 .LVL133: 1133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1893 .loc 1 1133 5 is_stmt 1 view .LVU614 1133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1894 .loc 1 1133 9 is_stmt 0 view .LVU615 1895 0034 0090 str r0, [sp] 1896 0036 1923 movs r3, #25 1897 0038 5246 mov r2, r10 1898 003a 4FF40041 mov r1, #32768 1899 003e 2046 mov r0, r4 1900 .LVL134: 1133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1901 .loc 1 1133 9 view .LVU616 1902 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1903 .LVL135: 1133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1904 .loc 1 1133 8 discriminator 1 view .LVU617 1905 0044 0028 cmp r0, #0 1906 0046 40F0A380 bne .L164 1138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1907 .loc 1 1138 5 is_stmt 1 view .LVU618 1138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1908 .loc 1 1138 21 is_stmt 0 view .LVU619 1909 004a 2123 movs r3, #33 1910 004c 84F84130 strb r3, [r4, #65] 1139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1911 .loc 1 1139 5 is_stmt 1 view .LVU620 1139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1912 .loc 1 1139 21 is_stmt 0 view .LVU621 1913 0050 1023 movs r3, #16 1914 0052 84F84230 strb r3, [r4, #66] 1140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1915 .loc 1 1140 5 is_stmt 1 view .LVU622 1140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1916 .loc 1 1140 21 is_stmt 0 view .LVU623 1917 0056 0023 movs r3, #0 1918 0058 6364 str r3, [r4, #68] 1143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 1919 .loc 1 1143 5 is_stmt 1 view .LVU624 1143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 1920 .loc 1 1143 21 is_stmt 0 view .LVU625 1921 005a C4F82480 str r8, [r4, #36] 1144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1922 .loc 1 1144 5 is_stmt 1 view .LVU626 1144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1923 .loc 1 1144 21 is_stmt 0 view .LVU627 1924 005e A4F82A90 strh r9, [r4, #42] @ movhi 1145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1925 .loc 1 1145 5 is_stmt 1 view .LVU628 1145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1926 .loc 1 1145 21 is_stmt 0 view .LVU629 1927 0062 6363 str r3, [r4, #52] 1147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1928 .loc 1 1147 5 is_stmt 1 view .LVU630 1147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 176 1929 .loc 1 1147 13 is_stmt 0 view .LVU631 1930 0064 638D ldrh r3, [r4, #42] 1931 0066 9BB2 uxth r3, r3 1147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1932 .loc 1 1147 8 view .LVU632 1933 0068 FF2B cmp r3, #255 1934 006a 1ED9 bls .L154 1149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1935 .loc 1 1149 7 is_stmt 1 view .LVU633 1149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1936 .loc 1 1149 22 is_stmt 0 view .LVU634 1937 006c FF23 movs r3, #255 1938 006e 2385 strh r3, [r4, #40] @ movhi 1150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1939 .loc 1 1150 7 is_stmt 1 view .LVU635 1940 .LVL136: 1150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1941 .loc 1 1150 16 is_stmt 0 view .LVU636 1942 0070 4FF08073 mov r3, #16777216 1943 .LVL137: 1944 .L155: 1158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1945 .loc 1 1158 5 is_stmt 1 view .LVU637 1158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1946 .loc 1 1158 13 is_stmt 0 view .LVU638 1947 0074 228D ldrh r2, [r4, #40] 1158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1948 .loc 1 1158 8 view .LVU639 1949 0076 EAB1 cbz r2, .L156 1162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1950 .loc 1 1162 7 is_stmt 1 view .LVU640 1162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1951 .loc 1 1162 11 is_stmt 0 view .LVU641 1952 0078 2268 ldr r2, [r4] 1162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1953 .loc 1 1162 30 view .LVU642 1954 007a 98F80010 ldrb r1, [r8] @ zero_extendqisi2 1162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1955 .loc 1 1162 28 view .LVU643 1956 007e 9162 str r1, [r2, #40] 1165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1957 .loc 1 1165 7 is_stmt 1 view .LVU644 1165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1958 .loc 1 1165 11 is_stmt 0 view .LVU645 1959 0080 626A ldr r2, [r4, #36] 1165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1960 .loc 1 1165 21 view .LVU646 1961 0082 0132 adds r2, r2, #1 1962 0084 6262 str r2, [r4, #36] 1167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 1963 .loc 1 1167 7 is_stmt 1 view .LVU647 1167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 1964 .loc 1 1167 11 is_stmt 0 view .LVU648 1965 0086 628D ldrh r2, [r4, #42] 1966 0088 92B2 uxth r2, r2 1167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 1967 .loc 1 1167 22 view .LVU649 ARM GAS /tmp/ccSHpINd.s page 177 1968 008a 013A subs r2, r2, #1 1969 008c 92B2 uxth r2, r2 1970 008e 6285 strh r2, [r4, #42] @ movhi 1168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1971 .loc 1 1168 7 is_stmt 1 view .LVU650 1168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1972 .loc 1 1168 11 is_stmt 0 view .LVU651 1973 0090 228D ldrh r2, [r4, #40] 1168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1974 .loc 1 1168 21 view .LVU652 1975 0092 013A subs r2, r2, #1 1976 0094 92B2 uxth r2, r2 1977 0096 2285 strh r2, [r4, #40] @ movhi 1172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1978 .loc 1 1172 7 is_stmt 1 view .LVU653 1979 0098 0132 adds r2, r2, #1 1980 009a 4149 ldr r1, .L170 1981 009c 0091 str r1, [sp] 1982 009e D2B2 uxtb r2, r2 1983 00a0 3946 mov r1, r7 1984 00a2 2046 mov r0, r4 1985 00a4 FFF7FEFF bl I2C_TransferConfig 1986 .LVL138: 1172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1987 .loc 1 1172 7 is_stmt 0 view .LVU654 1988 00a8 18E0 b .L158 1989 .LVL139: 1990 .L154: 1154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1991 .loc 1 1154 7 is_stmt 1 view .LVU655 1154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1992 .loc 1 1154 28 is_stmt 0 view .LVU656 1993 00aa 638D ldrh r3, [r4, #42] 1154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1994 .loc 1 1154 22 view .LVU657 1995 00ac 2385 strh r3, [r4, #40] @ movhi 1155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1996 .loc 1 1155 7 is_stmt 1 view .LVU658 1997 .LVL140: 1155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1998 .loc 1 1155 16 is_stmt 0 view .LVU659 1999 00ae 4FF00073 mov r3, #33554432 2000 00b2 DFE7 b .L155 2001 .LVL141: 2002 .L156: 1179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 2003 .loc 1 1179 7 is_stmt 1 view .LVU660 2004 00b4 3A49 ldr r1, .L170 2005 00b6 0091 str r1, [sp] 2006 00b8 D2B2 uxtb r2, r2 2007 00ba 3946 mov r1, r7 2008 00bc 2046 mov r0, r4 2009 00be FFF7FEFF bl I2C_TransferConfig 2010 .LVL142: 1179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 2011 .loc 1 1179 7 is_stmt 0 view .LVU661 2012 00c2 0BE0 b .L158 ARM GAS /tmp/ccSHpINd.s page 178 2013 .L160: 1215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2014 .loc 1 1215 11 is_stmt 1 view .LVU662 1215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2015 .loc 1 1215 32 is_stmt 0 view .LVU663 2016 00c4 628D ldrh r2, [r4, #42] 2017 00c6 92B2 uxth r2, r2 1215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2018 .loc 1 1215 26 view .LVU664 2019 00c8 2285 strh r2, [r4, #40] @ movhi 1216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2020 .loc 1 1216 11 is_stmt 1 view .LVU665 2021 00ca 0023 movs r3, #0 2022 00cc 0093 str r3, [sp] 2023 00ce 4FF00073 mov r3, #33554432 2024 00d2 D2B2 uxtb r2, r2 2025 00d4 3946 mov r1, r7 2026 00d6 2046 mov r0, r4 2027 00d8 FFF7FEFF bl I2C_TransferConfig 2028 .LVL143: 2029 .L158: 1183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2030 .loc 1 1183 28 view .LVU666 1183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2031 .loc 1 1183 16 is_stmt 0 view .LVU667 2032 00dc 638D ldrh r3, [r4, #42] 2033 00de 9BB2 uxth r3, r3 1183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2034 .loc 1 1183 28 view .LVU668 2035 00e0 002B cmp r3, #0 2036 00e2 33D0 beq .L169 1186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2037 .loc 1 1186 7 is_stmt 1 view .LVU669 1186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2038 .loc 1 1186 11 is_stmt 0 view .LVU670 2039 00e4 2A46 mov r2, r5 2040 00e6 3146 mov r1, r6 2041 00e8 2046 mov r0, r4 2042 00ea FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2043 .LVL144: 1186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2044 .loc 1 1186 10 discriminator 1 view .LVU671 2045 00ee 0028 cmp r0, #0 2046 00f0 50D1 bne .L165 1191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2047 .loc 1 1191 7 is_stmt 1 view .LVU672 1191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2048 .loc 1 1191 35 is_stmt 0 view .LVU673 2049 00f2 626A ldr r2, [r4, #36] 1191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2050 .loc 1 1191 11 view .LVU674 2051 00f4 2368 ldr r3, [r4] 1191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2052 .loc 1 1191 30 view .LVU675 2053 00f6 1278 ldrb r2, [r2] @ zero_extendqisi2 1191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2054 .loc 1 1191 28 view .LVU676 ARM GAS /tmp/ccSHpINd.s page 179 2055 00f8 9A62 str r2, [r3, #40] 1194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2056 .loc 1 1194 7 is_stmt 1 view .LVU677 1194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2057 .loc 1 1194 11 is_stmt 0 view .LVU678 2058 00fa 636A ldr r3, [r4, #36] 1194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2059 .loc 1 1194 21 view .LVU679 2060 00fc 0133 adds r3, r3, #1 2061 00fe 6362 str r3, [r4, #36] 1196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 2062 .loc 1 1196 7 is_stmt 1 view .LVU680 1196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 2063 .loc 1 1196 11 is_stmt 0 view .LVU681 2064 0100 638D ldrh r3, [r4, #42] 2065 0102 9BB2 uxth r3, r3 1196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 2066 .loc 1 1196 22 view .LVU682 2067 0104 013B subs r3, r3, #1 2068 0106 9BB2 uxth r3, r3 2069 0108 6385 strh r3, [r4, #42] @ movhi 1197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2070 .loc 1 1197 7 is_stmt 1 view .LVU683 1197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2071 .loc 1 1197 11 is_stmt 0 view .LVU684 2072 010a 238D ldrh r3, [r4, #40] 1197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2073 .loc 1 1197 21 view .LVU685 2074 010c 013B subs r3, r3, #1 2075 010e 9BB2 uxth r3, r3 2076 0110 2385 strh r3, [r4, #40] @ movhi 1199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2077 .loc 1 1199 7 is_stmt 1 view .LVU686 1199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2078 .loc 1 1199 16 is_stmt 0 view .LVU687 2079 0112 628D ldrh r2, [r4, #42] 2080 0114 92B2 uxth r2, r2 1199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2081 .loc 1 1199 10 view .LVU688 2082 0116 002A cmp r2, #0 2083 0118 E0D0 beq .L158 1199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2084 .loc 1 1199 35 discriminator 1 view .LVU689 2085 011a 002B cmp r3, #0 2086 011c DED1 bne .L158 1202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2087 .loc 1 1202 9 is_stmt 1 view .LVU690 1202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2088 .loc 1 1202 13 is_stmt 0 view .LVU691 2089 011e 0095 str r5, [sp] 2090 0120 3346 mov r3, r6 2091 0122 0022 movs r2, #0 2092 0124 8021 movs r1, #128 2093 0126 2046 mov r0, r4 2094 0128 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2095 .LVL145: 1202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 180 2096 .loc 1 1202 12 discriminator 1 view .LVU692 2097 012c A0BB cbnz r0, .L166 1207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2098 .loc 1 1207 9 is_stmt 1 view .LVU693 1207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2099 .loc 1 1207 17 is_stmt 0 view .LVU694 2100 012e 638D ldrh r3, [r4, #42] 2101 0130 9BB2 uxth r3, r3 1207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2102 .loc 1 1207 12 view .LVU695 2103 0132 FF2B cmp r3, #255 2104 0134 C6D9 bls .L160 1209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2105 .loc 1 1209 11 is_stmt 1 view .LVU696 1209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2106 .loc 1 1209 26 is_stmt 0 view .LVU697 2107 0136 FF22 movs r2, #255 2108 0138 2285 strh r2, [r4, #40] @ movhi 1210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2109 .loc 1 1210 11 is_stmt 1 view .LVU698 2110 013a 0023 movs r3, #0 2111 013c 0093 str r3, [sp] 2112 013e 4FF08073 mov r3, #16777216 2113 0142 3946 mov r1, r7 2114 0144 2046 mov r0, r4 2115 0146 FFF7FEFF bl I2C_TransferConfig 2116 .LVL146: 2117 014a C7E7 b .L158 2118 .L169: 1224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2119 .loc 1 1224 5 view .LVU699 1224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2120 .loc 1 1224 9 is_stmt 0 view .LVU700 2121 014c 2A46 mov r2, r5 2122 014e 3146 mov r1, r6 2123 0150 2046 mov r0, r4 2124 0152 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2125 .LVL147: 1224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2126 .loc 1 1224 8 discriminator 1 view .LVU701 2127 0156 08BB cbnz r0, .L167 1230:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2128 .loc 1 1230 5 is_stmt 1 view .LVU702 2129 0158 2368 ldr r3, [r4] 2130 015a 2022 movs r2, #32 2131 015c DA61 str r2, [r3, #28] 1233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2132 .loc 1 1233 5 view .LVU703 2133 015e 2168 ldr r1, [r4] 2134 0160 4B68 ldr r3, [r1, #4] 2135 0162 23F0FF73 bic r3, r3, #33423360 2136 0166 23F48B33 bic r3, r3, #71168 2137 016a 23F4FF73 bic r3, r3, #510 2138 016e 23F00103 bic r3, r3, #1 2139 0172 4B60 str r3, [r1, #4] 1235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2140 .loc 1 1235 5 view .LVU704 ARM GAS /tmp/ccSHpINd.s page 181 1235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2141 .loc 1 1235 17 is_stmt 0 view .LVU705 2142 0174 84F84120 strb r2, [r4, #65] 1236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2143 .loc 1 1236 5 is_stmt 1 view .LVU706 1236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2144 .loc 1 1236 17 is_stmt 0 view .LVU707 2145 0178 0023 movs r3, #0 2146 017a 84F84230 strb r3, [r4, #66] 1239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2147 .loc 1 1239 5 is_stmt 1 view .LVU708 1239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2148 .loc 1 1239 5 view .LVU709 2149 017e 84F84030 strb r3, [r4, #64] 1239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2150 .loc 1 1239 5 view .LVU710 1241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2151 .loc 1 1241 5 view .LVU711 1241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2152 .loc 1 1241 12 is_stmt 0 view .LVU712 2153 0182 00E0 b .L153 2154 .LVL148: 2155 .L162: 1245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2156 .loc 1 1245 12 view .LVU713 2157 0184 0220 movs r0, #2 2158 .LVL149: 2159 .L153: 1247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2160 .loc 1 1247 1 view .LVU714 2161 0186 02B0 add sp, sp, #8 2162 .LCFI21: 2163 .cfi_remember_state 2164 .cfi_def_cfa_offset 32 2165 @ sp needed 2166 0188 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2167 .LVL150: 2168 .L163: 2169 .LCFI22: 2170 .cfi_restore_state 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2171 .loc 1 1128 5 discriminator 1 view .LVU715 2172 018c 0220 movs r0, #2 2173 .LVL151: 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2174 .loc 1 1128 5 discriminator 1 view .LVU716 2175 018e FAE7 b .L153 2176 .LVL152: 2177 .L164: 1135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2178 .loc 1 1135 14 view .LVU717 2179 0190 0120 movs r0, #1 2180 0192 F8E7 b .L153 2181 .LVL153: 2182 .L165: 1188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2183 .loc 1 1188 16 view .LVU718 ARM GAS /tmp/ccSHpINd.s page 182 2184 0194 0120 movs r0, #1 2185 0196 F6E7 b .L153 2186 .L166: 1204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2187 .loc 1 1204 18 view .LVU719 2188 0198 0120 movs r0, #1 2189 019a F4E7 b .L153 2190 .L167: 1226:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2191 .loc 1 1226 14 view .LVU720 2192 019c 0120 movs r0, #1 2193 019e F2E7 b .L153 2194 .L171: 2195 .align 2 2196 .L170: 2197 01a0 00200080 .word -2147475456 2198 .cfi_endproc 2199 .LFE145: 2201 .section .text.HAL_I2C_Master_Receive,"ax",%progbits 2202 .align 1 2203 .global HAL_I2C_Master_Receive 2204 .syntax unified 2205 .thumb 2206 .thumb_func 2208 HAL_I2C_Master_Receive: 2209 .LVL154: 2210 .LFB146: 1262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 2211 .loc 1 1262 1 is_stmt 1 view -0 2212 .cfi_startproc 2213 @ args = 4, pretend = 0, frame = 0 2214 @ frame_needed = 0, uses_anonymous_args = 0 1262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 2215 .loc 1 1262 1 is_stmt 0 view .LVU722 2216 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 2217 .LCFI23: 2218 .cfi_def_cfa_offset 32 2219 .cfi_offset 4, -32 2220 .cfi_offset 5, -28 2221 .cfi_offset 6, -24 2222 .cfi_offset 7, -20 2223 .cfi_offset 8, -16 2224 .cfi_offset 9, -12 2225 .cfi_offset 10, -8 2226 .cfi_offset 14, -4 2227 0004 82B0 sub sp, sp, #8 2228 .LCFI24: 2229 .cfi_def_cfa_offset 40 2230 0006 0F46 mov r7, r1 2231 0008 0A9E ldr r6, [sp, #40] 1263:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2232 .loc 1 1263 3 is_stmt 1 view .LVU723 1265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2233 .loc 1 1265 3 view .LVU724 1265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2234 .loc 1 1265 11 is_stmt 0 view .LVU725 2235 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 ARM GAS /tmp/ccSHpINd.s page 183 2236 .LVL155: 1265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2237 .loc 1 1265 11 view .LVU726 2238 000e C9B2 uxtb r1, r1 1265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2239 .loc 1 1265 6 view .LVU727 2240 0010 2029 cmp r1, #32 2241 0012 40F0A380 bne .L180 2242 0016 0446 mov r4, r0 2243 0018 9046 mov r8, r2 2244 001a 9946 mov r9, r3 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2245 .loc 1 1268 5 is_stmt 1 view .LVU728 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2246 .loc 1 1268 5 view .LVU729 2247 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2248 .LVL156: 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2249 .loc 1 1268 5 is_stmt 0 view .LVU730 2250 0020 012B cmp r3, #1 2251 0022 00F09F80 beq .L181 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2252 .loc 1 1268 5 is_stmt 1 discriminator 2 view .LVU731 2253 0026 4FF0010A mov r10, #1 2254 002a 80F840A0 strb r10, [r0, #64] 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2255 .loc 1 1268 5 discriminator 2 view .LVU732 1271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2256 .loc 1 1271 5 view .LVU733 1271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2257 .loc 1 1271 17 is_stmt 0 view .LVU734 2258 002e FFF7FEFF bl HAL_GetTick 2259 .LVL157: 1271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2260 .loc 1 1271 17 view .LVU735 2261 0032 0546 mov r5, r0 2262 .LVL158: 1273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2263 .loc 1 1273 5 is_stmt 1 view .LVU736 1273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2264 .loc 1 1273 9 is_stmt 0 view .LVU737 2265 0034 0090 str r0, [sp] 2266 0036 1923 movs r3, #25 2267 0038 5246 mov r2, r10 2268 003a 4FF40041 mov r1, #32768 2269 003e 2046 mov r0, r4 2270 .LVL159: 1273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2271 .loc 1 1273 9 view .LVU738 2272 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2273 .LVL160: 1273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2274 .loc 1 1273 8 discriminator 1 view .LVU739 2275 0044 0028 cmp r0, #0 2276 0046 40F08F80 bne .L182 1278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2277 .loc 1 1278 5 is_stmt 1 view .LVU740 ARM GAS /tmp/ccSHpINd.s page 184 1278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2278 .loc 1 1278 21 is_stmt 0 view .LVU741 2279 004a 2223 movs r3, #34 2280 004c 84F84130 strb r3, [r4, #65] 1279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2281 .loc 1 1279 5 is_stmt 1 view .LVU742 1279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2282 .loc 1 1279 21 is_stmt 0 view .LVU743 2283 0050 1023 movs r3, #16 2284 0052 84F84230 strb r3, [r4, #66] 1280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2285 .loc 1 1280 5 is_stmt 1 view .LVU744 1280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2286 .loc 1 1280 21 is_stmt 0 view .LVU745 2287 0056 0023 movs r3, #0 2288 0058 6364 str r3, [r4, #68] 1283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2289 .loc 1 1283 5 is_stmt 1 view .LVU746 1283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2290 .loc 1 1283 21 is_stmt 0 view .LVU747 2291 005a C4F82480 str r8, [r4, #36] 1284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2292 .loc 1 1284 5 is_stmt 1 view .LVU748 1284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2293 .loc 1 1284 21 is_stmt 0 view .LVU749 2294 005e A4F82A90 strh r9, [r4, #42] @ movhi 1285:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2295 .loc 1 1285 5 is_stmt 1 view .LVU750 1285:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2296 .loc 1 1285 21 is_stmt 0 view .LVU751 2297 0062 6363 str r3, [r4, #52] 1289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2298 .loc 1 1289 5 is_stmt 1 view .LVU752 1289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2299 .loc 1 1289 13 is_stmt 0 view .LVU753 2300 0064 638D ldrh r3, [r4, #42] 2301 0066 9BB2 uxth r3, r3 1289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2302 .loc 1 1289 8 view .LVU754 2303 0068 FF2B cmp r3, #255 2304 006a 0BD9 bls .L174 1291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2305 .loc 1 1291 7 is_stmt 1 view .LVU755 1291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2306 .loc 1 1291 22 is_stmt 0 view .LVU756 2307 006c 5246 mov r2, r10 2308 006e A4F828A0 strh r10, [r4, #40] @ movhi 1292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2309 .loc 1 1292 7 is_stmt 1 view .LVU757 2310 0072 414B ldr r3, .L188 2311 0074 0093 str r3, [sp] 2312 0076 4FF08073 mov r3, #16777216 2313 007a 3946 mov r1, r7 2314 007c 2046 mov r0, r4 2315 007e FFF7FEFF bl I2C_TransferConfig 2316 .LVL161: 2317 0082 18E0 b .L176 ARM GAS /tmp/ccSHpINd.s page 185 2318 .L174: 1297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2319 .loc 1 1297 7 view .LVU758 1297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2320 .loc 1 1297 28 is_stmt 0 view .LVU759 2321 0084 628D ldrh r2, [r4, #42] 2322 0086 92B2 uxth r2, r2 1297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2323 .loc 1 1297 22 view .LVU760 2324 0088 2285 strh r2, [r4, #40] @ movhi 1298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2325 .loc 1 1298 7 is_stmt 1 view .LVU761 2326 008a 3B4B ldr r3, .L188 2327 008c 0093 str r3, [sp] 2328 008e 4FF00073 mov r3, #33554432 2329 0092 D2B2 uxtb r2, r2 2330 0094 3946 mov r1, r7 2331 0096 2046 mov r0, r4 2332 0098 FFF7FEFF bl I2C_TransferConfig 2333 .LVL162: 2334 009c 0BE0 b .L176 2335 .L178: 1335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2336 .loc 1 1335 11 view .LVU762 1335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2337 .loc 1 1335 32 is_stmt 0 view .LVU763 2338 009e 628D ldrh r2, [r4, #42] 2339 00a0 92B2 uxth r2, r2 1335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2340 .loc 1 1335 26 view .LVU764 2341 00a2 2285 strh r2, [r4, #40] @ movhi 1336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2342 .loc 1 1336 11 is_stmt 1 view .LVU765 2343 00a4 0023 movs r3, #0 2344 00a6 0093 str r3, [sp] 2345 00a8 4FF00073 mov r3, #33554432 2346 00ac D2B2 uxtb r2, r2 2347 00ae 3946 mov r1, r7 2348 00b0 2046 mov r0, r4 2349 00b2 FFF7FEFF bl I2C_TransferConfig 2350 .LVL163: 2351 .L176: 1302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2352 .loc 1 1302 28 view .LVU766 1302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2353 .loc 1 1302 16 is_stmt 0 view .LVU767 2354 00b6 638D ldrh r3, [r4, #42] 2355 00b8 9BB2 uxth r3, r3 1302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2356 .loc 1 1302 28 view .LVU768 2357 00ba 002B cmp r3, #0 2358 00bc 32D0 beq .L187 1305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2359 .loc 1 1305 7 is_stmt 1 view .LVU769 1305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2360 .loc 1 1305 11 is_stmt 0 view .LVU770 2361 00be 2A46 mov r2, r5 ARM GAS /tmp/ccSHpINd.s page 186 2362 00c0 3146 mov r1, r6 2363 00c2 2046 mov r0, r4 2364 00c4 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2365 .LVL164: 1305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2366 .loc 1 1305 10 discriminator 1 view .LVU771 2367 00c8 0028 cmp r0, #0 2368 00ca 4FD1 bne .L183 1311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2369 .loc 1 1311 7 is_stmt 1 view .LVU772 1311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2370 .loc 1 1311 38 is_stmt 0 view .LVU773 2371 00cc 2368 ldr r3, [r4] 1311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2372 .loc 1 1311 48 view .LVU774 2373 00ce 5A6A ldr r2, [r3, #36] 1311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2374 .loc 1 1311 12 view .LVU775 2375 00d0 636A ldr r3, [r4, #36] 1311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2376 .loc 1 1311 23 view .LVU776 2377 00d2 1A70 strb r2, [r3] 1314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2378 .loc 1 1314 7 is_stmt 1 view .LVU777 1314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2379 .loc 1 1314 11 is_stmt 0 view .LVU778 2380 00d4 636A ldr r3, [r4, #36] 1314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2381 .loc 1 1314 21 view .LVU779 2382 00d6 0133 adds r3, r3, #1 2383 00d8 6362 str r3, [r4, #36] 1316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 2384 .loc 1 1316 7 is_stmt 1 view .LVU780 1316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 2385 .loc 1 1316 11 is_stmt 0 view .LVU781 2386 00da 228D ldrh r2, [r4, #40] 1316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 2387 .loc 1 1316 21 view .LVU782 2388 00dc 013A subs r2, r2, #1 2389 00de 92B2 uxth r2, r2 2390 00e0 2285 strh r2, [r4, #40] @ movhi 1317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2391 .loc 1 1317 7 is_stmt 1 view .LVU783 1317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2392 .loc 1 1317 11 is_stmt 0 view .LVU784 2393 00e2 638D ldrh r3, [r4, #42] 2394 00e4 9BB2 uxth r3, r3 1317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2395 .loc 1 1317 22 view .LVU785 2396 00e6 013B subs r3, r3, #1 2397 00e8 9BB2 uxth r3, r3 2398 00ea 6385 strh r3, [r4, #42] @ movhi 1319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2399 .loc 1 1319 7 is_stmt 1 view .LVU786 1319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2400 .loc 1 1319 16 is_stmt 0 view .LVU787 2401 00ec 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccSHpINd.s page 187 2402 00ee 9BB2 uxth r3, r3 1319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2403 .loc 1 1319 10 view .LVU788 2404 00f0 002B cmp r3, #0 2405 00f2 E0D0 beq .L176 1319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2406 .loc 1 1319 35 discriminator 1 view .LVU789 2407 00f4 002A cmp r2, #0 2408 00f6 DED1 bne .L176 1322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2409 .loc 1 1322 9 is_stmt 1 view .LVU790 1322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2410 .loc 1 1322 13 is_stmt 0 view .LVU791 2411 00f8 0095 str r5, [sp] 2412 00fa 3346 mov r3, r6 2413 00fc 8021 movs r1, #128 2414 00fe 2046 mov r0, r4 2415 0100 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2416 .LVL165: 1322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2417 .loc 1 1322 12 discriminator 1 view .LVU792 2418 0104 A0BB cbnz r0, .L184 1327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2419 .loc 1 1327 9 is_stmt 1 view .LVU793 1327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2420 .loc 1 1327 17 is_stmt 0 view .LVU794 2421 0106 638D ldrh r3, [r4, #42] 2422 0108 9BB2 uxth r3, r3 1327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2423 .loc 1 1327 12 view .LVU795 2424 010a FF2B cmp r3, #255 2425 010c C7D9 bls .L178 1329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2426 .loc 1 1329 11 is_stmt 1 view .LVU796 1329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2427 .loc 1 1329 26 is_stmt 0 view .LVU797 2428 010e FF22 movs r2, #255 2429 0110 2285 strh r2, [r4, #40] @ movhi 1330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2430 .loc 1 1330 11 is_stmt 1 view .LVU798 2431 0112 0023 movs r3, #0 2432 0114 0093 str r3, [sp] 2433 0116 4FF08073 mov r3, #16777216 2434 011a 3946 mov r1, r7 2435 011c 2046 mov r0, r4 2436 011e FFF7FEFF bl I2C_TransferConfig 2437 .LVL166: 2438 0122 C8E7 b .L176 2439 .L187: 1344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2440 .loc 1 1344 5 view .LVU799 1344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2441 .loc 1 1344 9 is_stmt 0 view .LVU800 2442 0124 2A46 mov r2, r5 2443 0126 3146 mov r1, r6 2444 0128 2046 mov r0, r4 2445 012a FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout ARM GAS /tmp/ccSHpINd.s page 188 2446 .LVL167: 1344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2447 .loc 1 1344 8 discriminator 1 view .LVU801 2448 012e 08BB cbnz r0, .L185 1350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2449 .loc 1 1350 5 is_stmt 1 view .LVU802 2450 0130 2368 ldr r3, [r4] 2451 0132 2022 movs r2, #32 2452 0134 DA61 str r2, [r3, #28] 1353:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2453 .loc 1 1353 5 view .LVU803 2454 0136 2168 ldr r1, [r4] 2455 0138 4B68 ldr r3, [r1, #4] 2456 013a 23F0FF73 bic r3, r3, #33423360 2457 013e 23F48B33 bic r3, r3, #71168 2458 0142 23F4FF73 bic r3, r3, #510 2459 0146 23F00103 bic r3, r3, #1 2460 014a 4B60 str r3, [r1, #4] 1355:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2461 .loc 1 1355 5 view .LVU804 1355:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2462 .loc 1 1355 17 is_stmt 0 view .LVU805 2463 014c 84F84120 strb r2, [r4, #65] 1356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2464 .loc 1 1356 5 is_stmt 1 view .LVU806 1356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2465 .loc 1 1356 17 is_stmt 0 view .LVU807 2466 0150 0023 movs r3, #0 2467 0152 84F84230 strb r3, [r4, #66] 1359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2468 .loc 1 1359 5 is_stmt 1 view .LVU808 1359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2469 .loc 1 1359 5 view .LVU809 2470 0156 84F84030 strb r3, [r4, #64] 1359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2471 .loc 1 1359 5 view .LVU810 1361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2472 .loc 1 1361 5 view .LVU811 1361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2473 .loc 1 1361 12 is_stmt 0 view .LVU812 2474 015a 00E0 b .L173 2475 .LVL168: 2476 .L180: 1365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2477 .loc 1 1365 12 view .LVU813 2478 015c 0220 movs r0, #2 2479 .LVL169: 2480 .L173: 1367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2481 .loc 1 1367 1 view .LVU814 2482 015e 02B0 add sp, sp, #8 2483 .LCFI25: 2484 .cfi_remember_state 2485 .cfi_def_cfa_offset 32 2486 @ sp needed 2487 0160 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2488 .LVL170: ARM GAS /tmp/ccSHpINd.s page 189 2489 .L181: 2490 .LCFI26: 2491 .cfi_restore_state 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2492 .loc 1 1268 5 discriminator 1 view .LVU815 2493 0164 0220 movs r0, #2 2494 .LVL171: 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2495 .loc 1 1268 5 discriminator 1 view .LVU816 2496 0166 FAE7 b .L173 2497 .LVL172: 2498 .L182: 1275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2499 .loc 1 1275 14 view .LVU817 2500 0168 0120 movs r0, #1 2501 016a F8E7 b .L173 2502 .L183: 1307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2503 .loc 1 1307 16 view .LVU818 2504 016c 0120 movs r0, #1 2505 016e F6E7 b .L173 2506 .L184: 1324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2507 .loc 1 1324 18 view .LVU819 2508 0170 0120 movs r0, #1 2509 0172 F4E7 b .L173 2510 .L185: 1346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2511 .loc 1 1346 14 view .LVU820 2512 0174 0120 movs r0, #1 2513 0176 F2E7 b .L173 2514 .L189: 2515 .align 2 2516 .L188: 2517 0178 00240080 .word -2147474432 2518 .cfi_endproc 2519 .LFE146: 2521 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits 2522 .align 1 2523 .global HAL_I2C_Slave_Transmit 2524 .syntax unified 2525 .thumb 2526 .thumb_func 2528 HAL_I2C_Slave_Transmit: 2529 .LVL173: 2530 .LFB147: 1380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 2531 .loc 1 1380 1 is_stmt 1 view -0 2532 .cfi_startproc 2533 @ args = 0, pretend = 0, frame = 0 2534 @ frame_needed = 0, uses_anonymous_args = 0 1380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 2535 .loc 1 1380 1 is_stmt 0 view .LVU822 2536 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2537 .LCFI27: 2538 .cfi_def_cfa_offset 24 2539 .cfi_offset 4, -24 ARM GAS /tmp/ccSHpINd.s page 190 2540 .cfi_offset 5, -20 2541 .cfi_offset 6, -16 2542 .cfi_offset 7, -12 2543 .cfi_offset 8, -8 2544 .cfi_offset 14, -4 2545 0004 82B0 sub sp, sp, #8 2546 .LCFI28: 2547 .cfi_def_cfa_offset 32 2548 0006 1D46 mov r5, r3 1381:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t tmpXferCount; 2549 .loc 1 1381 3 is_stmt 1 view .LVU823 1382:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef error; 2550 .loc 1 1382 3 view .LVU824 1383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2551 .loc 1 1383 3 view .LVU825 1385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2552 .loc 1 1385 3 view .LVU826 1385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2553 .loc 1 1385 11 is_stmt 0 view .LVU827 2554 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2555 .LVL174: 1385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2556 .loc 1 1385 11 view .LVU828 2557 000c DBB2 uxtb r3, r3 1385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2558 .loc 1 1385 6 view .LVU829 2559 000e 202B cmp r3, #32 2560 0010 40F0EA80 bne .L205 2561 0014 0446 mov r4, r0 2562 0016 0F46 mov r7, r1 2563 0018 9046 mov r8, r2 1387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2564 .loc 1 1387 5 is_stmt 1 view .LVU830 1387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2565 .loc 1 1387 8 is_stmt 0 view .LVU831 2566 001a 002A cmp r2, #0 2567 001c 18BF it ne 2568 001e 0029 cmpne r1, #0 2569 0020 55D0 beq .L208 1393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2570 .loc 1 1393 5 is_stmt 1 view .LVU832 1393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2571 .loc 1 1393 5 view .LVU833 2572 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2573 0026 012B cmp r3, #1 2574 0028 00F0E280 beq .L206 1393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2575 .loc 1 1393 5 discriminator 2 view .LVU834 2576 002c 0123 movs r3, #1 2577 002e 80F84030 strb r3, [r0, #64] 1393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2578 .loc 1 1393 5 discriminator 2 view .LVU835 1396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2579 .loc 1 1396 5 view .LVU836 1396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2580 .loc 1 1396 17 is_stmt 0 view .LVU837 2581 0032 FFF7FEFF bl HAL_GetTick ARM GAS /tmp/ccSHpINd.s page 191 2582 .LVL175: 1396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2583 .loc 1 1396 17 view .LVU838 2584 0036 0646 mov r6, r0 2585 .LVL176: 1398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2586 .loc 1 1398 5 is_stmt 1 view .LVU839 1398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2587 .loc 1 1398 21 is_stmt 0 view .LVU840 2588 0038 2123 movs r3, #33 2589 003a 84F84130 strb r3, [r4, #65] 1399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2590 .loc 1 1399 5 is_stmt 1 view .LVU841 1399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2591 .loc 1 1399 21 is_stmt 0 view .LVU842 2592 003e 2023 movs r3, #32 2593 0040 84F84230 strb r3, [r4, #66] 1400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2594 .loc 1 1400 5 is_stmt 1 view .LVU843 1400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2595 .loc 1 1400 21 is_stmt 0 view .LVU844 2596 0044 0023 movs r3, #0 2597 0046 6364 str r3, [r4, #68] 1403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2598 .loc 1 1403 5 is_stmt 1 view .LVU845 1403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2599 .loc 1 1403 21 is_stmt 0 view .LVU846 2600 0048 6762 str r7, [r4, #36] 1404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2601 .loc 1 1404 5 is_stmt 1 view .LVU847 1404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2602 .loc 1 1404 21 is_stmt 0 view .LVU848 2603 004a A4F82A80 strh r8, [r4, #42] @ movhi 1405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2604 .loc 1 1405 5 is_stmt 1 view .LVU849 1405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2605 .loc 1 1405 21 is_stmt 0 view .LVU850 2606 004e 6363 str r3, [r4, #52] 1408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2607 .loc 1 1408 5 is_stmt 1 view .LVU851 1408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2608 .loc 1 1408 9 is_stmt 0 view .LVU852 2609 0050 2268 ldr r2, [r4] 1408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2610 .loc 1 1408 19 view .LVU853 2611 0052 5368 ldr r3, [r2, #4] 1408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2612 .loc 1 1408 25 view .LVU854 2613 0054 23F40043 bic r3, r3, #32768 2614 0058 5360 str r3, [r2, #4] 1411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2615 .loc 1 1411 5 is_stmt 1 view .LVU855 1411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2616 .loc 1 1411 19 is_stmt 0 view .LVU856 2617 005a 236A ldr r3, [r4, #32] 1411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2618 .loc 1 1411 8 view .LVU857 ARM GAS /tmp/ccSHpINd.s page 192 2619 005c B3F5003F cmp r3, #131072 2620 0060 3AD0 beq .L209 2621 .L193: 1424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2622 .loc 1 1424 5 is_stmt 1 view .LVU858 1424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2623 .loc 1 1424 9 is_stmt 0 view .LVU859 2624 0062 0096 str r6, [sp] 2625 0064 2B46 mov r3, r5 2626 0066 0022 movs r2, #0 2627 0068 0821 movs r1, #8 2628 006a 2046 mov r0, r4 2629 .LVL177: 1424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2630 .loc 1 1424 9 view .LVU860 2631 006c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2632 .LVL178: 1424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2633 .loc 1 1424 8 discriminator 1 view .LVU861 2634 0070 0028 cmp r0, #0 2635 0072 3ED1 bne .L210 1436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2636 .loc 1 1436 5 is_stmt 1 view .LVU862 2637 0074 2368 ldr r3, [r4] 2638 0076 0822 movs r2, #8 2639 0078 DA61 str r2, [r3, #28] 1439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2640 .loc 1 1439 5 view .LVU863 1439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2641 .loc 1 1439 19 is_stmt 0 view .LVU864 2642 007a E368 ldr r3, [r4, #12] 1439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2643 .loc 1 1439 8 view .LVU865 2644 007c 022B cmp r3, #2 2645 007e 42D0 beq .L211 2646 .L195: 1458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2647 .loc 1 1458 5 is_stmt 1 view .LVU866 1458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2648 .loc 1 1458 9 is_stmt 0 view .LVU867 2649 0080 0096 str r6, [sp] 2650 0082 2B46 mov r3, r5 2651 0084 0022 movs r2, #0 2652 0086 4FF48031 mov r1, #65536 2653 008a 2046 mov r0, r4 2654 008c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2655 .LVL179: 1458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2656 .loc 1 1458 8 discriminator 1 view .LVU868 2657 0090 0028 cmp r0, #0 2658 0092 4ED1 bne .L212 2659 .L197: 1469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2660 .loc 1 1469 28 is_stmt 1 view .LVU869 1469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2661 .loc 1 1469 16 is_stmt 0 view .LVU870 2662 0094 628D ldrh r2, [r4, #42] ARM GAS /tmp/ccSHpINd.s page 193 2663 0096 92B2 uxth r2, r2 1469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2664 .loc 1 1469 28 view .LVU871 2665 0098 002A cmp r2, #0 2666 009a 5BD0 beq .L213 1472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2667 .loc 1 1472 7 is_stmt 1 view .LVU872 1472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2668 .loc 1 1472 11 is_stmt 0 view .LVU873 2669 009c 3246 mov r2, r6 2670 009e 2946 mov r1, r5 2671 00a0 2046 mov r0, r4 2672 00a2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2673 .LVL180: 1472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2674 .loc 1 1472 10 discriminator 1 view .LVU874 2675 00a6 0028 cmp r0, #0 2676 00a8 4DD1 bne .L214 1480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2677 .loc 1 1480 7 is_stmt 1 view .LVU875 1480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2678 .loc 1 1480 35 is_stmt 0 view .LVU876 2679 00aa 626A ldr r2, [r4, #36] 1480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2680 .loc 1 1480 11 view .LVU877 2681 00ac 2368 ldr r3, [r4] 1480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2682 .loc 1 1480 30 view .LVU878 2683 00ae 1278 ldrb r2, [r2] @ zero_extendqisi2 1480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2684 .loc 1 1480 28 view .LVU879 2685 00b0 9A62 str r2, [r3, #40] 1483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2686 .loc 1 1483 7 is_stmt 1 view .LVU880 1483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2687 .loc 1 1483 11 is_stmt 0 view .LVU881 2688 00b2 636A ldr r3, [r4, #36] 1483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2689 .loc 1 1483 21 view .LVU882 2690 00b4 0133 adds r3, r3, #1 2691 00b6 6362 str r3, [r4, #36] 1485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2692 .loc 1 1485 7 is_stmt 1 view .LVU883 1485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2693 .loc 1 1485 11 is_stmt 0 view .LVU884 2694 00b8 B4F82AC0 ldrh ip, [r4, #42] 2695 00bc 1FFA8CFC uxth ip, ip 1485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2696 .loc 1 1485 22 view .LVU885 2697 00c0 0CF1FF3C add ip, ip, #-1 2698 00c4 1FFA8CFC uxth ip, ip 2699 00c8 A4F82AC0 strh ip, [r4, #42] @ movhi 2700 00cc E2E7 b .L197 2701 .LVL181: 2702 .L208: 1389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2703 .loc 1 1389 7 is_stmt 1 view .LVU886 ARM GAS /tmp/ccSHpINd.s page 194 1389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2704 .loc 1 1389 23 is_stmt 0 view .LVU887 2705 00ce 4FF40073 mov r3, #512 2706 00d2 4364 str r3, [r0, #68] 1390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2707 .loc 1 1390 7 is_stmt 1 view .LVU888 1390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2708 .loc 1 1390 15 is_stmt 0 view .LVU889 2709 00d4 0120 movs r0, #1 2710 .LVL182: 1390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2711 .loc 1 1390 15 view .LVU890 2712 00d6 88E0 b .L191 2713 .LVL183: 2714 .L209: 1415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2715 .loc 1 1415 7 is_stmt 1 view .LVU891 1415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2716 .loc 1 1415 35 is_stmt 0 view .LVU892 2717 00d8 626A ldr r2, [r4, #36] 1415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2718 .loc 1 1415 11 view .LVU893 2719 00da 2368 ldr r3, [r4] 1415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2720 .loc 1 1415 30 view .LVU894 2721 00dc 1278 ldrb r2, [r2] @ zero_extendqisi2 1415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2722 .loc 1 1415 28 view .LVU895 2723 00de 9A62 str r2, [r3, #40] 1418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2724 .loc 1 1418 7 is_stmt 1 view .LVU896 1418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2725 .loc 1 1418 11 is_stmt 0 view .LVU897 2726 00e0 636A ldr r3, [r4, #36] 1418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2727 .loc 1 1418 21 view .LVU898 2728 00e2 0133 adds r3, r3, #1 2729 00e4 6362 str r3, [r4, #36] 1420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2730 .loc 1 1420 7 is_stmt 1 view .LVU899 1420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2731 .loc 1 1420 11 is_stmt 0 view .LVU900 2732 00e6 638D ldrh r3, [r4, #42] 2733 00e8 9BB2 uxth r3, r3 1420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2734 .loc 1 1420 22 view .LVU901 2735 00ea 013B subs r3, r3, #1 2736 00ec 9BB2 uxth r3, r3 2737 00ee 6385 strh r3, [r4, #42] @ movhi 2738 00f0 B7E7 b .L193 2739 .LVL184: 2740 .L210: 1427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2741 .loc 1 1427 7 is_stmt 1 view .LVU902 1427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2742 .loc 1 1427 11 is_stmt 0 view .LVU903 2743 00f2 2268 ldr r2, [r4] ARM GAS /tmp/ccSHpINd.s page 195 1427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2744 .loc 1 1427 21 view .LVU904 2745 00f4 5368 ldr r3, [r2, #4] 1427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2746 .loc 1 1427 27 view .LVU905 2747 00f6 43F40043 orr r3, r3, #32768 2748 00fa 5360 str r3, [r2, #4] 1430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2749 .loc 1 1430 7 is_stmt 1 view .LVU906 2750 00fc 2046 mov r0, r4 2751 00fe FFF7FEFF bl I2C_Flush_TXDR 2752 .LVL185: 1432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2753 .loc 1 1432 7 view .LVU907 1432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2754 .loc 1 1432 14 is_stmt 0 view .LVU908 2755 0102 0120 movs r0, #1 2756 0104 71E0 b .L191 2757 .L211: 1442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2758 .loc 1 1442 7 is_stmt 1 view .LVU909 1442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2759 .loc 1 1442 11 is_stmt 0 view .LVU910 2760 0106 0096 str r6, [sp] 2761 0108 2B46 mov r3, r5 2762 010a 0022 movs r2, #0 2763 010c 0821 movs r1, #8 2764 010e 2046 mov r0, r4 2765 0110 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2766 .LVL186: 1442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2767 .loc 1 1442 10 discriminator 1 view .LVU911 2768 0114 18B9 cbnz r0, .L215 1454:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2769 .loc 1 1454 7 is_stmt 1 view .LVU912 2770 0116 2368 ldr r3, [r4] 2771 0118 0822 movs r2, #8 2772 011a DA61 str r2, [r3, #28] 2773 011c B0E7 b .L195 2774 .L215: 1445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2775 .loc 1 1445 9 view .LVU913 1445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2776 .loc 1 1445 13 is_stmt 0 view .LVU914 2777 011e 2268 ldr r2, [r4] 1445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2778 .loc 1 1445 23 view .LVU915 2779 0120 5368 ldr r3, [r2, #4] 1445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2780 .loc 1 1445 29 view .LVU916 2781 0122 43F40043 orr r3, r3, #32768 2782 0126 5360 str r3, [r2, #4] 1448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2783 .loc 1 1448 9 is_stmt 1 view .LVU917 2784 0128 2046 mov r0, r4 2785 012a FFF7FEFF bl I2C_Flush_TXDR 2786 .LVL187: ARM GAS /tmp/ccSHpINd.s page 196 1450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2787 .loc 1 1450 9 view .LVU918 1450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2788 .loc 1 1450 16 is_stmt 0 view .LVU919 2789 012e 0120 movs r0, #1 2790 0130 5BE0 b .L191 2791 .L212: 1461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2792 .loc 1 1461 7 is_stmt 1 view .LVU920 1461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2793 .loc 1 1461 11 is_stmt 0 view .LVU921 2794 0132 2268 ldr r2, [r4] 1461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2795 .loc 1 1461 21 view .LVU922 2796 0134 5368 ldr r3, [r2, #4] 1461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2797 .loc 1 1461 27 view .LVU923 2798 0136 43F40043 orr r3, r3, #32768 2799 013a 5360 str r3, [r2, #4] 1464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2800 .loc 1 1464 7 is_stmt 1 view .LVU924 2801 013c 2046 mov r0, r4 2802 013e FFF7FEFF bl I2C_Flush_TXDR 2803 .LVL188: 1466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2804 .loc 1 1466 7 view .LVU925 1466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2805 .loc 1 1466 14 is_stmt 0 view .LVU926 2806 0142 0120 movs r0, #1 2807 0144 51E0 b .L191 2808 .L214: 1475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2809 .loc 1 1475 9 is_stmt 1 view .LVU927 1475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2810 .loc 1 1475 13 is_stmt 0 view .LVU928 2811 0146 2268 ldr r2, [r4] 1475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2812 .loc 1 1475 23 view .LVU929 2813 0148 5368 ldr r3, [r2, #4] 1475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2814 .loc 1 1475 29 view .LVU930 2815 014a 43F40043 orr r3, r3, #32768 2816 014e 5360 str r3, [r2, #4] 1476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2817 .loc 1 1476 9 is_stmt 1 view .LVU931 1476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2818 .loc 1 1476 16 is_stmt 0 view .LVU932 2819 0150 0120 movs r0, #1 2820 0152 4AE0 b .L191 2821 .L213: 1489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2822 .loc 1 1489 5 is_stmt 1 view .LVU933 1489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2823 .loc 1 1489 13 is_stmt 0 view .LVU934 2824 0154 0096 str r6, [sp] 2825 0156 2B46 mov r3, r5 2826 0158 1021 movs r1, #16 ARM GAS /tmp/ccSHpINd.s page 197 2827 015a 2046 mov r0, r4 2828 015c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2829 .LVL189: 1491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2830 .loc 1 1491 5 is_stmt 1 view .LVU935 1491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2831 .loc 1 1491 8 is_stmt 0 view .LVU936 2832 0160 E8B1 cbz r0, .L200 1497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 2833 .loc 1 1497 7 is_stmt 1 view .LVU937 1497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 2834 .loc 1 1497 20 is_stmt 0 view .LVU938 2835 0162 638D ldrh r3, [r4, #42] 2836 0164 9BB2 uxth r3, r3 2837 .LVL190: 1498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2838 .loc 1 1498 7 is_stmt 1 view .LVU939 1498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2839 .loc 1 1498 16 is_stmt 0 view .LVU940 2840 0166 626C ldr r2, [r4, #68] 1498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2841 .loc 1 1498 10 view .LVU941 2842 0168 042A cmp r2, #4 2843 016a 11D1 bne .L201 1498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2844 .loc 1 1498 49 discriminator 1 view .LVU942 2845 016c 83B9 cbnz r3, .L201 1501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2846 .loc 1 1501 9 is_stmt 1 view .LVU943 1501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2847 .loc 1 1501 25 is_stmt 0 view .LVU944 2848 016e 6364 str r3, [r4, #68] 2849 .LVL191: 2850 .L202: 1532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2851 .loc 1 1532 5 is_stmt 1 view .LVU945 1532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2852 .loc 1 1532 9 is_stmt 0 view .LVU946 2853 0170 0096 str r6, [sp] 2854 0172 2B46 mov r3, r5 2855 0174 0122 movs r2, #1 2856 0176 4FF40041 mov r1, #32768 2857 017a 2046 mov r0, r4 2858 017c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2859 .LVL192: 1532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2860 .loc 1 1532 8 discriminator 1 view .LVU947 2861 0180 20B3 cbz r0, .L204 1535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2862 .loc 1 1535 7 is_stmt 1 view .LVU948 1535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2863 .loc 1 1535 11 is_stmt 0 view .LVU949 2864 0182 2268 ldr r2, [r4] 1535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2865 .loc 1 1535 21 view .LVU950 2866 0184 5368 ldr r3, [r2, #4] 1535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/ccSHpINd.s page 198 2867 .loc 1 1535 27 view .LVU951 2868 0186 43F40043 orr r3, r3, #32768 2869 018a 5360 str r3, [r2, #4] 1536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2870 .loc 1 1536 7 is_stmt 1 view .LVU952 1536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2871 .loc 1 1536 14 is_stmt 0 view .LVU953 2872 018c 0120 movs r0, #1 2873 018e 2CE0 b .L191 2874 .LVL193: 2875 .L201: 1506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2876 .loc 1 1506 9 is_stmt 1 view .LVU954 1506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2877 .loc 1 1506 13 is_stmt 0 view .LVU955 2878 0190 2268 ldr r2, [r4] 1506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2879 .loc 1 1506 23 view .LVU956 2880 0192 5368 ldr r3, [r2, #4] 2881 .LVL194: 1506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2882 .loc 1 1506 29 view .LVU957 2883 0194 43F40043 orr r3, r3, #32768 2884 0198 5360 str r3, [r2, #4] 1507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2885 .loc 1 1507 9 is_stmt 1 view .LVU958 1507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2886 .loc 1 1507 16 is_stmt 0 view .LVU959 2887 019a 0120 movs r0, #1 2888 .LVL195: 1507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2889 .loc 1 1507 16 view .LVU960 2890 019c 25E0 b .L191 2891 .LVL196: 2892 .L200: 1513:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2893 .loc 1 1513 7 is_stmt 1 view .LVU961 2894 019e 2046 mov r0, r4 2895 .LVL197: 1513:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2896 .loc 1 1513 7 is_stmt 0 view .LVU962 2897 01a0 FFF7FEFF bl I2C_Flush_TXDR 2898 .LVL198: 1516:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2899 .loc 1 1516 7 is_stmt 1 view .LVU963 2900 01a4 2368 ldr r3, [r4] 2901 01a6 1022 movs r2, #16 2902 01a8 DA61 str r2, [r3, #28] 1519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2903 .loc 1 1519 7 view .LVU964 1519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2904 .loc 1 1519 11 is_stmt 0 view .LVU965 2905 01aa 3246 mov r2, r6 2906 01ac 2946 mov r1, r5 2907 01ae 2046 mov r0, r4 2908 01b0 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2909 .LVL199: ARM GAS /tmp/ccSHpINd.s page 199 1519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2910 .loc 1 1519 10 discriminator 1 view .LVU966 2911 01b4 18B9 cbnz r0, .L216 1528:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2912 .loc 1 1528 7 is_stmt 1 view .LVU967 2913 01b6 2368 ldr r3, [r4] 2914 01b8 2022 movs r2, #32 2915 01ba DA61 str r2, [r3, #28] 2916 01bc D8E7 b .L202 2917 .L216: 1522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2918 .loc 1 1522 9 view .LVU968 1522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2919 .loc 1 1522 13 is_stmt 0 view .LVU969 2920 01be 2268 ldr r2, [r4] 1522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2921 .loc 1 1522 23 view .LVU970 2922 01c0 5368 ldr r3, [r2, #4] 1522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2923 .loc 1 1522 29 view .LVU971 2924 01c2 43F40043 orr r3, r3, #32768 2925 01c6 5360 str r3, [r2, #4] 1524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2926 .loc 1 1524 9 is_stmt 1 view .LVU972 1524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2927 .loc 1 1524 16 is_stmt 0 view .LVU973 2928 01c8 0120 movs r0, #1 2929 01ca 0EE0 b .L191 2930 .L204: 1540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2931 .loc 1 1540 5 is_stmt 1 view .LVU974 1540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2932 .loc 1 1540 9 is_stmt 0 view .LVU975 2933 01cc 2268 ldr r2, [r4] 1540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2934 .loc 1 1540 19 view .LVU976 2935 01ce 5368 ldr r3, [r2, #4] 1540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2936 .loc 1 1540 25 view .LVU977 2937 01d0 43F40043 orr r3, r3, #32768 2938 01d4 5360 str r3, [r2, #4] 1542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2939 .loc 1 1542 5 is_stmt 1 view .LVU978 1542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2940 .loc 1 1542 17 is_stmt 0 view .LVU979 2941 01d6 2023 movs r3, #32 2942 01d8 84F84130 strb r3, [r4, #65] 1543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2943 .loc 1 1543 5 is_stmt 1 view .LVU980 1543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2944 .loc 1 1543 17 is_stmt 0 view .LVU981 2945 01dc 0023 movs r3, #0 2946 01de 84F84230 strb r3, [r4, #66] 1546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2947 .loc 1 1546 5 is_stmt 1 view .LVU982 1546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2948 .loc 1 1546 5 view .LVU983 ARM GAS /tmp/ccSHpINd.s page 200 2949 01e2 84F84030 strb r3, [r4, #64] 1546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2950 .loc 1 1546 5 view .LVU984 1548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2951 .loc 1 1548 5 view .LVU985 1548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2952 .loc 1 1548 12 is_stmt 0 view .LVU986 2953 01e6 00E0 b .L191 2954 .LVL200: 2955 .L205: 1552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2956 .loc 1 1552 12 view .LVU987 2957 01e8 0220 movs r0, #2 2958 .LVL201: 2959 .L191: 1554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2960 .loc 1 1554 1 view .LVU988 2961 01ea 02B0 add sp, sp, #8 2962 .LCFI29: 2963 .cfi_remember_state 2964 .cfi_def_cfa_offset 24 2965 @ sp needed 2966 01ec BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2967 .LVL202: 2968 .L206: 2969 .LCFI30: 2970 .cfi_restore_state 1393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2971 .loc 1 1393 5 discriminator 1 view .LVU989 2972 01f0 0220 movs r0, #2 2973 .LVL203: 1393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2974 .loc 1 1393 5 discriminator 1 view .LVU990 2975 01f2 FAE7 b .L191 2976 .cfi_endproc 2977 .LFE147: 2979 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits 2980 .align 1 2981 .global HAL_I2C_Slave_Receive 2982 .syntax unified 2983 .thumb 2984 .thumb_func 2986 HAL_I2C_Slave_Receive: 2987 .LVL204: 2988 .LFB148: 1567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 2989 .loc 1 1567 1 is_stmt 1 view -0 2990 .cfi_startproc 2991 @ args = 0, pretend = 0, frame = 0 2992 @ frame_needed = 0, uses_anonymous_args = 0 1567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 2993 .loc 1 1567 1 is_stmt 0 view .LVU992 2994 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2995 .LCFI31: 2996 .cfi_def_cfa_offset 24 2997 .cfi_offset 4, -24 2998 .cfi_offset 5, -20 ARM GAS /tmp/ccSHpINd.s page 201 2999 .cfi_offset 6, -16 3000 .cfi_offset 7, -12 3001 .cfi_offset 8, -8 3002 .cfi_offset 14, -4 3003 0004 82B0 sub sp, sp, #8 3004 .LCFI32: 3005 .cfi_def_cfa_offset 32 3006 0006 1D46 mov r5, r3 1568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3007 .loc 1 1568 3 is_stmt 1 view .LVU993 1570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3008 .loc 1 1570 3 view .LVU994 1570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3009 .loc 1 1570 11 is_stmt 0 view .LVU995 3010 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3011 .LVL205: 1570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3012 .loc 1 1570 11 view .LVU996 3013 000c DBB2 uxtb r3, r3 1570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3014 .loc 1 1570 6 view .LVU997 3015 000e 202B cmp r3, #32 3016 0010 40F0B280 bne .L227 3017 0014 0446 mov r4, r0 3018 0016 0F46 mov r7, r1 3019 0018 9046 mov r8, r2 1572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3020 .loc 1 1572 5 is_stmt 1 view .LVU998 1572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3021 .loc 1 1572 8 is_stmt 0 view .LVU999 3022 001a 002A cmp r2, #0 3023 001c 18BF it ne 3024 001e 0029 cmpne r1, #0 3025 0020 2BD0 beq .L230 1578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3026 .loc 1 1578 5 is_stmt 1 view .LVU1000 1578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3027 .loc 1 1578 5 view .LVU1001 3028 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3029 0026 012B cmp r3, #1 3030 0028 00F0AA80 beq .L228 1578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3031 .loc 1 1578 5 discriminator 2 view .LVU1002 3032 002c 0123 movs r3, #1 3033 002e 80F84030 strb r3, [r0, #64] 1578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3034 .loc 1 1578 5 discriminator 2 view .LVU1003 1581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3035 .loc 1 1581 5 view .LVU1004 1581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3036 .loc 1 1581 17 is_stmt 0 view .LVU1005 3037 0032 FFF7FEFF bl HAL_GetTick 3038 .LVL206: 1581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3039 .loc 1 1581 17 view .LVU1006 3040 0036 0646 mov r6, r0 3041 .LVL207: ARM GAS /tmp/ccSHpINd.s page 202 1583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3042 .loc 1 1583 5 is_stmt 1 view .LVU1007 1583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3043 .loc 1 1583 21 is_stmt 0 view .LVU1008 3044 0038 2223 movs r3, #34 3045 003a 84F84130 strb r3, [r4, #65] 1584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3046 .loc 1 1584 5 is_stmt 1 view .LVU1009 1584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3047 .loc 1 1584 21 is_stmt 0 view .LVU1010 3048 003e 2023 movs r3, #32 3049 0040 84F84230 strb r3, [r4, #66] 1585:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3050 .loc 1 1585 5 is_stmt 1 view .LVU1011 1585:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3051 .loc 1 1585 21 is_stmt 0 view .LVU1012 3052 0044 0022 movs r2, #0 3053 0046 6264 str r2, [r4, #68] 1588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3054 .loc 1 1588 5 is_stmt 1 view .LVU1013 1588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3055 .loc 1 1588 21 is_stmt 0 view .LVU1014 3056 0048 6762 str r7, [r4, #36] 1589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3057 .loc 1 1589 5 is_stmt 1 view .LVU1015 1589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3058 .loc 1 1589 21 is_stmt 0 view .LVU1016 3059 004a A4F82A80 strh r8, [r4, #42] @ movhi 1590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 3060 .loc 1 1590 5 is_stmt 1 view .LVU1017 1590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 3061 .loc 1 1590 26 is_stmt 0 view .LVU1018 3062 004e 638D ldrh r3, [r4, #42] 1590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 3063 .loc 1 1590 20 view .LVU1019 3064 0050 2385 strh r3, [r4, #40] @ movhi 1591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3065 .loc 1 1591 5 is_stmt 1 view .LVU1020 1591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3066 .loc 1 1591 21 is_stmt 0 view .LVU1021 3067 0052 6263 str r2, [r4, #52] 1594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3068 .loc 1 1594 5 is_stmt 1 view .LVU1022 1594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3069 .loc 1 1594 9 is_stmt 0 view .LVU1023 3070 0054 2168 ldr r1, [r4] 1594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3071 .loc 1 1594 19 view .LVU1024 3072 0056 4B68 ldr r3, [r1, #4] 1594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3073 .loc 1 1594 25 view .LVU1025 3074 0058 23F40043 bic r3, r3, #32768 3075 005c 4B60 str r3, [r1, #4] 1597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3076 .loc 1 1597 5 is_stmt 1 view .LVU1026 1597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3077 .loc 1 1597 9 is_stmt 0 view .LVU1027 ARM GAS /tmp/ccSHpINd.s page 203 3078 005e 0090 str r0, [sp] 3079 0060 2B46 mov r3, r5 3080 0062 0821 movs r1, #8 3081 0064 2046 mov r0, r4 3082 .LVL208: 1597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3083 .loc 1 1597 9 view .LVU1028 3084 0066 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3085 .LVL209: 1597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3086 .loc 1 1597 8 discriminator 1 view .LVU1029 3087 006a 58B1 cbz r0, .L220 1600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3088 .loc 1 1600 7 is_stmt 1 view .LVU1030 1600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3089 .loc 1 1600 11 is_stmt 0 view .LVU1031 3090 006c 2268 ldr r2, [r4] 1600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3091 .loc 1 1600 21 view .LVU1032 3092 006e 5368 ldr r3, [r2, #4] 1600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3093 .loc 1 1600 27 view .LVU1033 3094 0070 43F40043 orr r3, r3, #32768 3095 0074 5360 str r3, [r2, #4] 1601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3096 .loc 1 1601 7 is_stmt 1 view .LVU1034 1601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3097 .loc 1 1601 14 is_stmt 0 view .LVU1035 3098 0076 0120 movs r0, #1 3099 0078 7FE0 b .L218 3100 .LVL210: 3101 .L230: 1574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3102 .loc 1 1574 7 is_stmt 1 view .LVU1036 1574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3103 .loc 1 1574 23 is_stmt 0 view .LVU1037 3104 007a 4FF40073 mov r3, #512 3105 007e 4364 str r3, [r0, #68] 1575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3106 .loc 1 1575 7 is_stmt 1 view .LVU1038 1575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3107 .loc 1 1575 15 is_stmt 0 view .LVU1039 3108 0080 0120 movs r0, #1 3109 .LVL211: 1575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3110 .loc 1 1575 15 view .LVU1040 3111 0082 7AE0 b .L218 3112 .LVL212: 3113 .L220: 1605:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3114 .loc 1 1605 5 is_stmt 1 view .LVU1041 3115 0084 2368 ldr r3, [r4] 3116 0086 0822 movs r2, #8 3117 0088 DA61 str r2, [r3, #28] 1608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3118 .loc 1 1608 5 view .LVU1042 1608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 204 3119 .loc 1 1608 9 is_stmt 0 view .LVU1043 3120 008a 0096 str r6, [sp] 3121 008c 2B46 mov r3, r5 3122 008e 0122 movs r2, #1 3123 0090 4FF48031 mov r1, #65536 3124 0094 2046 mov r0, r4 3125 0096 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3126 .LVL213: 1608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3127 .loc 1 1608 8 discriminator 1 view .LVU1044 3128 009a F0B9 cbnz r0, .L231 3129 .L221: 1615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3130 .loc 1 1615 28 is_stmt 1 view .LVU1045 1615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3131 .loc 1 1615 16 is_stmt 0 view .LVU1046 3132 009c 638D ldrh r3, [r4, #42] 3133 009e 9BB2 uxth r3, r3 1615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3134 .loc 1 1615 28 view .LVU1047 3135 00a0 002B cmp r3, #0 3136 00a2 3BD0 beq .L232 1618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3137 .loc 1 1618 7 is_stmt 1 view .LVU1048 1618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3138 .loc 1 1618 11 is_stmt 0 view .LVU1049 3139 00a4 3246 mov r2, r6 3140 00a6 2946 mov r1, r5 3141 00a8 2046 mov r0, r4 3142 00aa FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 3143 .LVL214: 1618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3144 .loc 1 1618 10 discriminator 1 view .LVU1050 3145 00ae D8B9 cbnz r0, .L233 1640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3146 .loc 1 1640 7 is_stmt 1 view .LVU1051 1640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3147 .loc 1 1640 38 is_stmt 0 view .LVU1052 3148 00b0 2368 ldr r3, [r4] 1640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3149 .loc 1 1640 48 view .LVU1053 3150 00b2 5A6A ldr r2, [r3, #36] 1640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3151 .loc 1 1640 12 view .LVU1054 3152 00b4 636A ldr r3, [r4, #36] 1640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3153 .loc 1 1640 23 view .LVU1055 3154 00b6 1A70 strb r2, [r3] 1643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3155 .loc 1 1643 7 is_stmt 1 view .LVU1056 1643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3156 .loc 1 1643 11 is_stmt 0 view .LVU1057 3157 00b8 636A ldr r3, [r4, #36] 1643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3158 .loc 1 1643 21 view .LVU1058 3159 00ba 0133 adds r3, r3, #1 3160 00bc 6362 str r3, [r4, #36] ARM GAS /tmp/ccSHpINd.s page 205 1645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3161 .loc 1 1645 7 is_stmt 1 view .LVU1059 1645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3162 .loc 1 1645 11 is_stmt 0 view .LVU1060 3163 00be B4F82AC0 ldrh ip, [r4, #42] 3164 00c2 1FFA8CFC uxth ip, ip 1645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3165 .loc 1 1645 22 view .LVU1061 3166 00c6 0CF1FF3C add ip, ip, #-1 3167 00ca 1FFA8CFC uxth ip, ip 3168 00ce A4F82AC0 strh ip, [r4, #42] @ movhi 1646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3169 .loc 1 1646 7 is_stmt 1 view .LVU1062 1646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3170 .loc 1 1646 11 is_stmt 0 view .LVU1063 3171 00d2 238D ldrh r3, [r4, #40] 1646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3172 .loc 1 1646 21 view .LVU1064 3173 00d4 013B subs r3, r3, #1 3174 00d6 2385 strh r3, [r4, #40] @ movhi 3175 00d8 E0E7 b .L221 3176 .L231: 1611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3177 .loc 1 1611 7 is_stmt 1 view .LVU1065 1611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3178 .loc 1 1611 11 is_stmt 0 view .LVU1066 3179 00da 2268 ldr r2, [r4] 1611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3180 .loc 1 1611 21 view .LVU1067 3181 00dc 5368 ldr r3, [r2, #4] 1611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3182 .loc 1 1611 27 view .LVU1068 3183 00de 43F40043 orr r3, r3, #32768 3184 00e2 5360 str r3, [r2, #4] 1612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3185 .loc 1 1612 7 is_stmt 1 view .LVU1069 1612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3186 .loc 1 1612 14 is_stmt 0 view .LVU1070 3187 00e4 0120 movs r0, #1 3188 00e6 48E0 b .L218 3189 .L233: 1621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3190 .loc 1 1621 9 is_stmt 1 view .LVU1071 1621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3191 .loc 1 1621 13 is_stmt 0 view .LVU1072 3192 00e8 2268 ldr r2, [r4] 1621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3193 .loc 1 1621 23 view .LVU1073 3194 00ea 5368 ldr r3, [r2, #4] 1621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3195 .loc 1 1621 29 view .LVU1074 3196 00ec 43F40043 orr r3, r3, #32768 3197 00f0 5360 str r3, [r2, #4] 1624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3198 .loc 1 1624 9 is_stmt 1 view .LVU1075 1624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3199 .loc 1 1624 13 is_stmt 0 view .LVU1076 ARM GAS /tmp/ccSHpINd.s page 206 3200 00f2 2368 ldr r3, [r4] 3201 00f4 9A69 ldr r2, [r3, #24] 1624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3202 .loc 1 1624 12 view .LVU1077 3203 00f6 12F0040F tst r2, #4 3204 00fa 0DD0 beq .L223 1627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3205 .loc 1 1627 11 is_stmt 1 view .LVU1078 1627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3206 .loc 1 1627 52 is_stmt 0 view .LVU1079 3207 00fc 5A6A ldr r2, [r3, #36] 1627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3208 .loc 1 1627 16 view .LVU1080 3209 00fe 636A ldr r3, [r4, #36] 1627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3210 .loc 1 1627 27 view .LVU1081 3211 0100 1A70 strb r2, [r3] 1630:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3212 .loc 1 1630 11 is_stmt 1 view .LVU1082 1630:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3213 .loc 1 1630 15 is_stmt 0 view .LVU1083 3214 0102 636A ldr r3, [r4, #36] 1630:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3215 .loc 1 1630 25 view .LVU1084 3216 0104 0133 adds r3, r3, #1 3217 0106 6362 str r3, [r4, #36] 1632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3218 .loc 1 1632 11 is_stmt 1 view .LVU1085 1632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3219 .loc 1 1632 15 is_stmt 0 view .LVU1086 3220 0108 638D ldrh r3, [r4, #42] 3221 010a 9BB2 uxth r3, r3 1632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3222 .loc 1 1632 26 view .LVU1087 3223 010c 013B subs r3, r3, #1 3224 010e 9BB2 uxth r3, r3 3225 0110 6385 strh r3, [r4, #42] @ movhi 1633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3226 .loc 1 1633 11 is_stmt 1 view .LVU1088 1633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3227 .loc 1 1633 15 is_stmt 0 view .LVU1089 3228 0112 238D ldrh r3, [r4, #40] 1633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3229 .loc 1 1633 25 view .LVU1090 3230 0114 013B subs r3, r3, #1 3231 0116 2385 strh r3, [r4, #40] @ movhi 3232 .L223: 1636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3233 .loc 1 1636 9 is_stmt 1 view .LVU1091 1636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3234 .loc 1 1636 16 is_stmt 0 view .LVU1092 3235 0118 0120 movs r0, #1 3236 011a 2EE0 b .L218 3237 .L232: 1650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3238 .loc 1 1650 5 is_stmt 1 view .LVU1093 1650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 207 3239 .loc 1 1650 9 is_stmt 0 view .LVU1094 3240 011c 3246 mov r2, r6 3241 011e 2946 mov r1, r5 3242 0120 2046 mov r0, r4 3243 0122 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 3244 .LVL215: 1650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3245 .loc 1 1650 8 discriminator 1 view .LVU1095 3246 0126 30B1 cbz r0, .L225 1653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3247 .loc 1 1653 7 is_stmt 1 view .LVU1096 1653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3248 .loc 1 1653 11 is_stmt 0 view .LVU1097 3249 0128 2268 ldr r2, [r4] 1653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3250 .loc 1 1653 21 view .LVU1098 3251 012a 5368 ldr r3, [r2, #4] 1653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3252 .loc 1 1653 27 view .LVU1099 3253 012c 43F40043 orr r3, r3, #32768 3254 0130 5360 str r3, [r2, #4] 1654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3255 .loc 1 1654 7 is_stmt 1 view .LVU1100 1654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3256 .loc 1 1654 14 is_stmt 0 view .LVU1101 3257 0132 0120 movs r0, #1 3258 0134 21E0 b .L218 3259 .L225: 1658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3260 .loc 1 1658 5 is_stmt 1 view .LVU1102 3261 0136 2368 ldr r3, [r4] 3262 0138 2022 movs r2, #32 3263 013a DA61 str r2, [r3, #28] 1661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3264 .loc 1 1661 5 view .LVU1103 1661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3265 .loc 1 1661 9 is_stmt 0 view .LVU1104 3266 013c 0096 str r6, [sp] 3267 013e 2B46 mov r3, r5 3268 0140 0122 movs r2, #1 3269 0142 4FF40041 mov r1, #32768 3270 0146 2046 mov r0, r4 3271 0148 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3272 .LVL216: 1661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3273 .loc 1 1661 8 discriminator 1 view .LVU1105 3274 014c 30B1 cbz r0, .L226 1664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3275 .loc 1 1664 7 is_stmt 1 view .LVU1106 1664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3276 .loc 1 1664 11 is_stmt 0 view .LVU1107 3277 014e 2268 ldr r2, [r4] 1664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3278 .loc 1 1664 21 view .LVU1108 3279 0150 5368 ldr r3, [r2, #4] 1664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3280 .loc 1 1664 27 view .LVU1109 ARM GAS /tmp/ccSHpINd.s page 208 3281 0152 43F40043 orr r3, r3, #32768 3282 0156 5360 str r3, [r2, #4] 1665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3283 .loc 1 1665 7 is_stmt 1 view .LVU1110 1665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3284 .loc 1 1665 14 is_stmt 0 view .LVU1111 3285 0158 0120 movs r0, #1 3286 015a 0EE0 b .L218 3287 .L226: 1669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3288 .loc 1 1669 5 is_stmt 1 view .LVU1112 1669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3289 .loc 1 1669 9 is_stmt 0 view .LVU1113 3290 015c 2268 ldr r2, [r4] 1669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3291 .loc 1 1669 19 view .LVU1114 3292 015e 5368 ldr r3, [r2, #4] 1669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3293 .loc 1 1669 25 view .LVU1115 3294 0160 43F40043 orr r3, r3, #32768 3295 0164 5360 str r3, [r2, #4] 1671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3296 .loc 1 1671 5 is_stmt 1 view .LVU1116 1671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3297 .loc 1 1671 17 is_stmt 0 view .LVU1117 3298 0166 2023 movs r3, #32 3299 0168 84F84130 strb r3, [r4, #65] 1672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3300 .loc 1 1672 5 is_stmt 1 view .LVU1118 1672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3301 .loc 1 1672 17 is_stmt 0 view .LVU1119 3302 016c 0023 movs r3, #0 3303 016e 84F84230 strb r3, [r4, #66] 1675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3304 .loc 1 1675 5 is_stmt 1 view .LVU1120 1675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3305 .loc 1 1675 5 view .LVU1121 3306 0172 84F84030 strb r3, [r4, #64] 1675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3307 .loc 1 1675 5 view .LVU1122 1677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3308 .loc 1 1677 5 view .LVU1123 1677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3309 .loc 1 1677 12 is_stmt 0 view .LVU1124 3310 0176 00E0 b .L218 3311 .LVL217: 3312 .L227: 1681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3313 .loc 1 1681 12 view .LVU1125 3314 0178 0220 movs r0, #2 3315 .LVL218: 3316 .L218: 1683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3317 .loc 1 1683 1 view .LVU1126 3318 017a 02B0 add sp, sp, #8 3319 .LCFI33: 3320 .cfi_remember_state ARM GAS /tmp/ccSHpINd.s page 209 3321 .cfi_def_cfa_offset 24 3322 @ sp needed 3323 017c BDE8F081 pop {r4, r5, r6, r7, r8, pc} 3324 .LVL219: 3325 .L228: 3326 .LCFI34: 3327 .cfi_restore_state 1578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3328 .loc 1 1578 5 discriminator 1 view .LVU1127 3329 0180 0220 movs r0, #2 3330 .LVL220: 1578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3331 .loc 1 1578 5 discriminator 1 view .LVU1128 3332 0182 FAE7 b .L218 3333 .cfi_endproc 3334 .LFE148: 3336 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits 3337 .align 1 3338 .global HAL_I2C_Master_Transmit_IT 3339 .syntax unified 3340 .thumb 3341 .thumb_func 3343 HAL_I2C_Master_Transmit_IT: 3344 .LVL221: 3345 .LFB149: 1697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3346 .loc 1 1697 1 is_stmt 1 view -0 3347 .cfi_startproc 3348 @ args = 0, pretend = 0, frame = 0 3349 @ frame_needed = 0, uses_anonymous_args = 0 1697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3350 .loc 1 1697 1 is_stmt 0 view .LVU1130 3351 0000 30B5 push {r4, r5, lr} 3352 .LCFI35: 3353 .cfi_def_cfa_offset 12 3354 .cfi_offset 4, -12 3355 .cfi_offset 5, -8 3356 .cfi_offset 14, -4 3357 0002 83B0 sub sp, sp, #12 3358 .LCFI36: 3359 .cfi_def_cfa_offset 24 3360 0004 0446 mov r4, r0 1698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3361 .loc 1 1698 3 is_stmt 1 view .LVU1131 1700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3362 .loc 1 1700 3 view .LVU1132 1700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3363 .loc 1 1700 11 is_stmt 0 view .LVU1133 3364 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3365 .LVL222: 1700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3366 .loc 1 1700 11 view .LVU1134 3367 000a C0B2 uxtb r0, r0 1700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3368 .loc 1 1700 6 view .LVU1135 3369 000c 2028 cmp r0, #32 3370 000e 4ED1 bne .L240 ARM GAS /tmp/ccSHpINd.s page 210 1702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3371 .loc 1 1702 5 is_stmt 1 view .LVU1136 1702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3372 .loc 1 1702 9 is_stmt 0 view .LVU1137 3373 0010 2068 ldr r0, [r4] 3374 0012 8569 ldr r5, [r0, #24] 1702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3375 .loc 1 1702 8 view .LVU1138 3376 0014 15F4004F tst r5, #32768 3377 0018 4BD1 bne .L241 1708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3378 .loc 1 1708 5 is_stmt 1 view .LVU1139 1708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3379 .loc 1 1708 5 view .LVU1140 3380 001a 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2 3381 001e 012D cmp r5, #1 3382 0020 49D0 beq .L242 1708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3383 .loc 1 1708 5 discriminator 2 view .LVU1141 3384 0022 0125 movs r5, #1 3385 0024 84F84050 strb r5, [r4, #64] 1708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3386 .loc 1 1708 5 discriminator 2 view .LVU1142 1710:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3387 .loc 1 1710 5 view .LVU1143 1710:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3388 .loc 1 1710 23 is_stmt 0 view .LVU1144 3389 0028 2125 movs r5, #33 3390 002a 84F84150 strb r5, [r4, #65] 1711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3391 .loc 1 1711 5 is_stmt 1 view .LVU1145 1711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3392 .loc 1 1711 23 is_stmt 0 view .LVU1146 3393 002e 1025 movs r5, #16 3394 0030 84F84250 strb r5, [r4, #66] 1712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3395 .loc 1 1712 5 is_stmt 1 view .LVU1147 1712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3396 .loc 1 1712 23 is_stmt 0 view .LVU1148 3397 0034 0025 movs r5, #0 3398 0036 6564 str r5, [r4, #68] 1715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3399 .loc 1 1715 5 is_stmt 1 view .LVU1149 1715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3400 .loc 1 1715 23 is_stmt 0 view .LVU1150 3401 0038 6262 str r2, [r4, #36] 1716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3402 .loc 1 1716 5 is_stmt 1 view .LVU1151 1716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3403 .loc 1 1716 23 is_stmt 0 view .LVU1152 3404 003a 6385 strh r3, [r4, #42] @ movhi 1717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3405 .loc 1 1717 5 is_stmt 1 view .LVU1153 1717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3406 .loc 1 1717 23 is_stmt 0 view .LVU1154 3407 003c 1F4B ldr r3, .L244 3408 .LVL223: ARM GAS /tmp/ccSHpINd.s page 211 1717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3409 .loc 1 1717 23 view .LVU1155 3410 003e E362 str r3, [r4, #44] 3411 .LVL224: 1718:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3412 .loc 1 1718 5 is_stmt 1 view .LVU1156 1718:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3413 .loc 1 1718 23 is_stmt 0 view .LVU1157 3414 0040 1F4B ldr r3, .L244+4 3415 0042 6363 str r3, [r4, #52] 1720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3416 .loc 1 1720 5 is_stmt 1 view .LVU1158 1720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3417 .loc 1 1720 13 is_stmt 0 view .LVU1159 3418 0044 638D ldrh r3, [r4, #42] 3419 0046 9BB2 uxth r3, r3 1720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3420 .loc 1 1720 8 view .LVU1160 3421 0048 FF2B cmp r3, #255 3422 004a 24D9 bls .L236 1722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3423 .loc 1 1722 7 is_stmt 1 view .LVU1161 1722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3424 .loc 1 1722 22 is_stmt 0 view .LVU1162 3425 004c FF23 movs r3, #255 3426 004e 2385 strh r3, [r4, #40] @ movhi 1723:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3427 .loc 1 1723 7 is_stmt 1 view .LVU1163 3428 .LVL225: 1723:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3429 .loc 1 1723 16 is_stmt 0 view .LVU1164 3430 0050 4FF08073 mov r3, #16777216 3431 .LVL226: 3432 .L237: 1733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3433 .loc 1 1733 5 is_stmt 1 view .LVU1165 1733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3434 .loc 1 1733 13 is_stmt 0 view .LVU1166 3435 0054 258D ldrh r5, [r4, #40] 1733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3436 .loc 1 1733 8 view .LVU1167 3437 0056 1DB3 cbz r5, .L238 1737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3438 .loc 1 1737 7 is_stmt 1 view .LVU1168 1737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3439 .loc 1 1737 30 is_stmt 0 view .LVU1169 3440 0058 1278 ldrb r2, [r2] @ zero_extendqisi2 3441 .LVL227: 1737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3442 .loc 1 1737 28 view .LVU1170 3443 005a 8262 str r2, [r0, #40] 3444 .LVL228: 1740:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3445 .loc 1 1740 7 is_stmt 1 view .LVU1171 1740:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3446 .loc 1 1740 11 is_stmt 0 view .LVU1172 3447 005c 626A ldr r2, [r4, #36] ARM GAS /tmp/ccSHpINd.s page 212 1740:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3448 .loc 1 1740 21 view .LVU1173 3449 005e 0132 adds r2, r2, #1 3450 0060 6262 str r2, [r4, #36] 1742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3451 .loc 1 1742 7 is_stmt 1 view .LVU1174 1742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3452 .loc 1 1742 11 is_stmt 0 view .LVU1175 3453 0062 628D ldrh r2, [r4, #42] 3454 0064 92B2 uxth r2, r2 1742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3455 .loc 1 1742 22 view .LVU1176 3456 0066 013A subs r2, r2, #1 3457 0068 92B2 uxth r2, r2 3458 006a 6285 strh r2, [r4, #42] @ movhi 1743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3459 .loc 1 1743 7 is_stmt 1 view .LVU1177 1743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3460 .loc 1 1743 11 is_stmt 0 view .LVU1178 3461 006c 228D ldrh r2, [r4, #40] 1743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3462 .loc 1 1743 21 view .LVU1179 3463 006e 013A subs r2, r2, #1 3464 0070 92B2 uxth r2, r2 3465 0072 2285 strh r2, [r4, #40] @ movhi 1745:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3466 .loc 1 1745 7 is_stmt 1 view .LVU1180 3467 0074 0132 adds r2, r2, #1 3468 0076 1348 ldr r0, .L244+8 3469 0078 0090 str r0, [sp] 3470 007a D2B2 uxtb r2, r2 3471 007c 2046 mov r0, r4 3472 007e FFF7FEFF bl I2C_TransferConfig 3473 .LVL229: 3474 .L239: 1755:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3475 .loc 1 1755 5 view .LVU1181 1755:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3476 .loc 1 1755 5 view .LVU1182 3477 0082 0025 movs r5, #0 3478 0084 84F84050 strb r5, [r4, #64] 1755:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3479 .loc 1 1755 5 view .LVU1183 1765:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3480 .loc 1 1765 5 view .LVU1184 3481 0088 0121 movs r1, #1 3482 008a 2046 mov r0, r4 3483 008c FFF7FEFF bl I2C_Enable_IRQ 3484 .LVL230: 1767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3485 .loc 1 1767 5 view .LVU1185 1767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3486 .loc 1 1767 12 is_stmt 0 view .LVU1186 3487 0090 2846 mov r0, r5 3488 .LVL231: 3489 .L235: 1773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 213 3490 .loc 1 1773 1 view .LVU1187 3491 0092 03B0 add sp, sp, #12 3492 .LCFI37: 3493 .cfi_remember_state 3494 .cfi_def_cfa_offset 12 3495 @ sp needed 3496 0094 30BD pop {r4, r5, pc} 3497 .LVL232: 3498 .L236: 3499 .LCFI38: 3500 .cfi_restore_state 1727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3501 .loc 1 1727 7 is_stmt 1 view .LVU1188 1727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3502 .loc 1 1727 28 is_stmt 0 view .LVU1189 3503 0096 638D ldrh r3, [r4, #42] 1727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3504 .loc 1 1727 22 view .LVU1190 3505 0098 2385 strh r3, [r4, #40] @ movhi 1728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3506 .loc 1 1728 7 is_stmt 1 view .LVU1191 3507 .LVL233: 1728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3508 .loc 1 1728 16 is_stmt 0 view .LVU1192 3509 009a 4FF00073 mov r3, #33554432 3510 009e D9E7 b .L237 3511 .LVL234: 3512 .L238: 1750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3513 .loc 1 1750 7 is_stmt 1 view .LVU1193 3514 00a0 084A ldr r2, .L244+8 3515 .LVL235: 1750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3516 .loc 1 1750 7 is_stmt 0 view .LVU1194 3517 00a2 0092 str r2, [sp] 3518 .LVL236: 1750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3519 .loc 1 1750 7 view .LVU1195 3520 00a4 EAB2 uxtb r2, r5 3521 00a6 2046 mov r0, r4 3522 00a8 FFF7FEFF bl I2C_TransferConfig 3523 .LVL237: 1750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3524 .loc 1 1750 7 view .LVU1196 3525 00ac E9E7 b .L239 3526 .LVL238: 3527 .L240: 1771:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3528 .loc 1 1771 12 view .LVU1197 3529 00ae 0220 movs r0, #2 3530 00b0 EFE7 b .L235 3531 .L241: 1704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3532 .loc 1 1704 14 view .LVU1198 3533 00b2 0220 movs r0, #2 3534 00b4 EDE7 b .L235 3535 .L242: ARM GAS /tmp/ccSHpINd.s page 214 1708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3536 .loc 1 1708 5 discriminator 1 view .LVU1199 3537 00b6 0220 movs r0, #2 3538 00b8 EBE7 b .L235 3539 .L245: 3540 00ba 00BF .align 2 3541 .L244: 3542 00bc 0000FFFF .word -65536 3543 00c0 00000000 .word I2C_Master_ISR_IT 3544 00c4 00200080 .word -2147475456 3545 .cfi_endproc 3546 .LFE149: 3548 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits 3549 .align 1 3550 .global HAL_I2C_Master_Receive_IT 3551 .syntax unified 3552 .thumb 3553 .thumb_func 3555 HAL_I2C_Master_Receive_IT: 3556 .LVL239: 3557 .LFB150: 1787:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3558 .loc 1 1787 1 is_stmt 1 view -0 3559 .cfi_startproc 3560 @ args = 0, pretend = 0, frame = 0 3561 @ frame_needed = 0, uses_anonymous_args = 0 1787:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3562 .loc 1 1787 1 is_stmt 0 view .LVU1201 3563 0000 30B5 push {r4, r5, lr} 3564 .LCFI39: 3565 .cfi_def_cfa_offset 12 3566 .cfi_offset 4, -12 3567 .cfi_offset 5, -8 3568 .cfi_offset 14, -4 3569 0002 83B0 sub sp, sp, #12 3570 .LCFI40: 3571 .cfi_def_cfa_offset 24 3572 0004 0446 mov r4, r0 1788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3573 .loc 1 1788 3 is_stmt 1 view .LVU1202 1790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3574 .loc 1 1790 3 view .LVU1203 1790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3575 .loc 1 1790 11 is_stmt 0 view .LVU1204 3576 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3577 .LVL240: 1790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3578 .loc 1 1790 11 view .LVU1205 3579 000a C0B2 uxtb r0, r0 1790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3580 .loc 1 1790 6 view .LVU1206 3581 000c 2028 cmp r0, #32 3582 000e 37D1 bne .L250 1792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3583 .loc 1 1792 5 is_stmt 1 view .LVU1207 1792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3584 .loc 1 1792 9 is_stmt 0 view .LVU1208 ARM GAS /tmp/ccSHpINd.s page 215 3585 0010 2068 ldr r0, [r4] 3586 0012 8069 ldr r0, [r0, #24] 1792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3587 .loc 1 1792 8 view .LVU1209 3588 0014 10F4004F tst r0, #32768 3589 0018 34D1 bne .L251 1798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3590 .loc 1 1798 5 is_stmt 1 view .LVU1210 1798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3591 .loc 1 1798 5 view .LVU1211 3592 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 3593 001e 0128 cmp r0, #1 3594 0020 32D0 beq .L252 1798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3595 .loc 1 1798 5 discriminator 2 view .LVU1212 3596 0022 0120 movs r0, #1 3597 0024 84F84000 strb r0, [r4, #64] 1798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3598 .loc 1 1798 5 discriminator 2 view .LVU1213 1800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3599 .loc 1 1800 5 view .LVU1214 1800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3600 .loc 1 1800 23 is_stmt 0 view .LVU1215 3601 0028 2220 movs r0, #34 3602 002a 84F84100 strb r0, [r4, #65] 1801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3603 .loc 1 1801 5 is_stmt 1 view .LVU1216 1801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3604 .loc 1 1801 23 is_stmt 0 view .LVU1217 3605 002e 1020 movs r0, #16 3606 0030 84F84200 strb r0, [r4, #66] 1802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3607 .loc 1 1802 5 is_stmt 1 view .LVU1218 1802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3608 .loc 1 1802 23 is_stmt 0 view .LVU1219 3609 0034 0020 movs r0, #0 3610 0036 6064 str r0, [r4, #68] 1805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3611 .loc 1 1805 5 is_stmt 1 view .LVU1220 1805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3612 .loc 1 1805 23 is_stmt 0 view .LVU1221 3613 0038 6262 str r2, [r4, #36] 1806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3614 .loc 1 1806 5 is_stmt 1 view .LVU1222 1806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3615 .loc 1 1806 23 is_stmt 0 view .LVU1223 3616 003a 6385 strh r3, [r4, #42] @ movhi 1807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3617 .loc 1 1807 5 is_stmt 1 view .LVU1224 1807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3618 .loc 1 1807 23 is_stmt 0 view .LVU1225 3619 003c 134B ldr r3, .L254 3620 .LVL241: 1807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3621 .loc 1 1807 23 view .LVU1226 3622 003e E362 str r3, [r4, #44] 3623 .LVL242: ARM GAS /tmp/ccSHpINd.s page 216 1808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3624 .loc 1 1808 5 is_stmt 1 view .LVU1227 1808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3625 .loc 1 1808 23 is_stmt 0 view .LVU1228 3626 0040 134B ldr r3, .L254+4 3627 0042 6363 str r3, [r4, #52] 1810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3628 .loc 1 1810 5 is_stmt 1 view .LVU1229 1810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3629 .loc 1 1810 13 is_stmt 0 view .LVU1230 3630 0044 638D ldrh r3, [r4, #42] 3631 0046 9BB2 uxth r3, r3 1810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3632 .loc 1 1810 8 view .LVU1231 3633 0048 FF2B cmp r3, #255 3634 004a 14D9 bls .L248 1812:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3635 .loc 1 1812 7 is_stmt 1 view .LVU1232 1812:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3636 .loc 1 1812 22 is_stmt 0 view .LVU1233 3637 004c 0123 movs r3, #1 3638 004e 2385 strh r3, [r4, #40] @ movhi 1813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3639 .loc 1 1813 7 is_stmt 1 view .LVU1234 3640 .LVL243: 1813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3641 .loc 1 1813 16 is_stmt 0 view .LVU1235 3642 0050 4FF08073 mov r3, #16777216 3643 .LVL244: 3644 .L249: 1823:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3645 .loc 1 1823 5 is_stmt 1 view .LVU1236 3646 0054 0F4A ldr r2, .L254+8 3647 .LVL245: 1823:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3648 .loc 1 1823 5 is_stmt 0 view .LVU1237 3649 0056 0092 str r2, [sp] 3650 .LVL246: 1823:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3651 .loc 1 1823 5 view .LVU1238 3652 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3653 005c 2046 mov r0, r4 3654 005e FFF7FEFF bl I2C_TransferConfig 3655 .LVL247: 1826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3656 .loc 1 1826 5 is_stmt 1 view .LVU1239 1826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3657 .loc 1 1826 5 view .LVU1240 3658 0062 0025 movs r5, #0 3659 0064 84F84050 strb r5, [r4, #64] 1826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3660 .loc 1 1826 5 view .LVU1241 1836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3661 .loc 1 1836 5 view .LVU1242 3662 0068 0221 movs r1, #2 3663 006a 2046 mov r0, r4 3664 006c FFF7FEFF bl I2C_Enable_IRQ ARM GAS /tmp/ccSHpINd.s page 217 3665 .LVL248: 1838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3666 .loc 1 1838 5 view .LVU1243 1838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3667 .loc 1 1838 12 is_stmt 0 view .LVU1244 3668 0070 2846 mov r0, r5 3669 .LVL249: 3670 .L247: 1844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3671 .loc 1 1844 1 view .LVU1245 3672 0072 03B0 add sp, sp, #12 3673 .LCFI41: 3674 .cfi_remember_state 3675 .cfi_def_cfa_offset 12 3676 @ sp needed 3677 0074 30BD pop {r4, r5, pc} 3678 .LVL250: 3679 .L248: 3680 .LCFI42: 3681 .cfi_restore_state 1817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3682 .loc 1 1817 7 is_stmt 1 view .LVU1246 1817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3683 .loc 1 1817 28 is_stmt 0 view .LVU1247 3684 0076 638D ldrh r3, [r4, #42] 1817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3685 .loc 1 1817 22 view .LVU1248 3686 0078 2385 strh r3, [r4, #40] @ movhi 1818:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3687 .loc 1 1818 7 is_stmt 1 view .LVU1249 3688 .LVL251: 1818:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3689 .loc 1 1818 16 is_stmt 0 view .LVU1250 3690 007a 4FF00073 mov r3, #33554432 3691 007e E9E7 b .L249 3692 .LVL252: 3693 .L250: 1842:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3694 .loc 1 1842 12 view .LVU1251 3695 0080 0220 movs r0, #2 3696 0082 F6E7 b .L247 3697 .L251: 1794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3698 .loc 1 1794 14 view .LVU1252 3699 0084 0220 movs r0, #2 3700 0086 F4E7 b .L247 3701 .L252: 1798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3702 .loc 1 1798 5 discriminator 1 view .LVU1253 3703 0088 0220 movs r0, #2 3704 008a F2E7 b .L247 3705 .L255: 3706 .align 2 3707 .L254: 3708 008c 0000FFFF .word -65536 3709 0090 00000000 .word I2C_Master_ISR_IT 3710 0094 00240080 .word -2147474432 ARM GAS /tmp/ccSHpINd.s page 218 3711 .cfi_endproc 3712 .LFE150: 3714 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits 3715 .align 1 3716 .global HAL_I2C_Slave_Transmit_IT 3717 .syntax unified 3718 .thumb 3719 .thumb_func 3721 HAL_I2C_Slave_Transmit_IT: 3722 .LVL253: 3723 .LFB151: 1855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3724 .loc 1 1855 1 is_stmt 1 view -0 3725 .cfi_startproc 3726 @ args = 0, pretend = 0, frame = 0 3727 @ frame_needed = 0, uses_anonymous_args = 0 1856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3728 .loc 1 1856 3 view .LVU1255 1856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3729 .loc 1 1856 11 is_stmt 0 view .LVU1256 3730 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3731 0004 DBB2 uxtb r3, r3 1856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3732 .loc 1 1856 6 view .LVU1257 3733 0006 202B cmp r3, #32 3734 0008 38D1 bne .L259 1859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3735 .loc 1 1859 5 is_stmt 1 view .LVU1258 1859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3736 .loc 1 1859 5 view .LVU1259 3737 000a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3738 000e 012B cmp r3, #1 3739 0010 36D0 beq .L260 1855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3740 .loc 1 1855 1 is_stmt 0 view .LVU1260 3741 0012 10B5 push {r4, lr} 3742 .LCFI43: 3743 .cfi_def_cfa_offset 8 3744 .cfi_offset 4, -8 3745 .cfi_offset 14, -4 1859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3746 .loc 1 1859 5 is_stmt 1 discriminator 2 view .LVU1261 3747 0014 0123 movs r3, #1 3748 0016 80F84030 strb r3, [r0, #64] 1859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3749 .loc 1 1859 5 discriminator 2 view .LVU1262 1861:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3750 .loc 1 1861 5 view .LVU1263 1861:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3751 .loc 1 1861 23 is_stmt 0 view .LVU1264 3752 001a 2123 movs r3, #33 3753 001c 80F84130 strb r3, [r0, #65] 1862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3754 .loc 1 1862 5 is_stmt 1 view .LVU1265 1862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3755 .loc 1 1862 23 is_stmt 0 view .LVU1266 3756 0020 2023 movs r3, #32 ARM GAS /tmp/ccSHpINd.s page 219 3757 0022 80F84230 strb r3, [r0, #66] 1863:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3758 .loc 1 1863 5 is_stmt 1 view .LVU1267 1863:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3759 .loc 1 1863 23 is_stmt 0 view .LVU1268 3760 0026 0023 movs r3, #0 3761 0028 4364 str r3, [r0, #68] 1866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3762 .loc 1 1866 5 is_stmt 1 view .LVU1269 1866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3763 .loc 1 1866 9 is_stmt 0 view .LVU1270 3764 002a 0468 ldr r4, [r0] 1866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3765 .loc 1 1866 19 view .LVU1271 3766 002c 6368 ldr r3, [r4, #4] 1866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3767 .loc 1 1866 25 view .LVU1272 3768 002e 23F40043 bic r3, r3, #32768 3769 0032 6360 str r3, [r4, #4] 1869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3770 .loc 1 1869 5 is_stmt 1 view .LVU1273 1869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3771 .loc 1 1869 23 is_stmt 0 view .LVU1274 3772 0034 4162 str r1, [r0, #36] 1870:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3773 .loc 1 1870 5 is_stmt 1 view .LVU1275 1870:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3774 .loc 1 1870 23 is_stmt 0 view .LVU1276 3775 0036 4285 strh r2, [r0, #42] @ movhi 1871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3776 .loc 1 1871 5 is_stmt 1 view .LVU1277 1871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3777 .loc 1 1871 29 is_stmt 0 view .LVU1278 3778 0038 438D ldrh r3, [r0, #42] 1871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3779 .loc 1 1871 23 view .LVU1279 3780 003a 0385 strh r3, [r0, #40] @ movhi 1872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3781 .loc 1 1872 5 is_stmt 1 view .LVU1280 1872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3782 .loc 1 1872 23 is_stmt 0 view .LVU1281 3783 003c 114B ldr r3, .L266 3784 003e C362 str r3, [r0, #44] 1873:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3785 .loc 1 1873 5 is_stmt 1 view .LVU1282 1873:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3786 .loc 1 1873 23 is_stmt 0 view .LVU1283 3787 0040 114B ldr r3, .L266+4 3788 0042 4363 str r3, [r0, #52] 1876:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3789 .loc 1 1876 5 is_stmt 1 view .LVU1284 1876:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3790 .loc 1 1876 19 is_stmt 0 view .LVU1285 3791 0044 036A ldr r3, [r0, #32] 1876:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3792 .loc 1 1876 8 view .LVU1286 3793 0046 B3F5003F cmp r3, #131072 ARM GAS /tmp/ccSHpINd.s page 220 3794 004a 08D0 beq .L265 3795 .LVL254: 3796 .L258: 1890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3797 .loc 1 1890 5 is_stmt 1 view .LVU1287 1890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3798 .loc 1 1890 5 view .LVU1288 3799 004c 0024 movs r4, #0 3800 004e 80F84040 strb r4, [r0, #64] 1890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3801 .loc 1 1890 5 view .LVU1289 1900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3802 .loc 1 1900 5 view .LVU1290 3803 0052 48F20101 movw r1, #32769 3804 .LVL255: 1900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3805 .loc 1 1900 5 is_stmt 0 view .LVU1291 3806 0056 FFF7FEFF bl I2C_Enable_IRQ 3807 .LVL256: 1902:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3808 .loc 1 1902 5 is_stmt 1 view .LVU1292 1902:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3809 .loc 1 1902 12 is_stmt 0 view .LVU1293 3810 005a 2046 mov r0, r4 1908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3811 .loc 1 1908 1 view .LVU1294 3812 005c 10BD pop {r4, pc} 3813 .LVL257: 3814 .L265: 1880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3815 .loc 1 1880 7 is_stmt 1 view .LVU1295 1880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3816 .loc 1 1880 11 is_stmt 0 view .LVU1296 3817 005e 0368 ldr r3, [r0] 1880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3818 .loc 1 1880 30 view .LVU1297 3819 0060 0A78 ldrb r2, [r1] @ zero_extendqisi2 3820 .LVL258: 1880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3821 .loc 1 1880 28 view .LVU1298 3822 0062 9A62 str r2, [r3, #40] 1883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3823 .loc 1 1883 7 is_stmt 1 view .LVU1299 1883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3824 .loc 1 1883 11 is_stmt 0 view .LVU1300 3825 0064 436A ldr r3, [r0, #36] 1883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3826 .loc 1 1883 21 view .LVU1301 3827 0066 0133 adds r3, r3, #1 3828 0068 4362 str r3, [r0, #36] 1885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3829 .loc 1 1885 7 is_stmt 1 view .LVU1302 1885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3830 .loc 1 1885 11 is_stmt 0 view .LVU1303 3831 006a 438D ldrh r3, [r0, #42] 3832 006c 9BB2 uxth r3, r3 1885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; ARM GAS /tmp/ccSHpINd.s page 221 3833 .loc 1 1885 22 view .LVU1304 3834 006e 013B subs r3, r3, #1 3835 0070 9BB2 uxth r3, r3 3836 0072 4385 strh r3, [r0, #42] @ movhi 1886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3837 .loc 1 1886 7 is_stmt 1 view .LVU1305 1886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3838 .loc 1 1886 11 is_stmt 0 view .LVU1306 3839 0074 038D ldrh r3, [r0, #40] 1886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3840 .loc 1 1886 21 view .LVU1307 3841 0076 013B subs r3, r3, #1 3842 0078 0385 strh r3, [r0, #40] @ movhi 3843 007a E7E7 b .L258 3844 .LVL259: 3845 .L259: 3846 .LCFI44: 3847 .cfi_def_cfa_offset 0 3848 .cfi_restore 4 3849 .cfi_restore 14 1906:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3850 .loc 1 1906 12 view .LVU1308 3851 007c 0220 movs r0, #2 3852 .LVL260: 1906:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3853 .loc 1 1906 12 view .LVU1309 3854 007e 7047 bx lr 3855 .LVL261: 3856 .L260: 1859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3857 .loc 1 1859 5 discriminator 1 view .LVU1310 3858 0080 0220 movs r0, #2 3859 .LVL262: 1908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3860 .loc 1 1908 1 view .LVU1311 3861 0082 7047 bx lr 3862 .L267: 3863 .align 2 3864 .L266: 3865 0084 0000FFFF .word -65536 3866 0088 00000000 .word I2C_Slave_ISR_IT 3867 .cfi_endproc 3868 .LFE151: 3870 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits 3871 .align 1 3872 .global HAL_I2C_Slave_Receive_IT 3873 .syntax unified 3874 .thumb 3875 .thumb_func 3877 HAL_I2C_Slave_Receive_IT: 3878 .LVL263: 3879 .LFB152: 1919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3880 .loc 1 1919 1 is_stmt 1 view -0 3881 .cfi_startproc 3882 @ args = 0, pretend = 0, frame = 0 3883 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/ccSHpINd.s page 222 1919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3884 .loc 1 1919 1 is_stmt 0 view .LVU1313 3885 0000 38B5 push {r3, r4, r5, lr} 3886 .LCFI45: 3887 .cfi_def_cfa_offset 16 3888 .cfi_offset 3, -16 3889 .cfi_offset 4, -12 3890 .cfi_offset 5, -8 3891 .cfi_offset 14, -4 1920:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3892 .loc 1 1920 3 is_stmt 1 view .LVU1314 1920:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3893 .loc 1 1920 11 is_stmt 0 view .LVU1315 3894 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3895 0006 DBB2 uxtb r3, r3 1920:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3896 .loc 1 1920 6 view .LVU1316 3897 0008 202B cmp r3, #32 3898 000a 23D1 bne .L270 1923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3899 .loc 1 1923 5 is_stmt 1 view .LVU1317 1923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3900 .loc 1 1923 5 view .LVU1318 3901 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3902 0010 012B cmp r3, #1 3903 0012 21D0 beq .L271 1923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3904 .loc 1 1923 5 discriminator 2 view .LVU1319 3905 0014 0123 movs r3, #1 3906 0016 80F84030 strb r3, [r0, #64] 1923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3907 .loc 1 1923 5 discriminator 2 view .LVU1320 1925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3908 .loc 1 1925 5 view .LVU1321 1925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3909 .loc 1 1925 23 is_stmt 0 view .LVU1322 3910 001a 2223 movs r3, #34 3911 001c 80F84130 strb r3, [r0, #65] 1926:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3912 .loc 1 1926 5 is_stmt 1 view .LVU1323 1926:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3913 .loc 1 1926 23 is_stmt 0 view .LVU1324 3914 0020 2023 movs r3, #32 3915 0022 80F84230 strb r3, [r0, #66] 1927:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3916 .loc 1 1927 5 is_stmt 1 view .LVU1325 1927:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3917 .loc 1 1927 23 is_stmt 0 view .LVU1326 3918 0026 0024 movs r4, #0 3919 0028 4464 str r4, [r0, #68] 1930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3920 .loc 1 1930 5 is_stmt 1 view .LVU1327 1930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3921 .loc 1 1930 9 is_stmt 0 view .LVU1328 3922 002a 0568 ldr r5, [r0] 1930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3923 .loc 1 1930 19 view .LVU1329 ARM GAS /tmp/ccSHpINd.s page 223 3924 002c 6B68 ldr r3, [r5, #4] 1930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3925 .loc 1 1930 25 view .LVU1330 3926 002e 23F40043 bic r3, r3, #32768 3927 0032 6B60 str r3, [r5, #4] 1933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3928 .loc 1 1933 5 is_stmt 1 view .LVU1331 1933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3929 .loc 1 1933 23 is_stmt 0 view .LVU1332 3930 0034 4162 str r1, [r0, #36] 1934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3931 .loc 1 1934 5 is_stmt 1 view .LVU1333 1934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3932 .loc 1 1934 23 is_stmt 0 view .LVU1334 3933 0036 4285 strh r2, [r0, #42] @ movhi 1935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3934 .loc 1 1935 5 is_stmt 1 view .LVU1335 1935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3935 .loc 1 1935 29 is_stmt 0 view .LVU1336 3936 0038 438D ldrh r3, [r0, #42] 1935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3937 .loc 1 1935 23 view .LVU1337 3938 003a 0385 strh r3, [r0, #40] @ movhi 1936:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3939 .loc 1 1936 5 is_stmt 1 view .LVU1338 1936:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3940 .loc 1 1936 23 is_stmt 0 view .LVU1339 3941 003c 074B ldr r3, .L273 3942 003e C362 str r3, [r0, #44] 1937:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3943 .loc 1 1937 5 is_stmt 1 view .LVU1340 1937:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3944 .loc 1 1937 23 is_stmt 0 view .LVU1341 3945 0040 074B ldr r3, .L273+4 3946 0042 4363 str r3, [r0, #52] 1940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3947 .loc 1 1940 5 is_stmt 1 view .LVU1342 1940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3948 .loc 1 1940 5 view .LVU1343 3949 0044 80F84040 strb r4, [r0, #64] 1940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3950 .loc 1 1940 5 view .LVU1344 1950:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3951 .loc 1 1950 5 view .LVU1345 3952 0048 48F20201 movw r1, #32770 3953 .LVL264: 1950:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3954 .loc 1 1950 5 is_stmt 0 view .LVU1346 3955 004c FFF7FEFF bl I2C_Enable_IRQ 3956 .LVL265: 1952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3957 .loc 1 1952 5 is_stmt 1 view .LVU1347 1952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3958 .loc 1 1952 12 is_stmt 0 view .LVU1348 3959 0050 2046 mov r0, r4 3960 .L269: 1958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 224 3961 .loc 1 1958 1 view .LVU1349 3962 0052 38BD pop {r3, r4, r5, pc} 3963 .LVL266: 3964 .L270: 1956:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3965 .loc 1 1956 12 view .LVU1350 3966 0054 0220 movs r0, #2 3967 .LVL267: 1956:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3968 .loc 1 1956 12 view .LVU1351 3969 0056 FCE7 b .L269 3970 .LVL268: 3971 .L271: 1923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3972 .loc 1 1923 5 discriminator 1 view .LVU1352 3973 0058 0220 movs r0, #2 3974 .LVL269: 1923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3975 .loc 1 1923 5 discriminator 1 view .LVU1353 3976 005a FAE7 b .L269 3977 .L274: 3978 .align 2 3979 .L273: 3980 005c 0000FFFF .word -65536 3981 0060 00000000 .word I2C_Slave_ISR_IT 3982 .cfi_endproc 3983 .LFE152: 3985 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits 3986 .align 1 3987 .global HAL_I2C_Master_Transmit_DMA 3988 .syntax unified 3989 .thumb 3990 .thumb_func 3992 HAL_I2C_Master_Transmit_DMA: 3993 .LVL270: 3994 .LFB153: 1972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3995 .loc 1 1972 1 is_stmt 1 view -0 3996 .cfi_startproc 3997 @ args = 0, pretend = 0, frame = 0 3998 @ frame_needed = 0, uses_anonymous_args = 0 1972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3999 .loc 1 1972 1 is_stmt 0 view .LVU1355 4000 0000 70B5 push {r4, r5, r6, lr} 4001 .LCFI46: 4002 .cfi_def_cfa_offset 16 4003 .cfi_offset 4, -16 4004 .cfi_offset 5, -12 4005 .cfi_offset 6, -8 4006 .cfi_offset 14, -4 4007 0002 82B0 sub sp, sp, #8 4008 .LCFI47: 4009 .cfi_def_cfa_offset 24 4010 0004 0446 mov r4, r0 1973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4011 .loc 1 1973 3 is_stmt 1 view .LVU1356 1974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; ARM GAS /tmp/ccSHpINd.s page 225 4012 .loc 1 1974 3 view .LVU1357 1975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4013 .loc 1 1975 3 view .LVU1358 4014 .LVL271: 1977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4015 .loc 1 1977 3 view .LVU1359 1977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4016 .loc 1 1977 11 is_stmt 0 view .LVU1360 4017 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 4018 .LVL272: 1977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4019 .loc 1 1977 11 view .LVU1361 4020 000a C0B2 uxtb r0, r0 1977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4021 .loc 1 1977 6 view .LVU1362 4022 000c 2028 cmp r0, #32 4023 000e 40F09D80 bne .L285 4024 0012 0D46 mov r5, r1 1979:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4025 .loc 1 1979 5 is_stmt 1 view .LVU1363 1979:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4026 .loc 1 1979 9 is_stmt 0 view .LVU1364 4027 0014 2068 ldr r0, [r4] 4028 0016 8169 ldr r1, [r0, #24] 4029 .LVL273: 1979:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4030 .loc 1 1979 8 view .LVU1365 4031 0018 11F40041 ands r1, r1, #32768 4032 001c 40F09980 bne .L286 1985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4033 .loc 1 1985 5 is_stmt 1 view .LVU1366 1985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4034 .loc 1 1985 5 view .LVU1367 4035 0020 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 4036 0024 012E cmp r6, #1 4037 0026 00F09680 beq .L287 1985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4038 .loc 1 1985 5 discriminator 2 view .LVU1368 4039 002a 0126 movs r6, #1 4040 002c 84F84060 strb r6, [r4, #64] 1985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4041 .loc 1 1985 5 discriminator 2 view .LVU1369 1987:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4042 .loc 1 1987 5 view .LVU1370 1987:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4043 .loc 1 1987 23 is_stmt 0 view .LVU1371 4044 0030 2126 movs r6, #33 4045 0032 84F84160 strb r6, [r4, #65] 1988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4046 .loc 1 1988 5 is_stmt 1 view .LVU1372 1988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4047 .loc 1 1988 23 is_stmt 0 view .LVU1373 4048 0036 1026 movs r6, #16 4049 0038 84F84260 strb r6, [r4, #66] 1989:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4050 .loc 1 1989 5 is_stmt 1 view .LVU1374 1989:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 226 4051 .loc 1 1989 23 is_stmt 0 view .LVU1375 4052 003c 0026 movs r6, #0 4053 003e 6664 str r6, [r4, #68] 1992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4054 .loc 1 1992 5 is_stmt 1 view .LVU1376 1992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4055 .loc 1 1992 23 is_stmt 0 view .LVU1377 4056 0040 6262 str r2, [r4, #36] 1993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4057 .loc 1 1993 5 is_stmt 1 view .LVU1378 1993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4058 .loc 1 1993 23 is_stmt 0 view .LVU1379 4059 0042 6385 strh r3, [r4, #42] @ movhi 1994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4060 .loc 1 1994 5 is_stmt 1 view .LVU1380 1994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4061 .loc 1 1994 23 is_stmt 0 view .LVU1381 4062 0044 454B ldr r3, .L291 4063 .LVL274: 1994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4064 .loc 1 1994 23 view .LVU1382 4065 0046 E362 str r3, [r4, #44] 4066 .LVL275: 1995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4067 .loc 1 1995 5 is_stmt 1 view .LVU1383 1995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4068 .loc 1 1995 23 is_stmt 0 view .LVU1384 4069 0048 454B ldr r3, .L291+4 4070 004a 6363 str r3, [r4, #52] 1997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4071 .loc 1 1997 5 is_stmt 1 view .LVU1385 1997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4072 .loc 1 1997 13 is_stmt 0 view .LVU1386 4073 004c 638D ldrh r3, [r4, #42] 4074 004e 9BB2 uxth r3, r3 1997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4075 .loc 1 1997 8 view .LVU1387 4076 0050 FF2B cmp r3, #255 4077 0052 37D9 bls .L277 1999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4078 .loc 1 1999 7 is_stmt 1 view .LVU1388 1999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4079 .loc 1 1999 22 is_stmt 0 view .LVU1389 4080 0054 FF23 movs r3, #255 4081 0056 2385 strh r3, [r4, #40] @ movhi 2000:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4082 .loc 1 2000 7 is_stmt 1 view .LVU1390 4083 .LVL276: 2000:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4084 .loc 1 2000 16 is_stmt 0 view .LVU1391 4085 0058 4FF08076 mov r6, #16777216 4086 .LVL277: 4087 .L278: 2008:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4088 .loc 1 2008 5 is_stmt 1 view .LVU1392 2008:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4089 .loc 1 2008 13 is_stmt 0 view .LVU1393 ARM GAS /tmp/ccSHpINd.s page 227 4090 005c 238D ldrh r3, [r4, #40] 2008:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4091 .loc 1 2008 8 view .LVU1394 4092 005e 63B1 cbz r3, .L279 2012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4093 .loc 1 2012 7 is_stmt 1 view .LVU1395 2012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4094 .loc 1 2012 30 is_stmt 0 view .LVU1396 4095 0060 1378 ldrb r3, [r2] @ zero_extendqisi2 2012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4096 .loc 1 2012 28 view .LVU1397 4097 0062 8362 str r3, [r0, #40] 2015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4098 .loc 1 2015 7 is_stmt 1 view .LVU1398 2015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4099 .loc 1 2015 11 is_stmt 0 view .LVU1399 4100 0064 636A ldr r3, [r4, #36] 2015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4101 .loc 1 2015 21 view .LVU1400 4102 0066 0133 adds r3, r3, #1 4103 0068 6362 str r3, [r4, #36] 2017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 4104 .loc 1 2017 7 is_stmt 1 view .LVU1401 2017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 4105 .loc 1 2017 24 is_stmt 0 view .LVU1402 4106 006a 218D ldrh r1, [r4, #40] 4107 .LVL278: 2018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 4108 .loc 1 2018 7 is_stmt 1 view .LVU1403 2018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 4109 .loc 1 2018 11 is_stmt 0 view .LVU1404 4110 006c 638D ldrh r3, [r4, #42] 4111 006e 9BB2 uxth r3, r3 2018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 4112 .loc 1 2018 22 view .LVU1405 4113 0070 013B subs r3, r3, #1 4114 0072 9BB2 uxth r3, r3 4115 0074 6385 strh r3, [r4, #42] @ movhi 2019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4116 .loc 1 2019 7 is_stmt 1 view .LVU1406 2019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4117 .loc 1 2019 21 is_stmt 0 view .LVU1407 4118 0076 4B1E subs r3, r1, #1 4119 0078 2385 strh r3, [r4, #40] @ movhi 4120 .LVL279: 4121 .L279: 2022:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4122 .loc 1 2022 5 is_stmt 1 view .LVU1408 2022:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4123 .loc 1 2022 13 is_stmt 0 view .LVU1409 4124 007a 238D ldrh r3, [r4, #40] 2022:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4125 .loc 1 2022 8 view .LVU1410 4126 007c 002B cmp r3, #0 4127 007e 51D0 beq .L280 2024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4128 .loc 1 2024 7 is_stmt 1 view .LVU1411 ARM GAS /tmp/ccSHpINd.s page 228 2024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4129 .loc 1 2024 15 is_stmt 0 view .LVU1412 4130 0080 A36B ldr r3, [r4, #56] 2024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4131 .loc 1 2024 10 view .LVU1413 4132 0082 23B3 cbz r3, .L281 2027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4133 .loc 1 2027 9 is_stmt 1 view .LVU1414 2027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4134 .loc 1 2027 40 is_stmt 0 view .LVU1415 4135 0084 374A ldr r2, .L291+8 4136 .LVL280: 2027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4137 .loc 1 2027 40 view .LVU1416 4138 0086 DA63 str r2, [r3, #60] 2030:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4139 .loc 1 2030 9 is_stmt 1 view .LVU1417 2030:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4140 .loc 1 2030 13 is_stmt 0 view .LVU1418 4141 0088 A36B ldr r3, [r4, #56] 2030:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4142 .loc 1 2030 41 view .LVU1419 4143 008a 374A ldr r2, .L291+12 4144 008c DA64 str r2, [r3, #76] 2033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4145 .loc 1 2033 9 is_stmt 1 view .LVU1420 2033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4146 .loc 1 2033 13 is_stmt 0 view .LVU1421 4147 008e A26B ldr r2, [r4, #56] 2033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4148 .loc 1 2033 44 view .LVU1422 4149 0090 0023 movs r3, #0 4150 0092 1364 str r3, [r2, #64] 2034:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4151 .loc 1 2034 9 is_stmt 1 view .LVU1423 2034:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4152 .loc 1 2034 13 is_stmt 0 view .LVU1424 4153 0094 A26B ldr r2, [r4, #56] 2034:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4154 .loc 1 2034 41 view .LVU1425 4155 0096 1365 str r3, [r2, #80] 2037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4156 .loc 1 2037 9 is_stmt 1 view .LVU1426 2038:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4157 .loc 1 2038 57 is_stmt 0 view .LVU1427 4158 0098 2268 ldr r2, [r4] 2037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4159 .loc 1 2037 25 view .LVU1428 4160 009a 238D ldrh r3, [r4, #40] 4161 009c 2832 adds r2, r2, #40 4162 009e 616A ldr r1, [r4, #36] 4163 .LVL281: 2037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4164 .loc 1 2037 25 view .LVU1429 4165 00a0 A06B ldr r0, [r4, #56] 4166 00a2 FFF7FEFF bl HAL_DMA_Start_IT 4167 .LVL282: ARM GAS /tmp/ccSHpINd.s page 229 2055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4168 .loc 1 2055 7 is_stmt 1 view .LVU1430 2055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4169 .loc 1 2055 10 is_stmt 0 view .LVU1431 4170 00a6 00B3 cbz r0, .L290 2080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4171 .loc 1 2080 9 is_stmt 1 view .LVU1432 2080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4172 .loc 1 2080 25 is_stmt 0 view .LVU1433 4173 00a8 2023 movs r3, #32 4174 00aa 84F84130 strb r3, [r4, #65] 2081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4175 .loc 1 2081 9 is_stmt 1 view .LVU1434 2081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4176 .loc 1 2081 25 is_stmt 0 view .LVU1435 4177 00ae 0022 movs r2, #0 4178 00b0 84F84220 strb r2, [r4, #66] 2084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4179 .loc 1 2084 9 is_stmt 1 view .LVU1436 2084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4180 .loc 1 2084 13 is_stmt 0 view .LVU1437 4181 00b4 636C ldr r3, [r4, #68] 2084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4182 .loc 1 2084 25 view .LVU1438 4183 00b6 43F01003 orr r3, r3, #16 4184 00ba 6364 str r3, [r4, #68] 2087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4185 .loc 1 2087 9 is_stmt 1 view .LVU1439 2087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4186 .loc 1 2087 9 view .LVU1440 4187 00bc 84F84020 strb r2, [r4, #64] 2087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4188 .loc 1 2087 9 view .LVU1441 2089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4189 .loc 1 2089 9 view .LVU1442 2089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4190 .loc 1 2089 16 is_stmt 0 view .LVU1443 4191 00c0 0120 movs r0, #1 4192 .LVL283: 2089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4193 .loc 1 2089 16 view .LVU1444 4194 00c2 44E0 b .L276 4195 .LVL284: 4196 .L277: 2004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4197 .loc 1 2004 7 is_stmt 1 view .LVU1445 2004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4198 .loc 1 2004 28 is_stmt 0 view .LVU1446 4199 00c4 638D ldrh r3, [r4, #42] 2004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4200 .loc 1 2004 22 view .LVU1447 4201 00c6 2385 strh r3, [r4, #40] @ movhi 2005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4202 .loc 1 2005 7 is_stmt 1 view .LVU1448 4203 .LVL285: 2005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4204 .loc 1 2005 16 is_stmt 0 view .LVU1449 ARM GAS /tmp/ccSHpINd.s page 230 4205 00c8 4FF00076 mov r6, #33554432 4206 00cc C6E7 b .L278 4207 .LVL286: 4208 .L281: 2043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4209 .loc 1 2043 9 is_stmt 1 view .LVU1450 2043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4210 .loc 1 2043 25 is_stmt 0 view .LVU1451 4211 00ce 2023 movs r3, #32 4212 00d0 84F84130 strb r3, [r4, #65] 2044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4213 .loc 1 2044 9 is_stmt 1 view .LVU1452 2044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4214 .loc 1 2044 25 is_stmt 0 view .LVU1453 4215 00d4 0022 movs r2, #0 4216 .LVL287: 2044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4217 .loc 1 2044 25 view .LVU1454 4218 00d6 84F84220 strb r2, [r4, #66] 2047:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4219 .loc 1 2047 9 is_stmt 1 view .LVU1455 2047:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4220 .loc 1 2047 13 is_stmt 0 view .LVU1456 4221 00da 636C ldr r3, [r4, #68] 2047:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4222 .loc 1 2047 25 view .LVU1457 4223 00dc 43F08003 orr r3, r3, #128 4224 00e0 6364 str r3, [r4, #68] 2050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4225 .loc 1 2050 9 is_stmt 1 view .LVU1458 2050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4226 .loc 1 2050 9 view .LVU1459 4227 00e2 84F84020 strb r2, [r4, #64] 2050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4228 .loc 1 2050 9 view .LVU1460 2052:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4229 .loc 1 2052 9 view .LVU1461 2052:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4230 .loc 1 2052 16 is_stmt 0 view .LVU1462 4231 00e6 0120 movs r0, #1 4232 00e8 31E0 b .L276 4233 .LVL288: 4234 .L290: 2059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4235 .loc 1 2059 9 is_stmt 1 view .LVU1463 2059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4236 .loc 1 2059 60 is_stmt 0 view .LVU1464 4237 00ea 228D ldrh r2, [r4, #40] 2059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4238 .loc 1 2059 9 view .LVU1465 4239 00ec 0132 adds r2, r2, #1 4240 00ee 1F4B ldr r3, .L291+16 4241 00f0 0093 str r3, [sp] 4242 00f2 3346 mov r3, r6 4243 00f4 D2B2 uxtb r2, r2 4244 00f6 2946 mov r1, r5 4245 00f8 2046 mov r0, r4 ARM GAS /tmp/ccSHpINd.s page 231 4246 .LVL289: 2059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4247 .loc 1 2059 9 view .LVU1466 4248 00fa FFF7FEFF bl I2C_TransferConfig 4249 .LVL290: 2063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4250 .loc 1 2063 9 is_stmt 1 view .LVU1467 2063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4251 .loc 1 2063 13 is_stmt 0 view .LVU1468 4252 00fe 638D ldrh r3, [r4, #42] 4253 0100 9BB2 uxth r3, r3 2063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4254 .loc 1 2063 32 view .LVU1469 4255 0102 228D ldrh r2, [r4, #40] 2063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4256 .loc 1 2063 25 view .LVU1470 4257 0104 9B1A subs r3, r3, r2 4258 0106 9BB2 uxth r3, r3 4259 0108 6385 strh r3, [r4, #42] @ movhi 2066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4260 .loc 1 2066 9 is_stmt 1 view .LVU1471 2066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4261 .loc 1 2066 9 view .LVU1472 4262 010a 0023 movs r3, #0 4263 010c 84F84030 strb r3, [r4, #64] 2066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4264 .loc 1 2066 9 view .LVU1473 2072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4265 .loc 1 2072 9 view .LVU1474 4266 0110 1021 movs r1, #16 4267 0112 2046 mov r0, r4 4268 0114 FFF7FEFF bl I2C_Enable_IRQ 4269 .LVL291: 2075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4270 .loc 1 2075 9 view .LVU1475 2075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4271 .loc 1 2075 13 is_stmt 0 view .LVU1476 4272 0118 2268 ldr r2, [r4] 2075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4273 .loc 1 2075 23 view .LVU1477 4274 011a 1368 ldr r3, [r2] 2075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4275 .loc 1 2075 29 view .LVU1478 4276 011c 43F48043 orr r3, r3, #16384 4277 0120 1360 str r3, [r2] 4278 0122 11E0 b .L284 4279 .LVL292: 4280 .L280: 2095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4281 .loc 1 2095 7 is_stmt 1 view .LVU1479 2095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4282 .loc 1 2095 21 is_stmt 0 view .LVU1480 4283 0124 124B ldr r3, .L291+20 4284 0126 6363 str r3, [r4, #52] 2099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4285 .loc 1 2099 7 is_stmt 1 view .LVU1481 4286 0128 104B ldr r3, .L291+16 ARM GAS /tmp/ccSHpINd.s page 232 4287 012a 0093 str r3, [sp] 4288 012c 4FF00073 mov r3, #33554432 4289 0130 CAB2 uxtb r2, r1 4290 .LVL293: 2099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4291 .loc 1 2099 7 is_stmt 0 view .LVU1482 4292 0132 2946 mov r1, r5 4293 .LVL294: 2099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4294 .loc 1 2099 7 view .LVU1483 4295 0134 2046 mov r0, r4 4296 0136 FFF7FEFF bl I2C_TransferConfig 4297 .LVL295: 2103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4298 .loc 1 2103 7 is_stmt 1 view .LVU1484 2103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4299 .loc 1 2103 7 view .LVU1485 4300 013a 0023 movs r3, #0 4301 013c 84F84030 strb r3, [r4, #64] 2103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4302 .loc 1 2103 7 view .LVU1486 2112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4303 .loc 1 2112 7 view .LVU1487 4304 0140 0121 movs r1, #1 4305 0142 2046 mov r0, r4 4306 0144 FFF7FEFF bl I2C_Enable_IRQ 4307 .LVL296: 4308 .L284: 2115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4309 .loc 1 2115 5 view .LVU1488 2115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4310 .loc 1 2115 12 is_stmt 0 view .LVU1489 4311 0148 0020 movs r0, #0 4312 014a 00E0 b .L276 4313 .LVL297: 4314 .L285: 2119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4315 .loc 1 2119 12 view .LVU1490 4316 014c 0220 movs r0, #2 4317 .LVL298: 4318 .L276: 2121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4319 .loc 1 2121 1 view .LVU1491 4320 014e 02B0 add sp, sp, #8 4321 .LCFI48: 4322 .cfi_remember_state 4323 .cfi_def_cfa_offset 16 4324 @ sp needed 4325 0150 70BD pop {r4, r5, r6, pc} 4326 .LVL299: 4327 .L286: 4328 .LCFI49: 4329 .cfi_restore_state 1981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4330 .loc 1 1981 14 view .LVU1492 4331 0152 0220 movs r0, #2 4332 0154 FBE7 b .L276 ARM GAS /tmp/ccSHpINd.s page 233 4333 .L287: 1985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4334 .loc 1 1985 5 discriminator 1 view .LVU1493 4335 0156 0220 movs r0, #2 4336 0158 F9E7 b .L276 4337 .L292: 4338 015a 00BF .align 2 4339 .L291: 4340 015c 0000FFFF .word -65536 4341 0160 00000000 .word I2C_Master_ISR_DMA 4342 0164 00000000 .word I2C_DMAMasterTransmitCplt 4343 0168 00000000 .word I2C_DMAError 4344 016c 00200080 .word -2147475456 4345 0170 00000000 .word I2C_Master_ISR_IT 4346 .cfi_endproc 4347 .LFE153: 4349 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits 4350 .align 1 4351 .global HAL_I2C_Master_Receive_DMA 4352 .syntax unified 4353 .thumb 4354 .thumb_func 4356 HAL_I2C_Master_Receive_DMA: 4357 .LVL300: 4358 .LFB154: 2135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 4359 .loc 1 2135 1 is_stmt 1 view -0 4360 .cfi_startproc 4361 @ args = 0, pretend = 0, frame = 0 4362 @ frame_needed = 0, uses_anonymous_args = 0 2135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 4363 .loc 1 2135 1 is_stmt 0 view .LVU1495 4364 0000 70B5 push {r4, r5, r6, lr} 4365 .LCFI50: 4366 .cfi_def_cfa_offset 16 4367 .cfi_offset 4, -16 4368 .cfi_offset 5, -12 4369 .cfi_offset 6, -8 4370 .cfi_offset 14, -4 4371 0002 82B0 sub sp, sp, #8 4372 .LCFI51: 4373 .cfi_def_cfa_offset 24 4374 0004 0446 mov r4, r0 2136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4375 .loc 1 2136 3 is_stmt 1 view .LVU1496 2137:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4376 .loc 1 2137 3 view .LVU1497 2139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4377 .loc 1 2139 3 view .LVU1498 2139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4378 .loc 1 2139 11 is_stmt 0 view .LVU1499 4379 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 4380 .LVL301: 2139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4381 .loc 1 2139 11 view .LVU1500 4382 000a C0B2 uxtb r0, r0 2139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 234 4383 .loc 1 2139 6 view .LVU1501 4384 000c 2028 cmp r0, #32 4385 000e 40F08C80 bne .L302 4386 0012 0D46 mov r5, r1 2141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4387 .loc 1 2141 5 is_stmt 1 view .LVU1502 2141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4388 .loc 1 2141 9 is_stmt 0 view .LVU1503 4389 0014 2168 ldr r1, [r4] 4390 .LVL302: 2141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4391 .loc 1 2141 9 view .LVU1504 4392 0016 8969 ldr r1, [r1, #24] 2141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4393 .loc 1 2141 8 view .LVU1505 4394 0018 11F4004F tst r1, #32768 4395 001c 40F08880 bne .L303 2147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4396 .loc 1 2147 5 is_stmt 1 view .LVU1506 2147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4397 .loc 1 2147 5 view .LVU1507 4398 0020 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 4399 0024 0129 cmp r1, #1 4400 0026 00F08580 beq .L304 2147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4401 .loc 1 2147 5 discriminator 2 view .LVU1508 4402 002a 0121 movs r1, #1 4403 002c 84F84010 strb r1, [r4, #64] 2147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4404 .loc 1 2147 5 discriminator 2 view .LVU1509 2149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4405 .loc 1 2149 5 view .LVU1510 2149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4406 .loc 1 2149 23 is_stmt 0 view .LVU1511 4407 0030 2221 movs r1, #34 4408 0032 84F84110 strb r1, [r4, #65] 2150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4409 .loc 1 2150 5 is_stmt 1 view .LVU1512 2150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4410 .loc 1 2150 23 is_stmt 0 view .LVU1513 4411 0036 1021 movs r1, #16 4412 0038 84F84210 strb r1, [r4, #66] 2151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4413 .loc 1 2151 5 is_stmt 1 view .LVU1514 2151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4414 .loc 1 2151 23 is_stmt 0 view .LVU1515 4415 003c 0021 movs r1, #0 4416 003e 6164 str r1, [r4, #68] 2154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4417 .loc 1 2154 5 is_stmt 1 view .LVU1516 2154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4418 .loc 1 2154 23 is_stmt 0 view .LVU1517 4419 0040 6262 str r2, [r4, #36] 2155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4420 .loc 1 2155 5 is_stmt 1 view .LVU1518 2155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4421 .loc 1 2155 23 is_stmt 0 view .LVU1519 ARM GAS /tmp/ccSHpINd.s page 235 4422 0042 6385 strh r3, [r4, #42] @ movhi 2156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4423 .loc 1 2156 5 is_stmt 1 view .LVU1520 2156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4424 .loc 1 2156 23 is_stmt 0 view .LVU1521 4425 0044 3C4B ldr r3, .L308 4426 .LVL303: 2156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4427 .loc 1 2156 23 view .LVU1522 4428 0046 E362 str r3, [r4, #44] 4429 .LVL304: 2157:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4430 .loc 1 2157 5 is_stmt 1 view .LVU1523 2157:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4431 .loc 1 2157 23 is_stmt 0 view .LVU1524 4432 0048 3C4B ldr r3, .L308+4 4433 004a 6363 str r3, [r4, #52] 2159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4434 .loc 1 2159 5 is_stmt 1 view .LVU1525 2159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4435 .loc 1 2159 13 is_stmt 0 view .LVU1526 4436 004c 638D ldrh r3, [r4, #42] 4437 004e 9BB2 uxth r3, r3 2159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4438 .loc 1 2159 8 view .LVU1527 4439 0050 FF2B cmp r3, #255 4440 0052 27D9 bls .L295 2161:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4441 .loc 1 2161 7 is_stmt 1 view .LVU1528 2161:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4442 .loc 1 2161 22 is_stmt 0 view .LVU1529 4443 0054 0123 movs r3, #1 4444 0056 2385 strh r3, [r4, #40] @ movhi 2162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4445 .loc 1 2162 7 is_stmt 1 view .LVU1530 4446 .LVL305: 2162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4447 .loc 1 2162 16 is_stmt 0 view .LVU1531 4448 0058 4FF08076 mov r6, #16777216 4449 .LVL306: 4450 .L296: 2170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4451 .loc 1 2170 5 is_stmt 1 view .LVU1532 2170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4452 .loc 1 2170 13 is_stmt 0 view .LVU1533 4453 005c 218D ldrh r1, [r4, #40] 2170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4454 .loc 1 2170 8 view .LVU1534 4455 005e 0029 cmp r1, #0 4456 0060 4FD0 beq .L297 2172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4457 .loc 1 2172 7 is_stmt 1 view .LVU1535 2172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4458 .loc 1 2172 15 is_stmt 0 view .LVU1536 4459 0062 E36B ldr r3, [r4, #60] 2172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4460 .loc 1 2172 10 view .LVU1537 ARM GAS /tmp/ccSHpINd.s page 236 4461 0064 1BB3 cbz r3, .L298 2175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4462 .loc 1 2175 9 is_stmt 1 view .LVU1538 2175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4463 .loc 1 2175 40 is_stmt 0 view .LVU1539 4464 0066 3649 ldr r1, .L308+8 4465 0068 D963 str r1, [r3, #60] 2178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4466 .loc 1 2178 9 is_stmt 1 view .LVU1540 2178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4467 .loc 1 2178 13 is_stmt 0 view .LVU1541 4468 006a E36B ldr r3, [r4, #60] 2178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4469 .loc 1 2178 41 view .LVU1542 4470 006c 3549 ldr r1, .L308+12 4471 006e D964 str r1, [r3, #76] 2181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4472 .loc 1 2181 9 is_stmt 1 view .LVU1543 2181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4473 .loc 1 2181 13 is_stmt 0 view .LVU1544 4474 0070 E16B ldr r1, [r4, #60] 2181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4475 .loc 1 2181 44 view .LVU1545 4476 0072 0023 movs r3, #0 4477 0074 0B64 str r3, [r1, #64] 2182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4478 .loc 1 2182 9 is_stmt 1 view .LVU1546 2182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4479 .loc 1 2182 13 is_stmt 0 view .LVU1547 4480 0076 E16B ldr r1, [r4, #60] 2182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4481 .loc 1 2182 41 view .LVU1548 4482 0078 0B65 str r3, [r1, #80] 2185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 4483 .loc 1 2185 9 is_stmt 1 view .LVU1549 2185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 4484 .loc 1 2185 71 is_stmt 0 view .LVU1550 4485 007a 2168 ldr r1, [r4] 2185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 4486 .loc 1 2185 25 view .LVU1551 4487 007c 238D ldrh r3, [r4, #40] 4488 007e 2431 adds r1, r1, #36 4489 0080 E06B ldr r0, [r4, #60] 4490 0082 FFF7FEFF bl HAL_DMA_Start_IT 4491 .LVL307: 2203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4492 .loc 1 2203 7 is_stmt 1 view .LVU1552 2203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4493 .loc 1 2203 10 is_stmt 0 view .LVU1553 4494 0086 00B3 cbz r0, .L307 2227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4495 .loc 1 2227 9 is_stmt 1 view .LVU1554 2227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4496 .loc 1 2227 25 is_stmt 0 view .LVU1555 4497 0088 2023 movs r3, #32 4498 008a 84F84130 strb r3, [r4, #65] 2228:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 237 4499 .loc 1 2228 9 is_stmt 1 view .LVU1556 2228:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4500 .loc 1 2228 25 is_stmt 0 view .LVU1557 4501 008e 0022 movs r2, #0 4502 0090 84F84220 strb r2, [r4, #66] 2231:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4503 .loc 1 2231 9 is_stmt 1 view .LVU1558 2231:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4504 .loc 1 2231 13 is_stmt 0 view .LVU1559 4505 0094 636C ldr r3, [r4, #68] 2231:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4506 .loc 1 2231 25 view .LVU1560 4507 0096 43F01003 orr r3, r3, #16 4508 009a 6364 str r3, [r4, #68] 2234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4509 .loc 1 2234 9 is_stmt 1 view .LVU1561 2234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4510 .loc 1 2234 9 view .LVU1562 4511 009c 84F84020 strb r2, [r4, #64] 2234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4512 .loc 1 2234 9 view .LVU1563 2236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4513 .loc 1 2236 9 view .LVU1564 2236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4514 .loc 1 2236 16 is_stmt 0 view .LVU1565 4515 00a0 0120 movs r0, #1 4516 .LVL308: 2236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4517 .loc 1 2236 16 view .LVU1566 4518 00a2 43E0 b .L294 4519 .LVL309: 4520 .L295: 2166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4521 .loc 1 2166 7 is_stmt 1 view .LVU1567 2166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4522 .loc 1 2166 28 is_stmt 0 view .LVU1568 4523 00a4 638D ldrh r3, [r4, #42] 2166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4524 .loc 1 2166 22 view .LVU1569 4525 00a6 2385 strh r3, [r4, #40] @ movhi 2167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4526 .loc 1 2167 7 is_stmt 1 view .LVU1570 4527 .LVL310: 2167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4528 .loc 1 2167 16 is_stmt 0 view .LVU1571 4529 00a8 4FF00076 mov r6, #33554432 4530 00ac D6E7 b .L296 4531 .LVL311: 4532 .L298: 2191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4533 .loc 1 2191 9 is_stmt 1 view .LVU1572 2191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4534 .loc 1 2191 25 is_stmt 0 view .LVU1573 4535 00ae 2023 movs r3, #32 4536 00b0 84F84130 strb r3, [r4, #65] 2192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4537 .loc 1 2192 9 is_stmt 1 view .LVU1574 ARM GAS /tmp/ccSHpINd.s page 238 2192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4538 .loc 1 2192 25 is_stmt 0 view .LVU1575 4539 00b4 0022 movs r2, #0 4540 .LVL312: 2192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4541 .loc 1 2192 25 view .LVU1576 4542 00b6 84F84220 strb r2, [r4, #66] 2195:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4543 .loc 1 2195 9 is_stmt 1 view .LVU1577 2195:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4544 .loc 1 2195 13 is_stmt 0 view .LVU1578 4545 00ba 636C ldr r3, [r4, #68] 2195:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4546 .loc 1 2195 25 view .LVU1579 4547 00bc 43F08003 orr r3, r3, #128 4548 00c0 6364 str r3, [r4, #68] 2198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4549 .loc 1 2198 9 is_stmt 1 view .LVU1580 2198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4550 .loc 1 2198 9 view .LVU1581 4551 00c2 84F84020 strb r2, [r4, #64] 2198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4552 .loc 1 2198 9 view .LVU1582 2200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4553 .loc 1 2200 9 view .LVU1583 2200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4554 .loc 1 2200 16 is_stmt 0 view .LVU1584 4555 00c6 0120 movs r0, #1 4556 00c8 30E0 b .L294 4557 .LVL313: 4558 .L307: 2207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4559 .loc 1 2207 9 is_stmt 1 view .LVU1585 4560 00ca 1F4B ldr r3, .L308+16 4561 00cc 0093 str r3, [sp] 4562 00ce 3346 mov r3, r6 4563 00d0 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 4564 00d4 2946 mov r1, r5 4565 00d6 2046 mov r0, r4 4566 .LVL314: 2207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4567 .loc 1 2207 9 is_stmt 0 view .LVU1586 4568 00d8 FFF7FEFF bl I2C_TransferConfig 4569 .LVL315: 2210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4570 .loc 1 2210 9 is_stmt 1 view .LVU1587 2210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4571 .loc 1 2210 13 is_stmt 0 view .LVU1588 4572 00dc 638D ldrh r3, [r4, #42] 4573 00de 9BB2 uxth r3, r3 2210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4574 .loc 1 2210 32 view .LVU1589 4575 00e0 228D ldrh r2, [r4, #40] 2210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4576 .loc 1 2210 25 view .LVU1590 4577 00e2 9B1A subs r3, r3, r2 4578 00e4 9BB2 uxth r3, r3 ARM GAS /tmp/ccSHpINd.s page 239 4579 00e6 6385 strh r3, [r4, #42] @ movhi 2213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4580 .loc 1 2213 9 is_stmt 1 view .LVU1591 2213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4581 .loc 1 2213 9 view .LVU1592 4582 00e8 0023 movs r3, #0 4583 00ea 84F84030 strb r3, [r4, #64] 2213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4584 .loc 1 2213 9 view .LVU1593 2219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4585 .loc 1 2219 9 view .LVU1594 4586 00ee 1021 movs r1, #16 4587 00f0 2046 mov r0, r4 4588 00f2 FFF7FEFF bl I2C_Enable_IRQ 4589 .LVL316: 2222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4590 .loc 1 2222 9 view .LVU1595 2222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4591 .loc 1 2222 13 is_stmt 0 view .LVU1596 4592 00f6 2268 ldr r2, [r4] 2222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4593 .loc 1 2222 23 view .LVU1597 4594 00f8 1368 ldr r3, [r2] 2222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4595 .loc 1 2222 29 view .LVU1598 4596 00fa 43F40043 orr r3, r3, #32768 4597 00fe 1360 str r3, [r2] 4598 0100 11E0 b .L301 4599 .LVL317: 4600 .L297: 2242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4601 .loc 1 2242 7 is_stmt 1 view .LVU1599 2242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4602 .loc 1 2242 21 is_stmt 0 view .LVU1600 4603 0102 124B ldr r3, .L308+20 4604 0104 6363 str r3, [r4, #52] 2246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4605 .loc 1 2246 7 is_stmt 1 view .LVU1601 4606 0106 104B ldr r3, .L308+16 4607 0108 0093 str r3, [sp] 4608 010a 4FF00073 mov r3, #33554432 4609 010e CAB2 uxtb r2, r1 4610 .LVL318: 2246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4611 .loc 1 2246 7 is_stmt 0 view .LVU1602 4612 0110 2946 mov r1, r5 4613 0112 2046 mov r0, r4 4614 0114 FFF7FEFF bl I2C_TransferConfig 4615 .LVL319: 2250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4616 .loc 1 2250 7 is_stmt 1 view .LVU1603 2250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4617 .loc 1 2250 7 view .LVU1604 4618 0118 0023 movs r3, #0 4619 011a 84F84030 strb r3, [r4, #64] 2250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4620 .loc 1 2250 7 view .LVU1605 ARM GAS /tmp/ccSHpINd.s page 240 2259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4621 .loc 1 2259 7 view .LVU1606 4622 011e 0221 movs r1, #2 4623 0120 2046 mov r0, r4 4624 0122 FFF7FEFF bl I2C_Enable_IRQ 4625 .LVL320: 4626 .L301: 2262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4627 .loc 1 2262 5 view .LVU1607 2262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4628 .loc 1 2262 12 is_stmt 0 view .LVU1608 4629 0126 0020 movs r0, #0 4630 0128 00E0 b .L294 4631 .LVL321: 4632 .L302: 2266:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4633 .loc 1 2266 12 view .LVU1609 4634 012a 0220 movs r0, #2 4635 .LVL322: 4636 .L294: 2268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4637 .loc 1 2268 1 view .LVU1610 4638 012c 02B0 add sp, sp, #8 4639 .LCFI52: 4640 .cfi_remember_state 4641 .cfi_def_cfa_offset 16 4642 @ sp needed 4643 012e 70BD pop {r4, r5, r6, pc} 4644 .LVL323: 4645 .L303: 4646 .LCFI53: 4647 .cfi_restore_state 2143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4648 .loc 1 2143 14 view .LVU1611 4649 0130 0220 movs r0, #2 4650 0132 FBE7 b .L294 4651 .L304: 2147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4652 .loc 1 2147 5 discriminator 1 view .LVU1612 4653 0134 0220 movs r0, #2 4654 0136 F9E7 b .L294 4655 .L309: 4656 .align 2 4657 .L308: 4658 0138 0000FFFF .word -65536 4659 013c 00000000 .word I2C_Master_ISR_DMA 4660 0140 00000000 .word I2C_DMAMasterReceiveCplt 4661 0144 00000000 .word I2C_DMAError 4662 0148 00240080 .word -2147474432 4663 014c 00000000 .word I2C_Master_ISR_IT 4664 .cfi_endproc 4665 .LFE154: 4667 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits 4668 .align 1 4669 .global HAL_I2C_Slave_Transmit_DMA 4670 .syntax unified 4671 .thumb ARM GAS /tmp/ccSHpINd.s page 241 4672 .thumb_func 4674 HAL_I2C_Slave_Transmit_DMA: 4675 .LVL324: 4676 .LFB155: 2279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4677 .loc 1 2279 1 is_stmt 1 view -0 4678 .cfi_startproc 4679 @ args = 0, pretend = 0, frame = 0 4680 @ frame_needed = 0, uses_anonymous_args = 0 2280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4681 .loc 1 2280 3 view .LVU1614 2282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4682 .loc 1 2282 3 view .LVU1615 2282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4683 .loc 1 2282 11 is_stmt 0 view .LVU1616 4684 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4685 0004 DBB2 uxtb r3, r3 2282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4686 .loc 1 2282 6 view .LVU1617 4687 0006 202B cmp r3, #32 4688 0008 40F08D80 bne .L319 2279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4689 .loc 1 2279 1 view .LVU1618 4690 000c 10B5 push {r4, lr} 4691 .LCFI54: 4692 .cfi_def_cfa_offset 8 4693 .cfi_offset 4, -8 4694 .cfi_offset 14, -4 4695 000e 0446 mov r4, r0 2284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4696 .loc 1 2284 5 is_stmt 1 view .LVU1619 2284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4697 .loc 1 2284 8 is_stmt 0 view .LVU1620 4698 0010 002A cmp r2, #0 4699 0012 18BF it ne 4700 0014 0029 cmpne r1, #0 4701 0016 42D0 beq .L326 2290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4702 .loc 1 2290 5 is_stmt 1 view .LVU1621 2290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4703 .loc 1 2290 5 view .LVU1622 4704 0018 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4705 001c 012B cmp r3, #1 4706 001e 00F08480 beq .L320 2290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4707 .loc 1 2290 5 discriminator 2 view .LVU1623 4708 0022 0123 movs r3, #1 4709 0024 80F84030 strb r3, [r0, #64] 2290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4710 .loc 1 2290 5 discriminator 2 view .LVU1624 2292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4711 .loc 1 2292 5 view .LVU1625 2292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4712 .loc 1 2292 23 is_stmt 0 view .LVU1626 4713 0028 2123 movs r3, #33 4714 002a 80F84130 strb r3, [r0, #65] 2293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS /tmp/ccSHpINd.s page 242 4715 .loc 1 2293 5 is_stmt 1 view .LVU1627 2293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4716 .loc 1 2293 23 is_stmt 0 view .LVU1628 4717 002e 2023 movs r3, #32 4718 0030 80F84230 strb r3, [r0, #66] 2294:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4719 .loc 1 2294 5 is_stmt 1 view .LVU1629 2294:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4720 .loc 1 2294 23 is_stmt 0 view .LVU1630 4721 0034 0023 movs r3, #0 4722 0036 4364 str r3, [r0, #68] 2297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4723 .loc 1 2297 5 is_stmt 1 view .LVU1631 2297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4724 .loc 1 2297 23 is_stmt 0 view .LVU1632 4725 0038 4162 str r1, [r0, #36] 2298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4726 .loc 1 2298 5 is_stmt 1 view .LVU1633 2298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4727 .loc 1 2298 23 is_stmt 0 view .LVU1634 4728 003a 4285 strh r2, [r0, #42] @ movhi 2299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4729 .loc 1 2299 5 is_stmt 1 view .LVU1635 2299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4730 .loc 1 2299 29 is_stmt 0 view .LVU1636 4731 003c 438D ldrh r3, [r0, #42] 2299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4732 .loc 1 2299 23 view .LVU1637 4733 003e 0385 strh r3, [r0, #40] @ movhi 2300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4734 .loc 1 2300 5 is_stmt 1 view .LVU1638 2300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4735 .loc 1 2300 23 is_stmt 0 view .LVU1639 4736 0040 3B4B ldr r3, .L329 4737 0042 C362 str r3, [r0, #44] 2301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4738 .loc 1 2301 5 is_stmt 1 view .LVU1640 2301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4739 .loc 1 2301 23 is_stmt 0 view .LVU1641 4740 0044 3B4B ldr r3, .L329+4 4741 0046 4363 str r3, [r0, #52] 2304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4742 .loc 1 2304 5 is_stmt 1 view .LVU1642 2304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4743 .loc 1 2304 19 is_stmt 0 view .LVU1643 4744 0048 036A ldr r3, [r0, #32] 2304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4745 .loc 1 2304 8 view .LVU1644 4746 004a B3F5003F cmp r3, #131072 4747 004e 2BD0 beq .L327 4748 .LVL325: 4749 .L313: 2317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4750 .loc 1 2317 5 is_stmt 1 view .LVU1645 2317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4751 .loc 1 2317 13 is_stmt 0 view .LVU1646 4752 0050 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccSHpINd.s page 243 4753 0052 9BB2 uxth r3, r3 2317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4754 .loc 1 2317 8 view .LVU1647 4755 0054 002B cmp r3, #0 4756 0056 57D0 beq .L314 2319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4757 .loc 1 2319 7 is_stmt 1 view .LVU1648 2319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4758 .loc 1 2319 15 is_stmt 0 view .LVU1649 4759 0058 A36B ldr r3, [r4, #56] 2319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4760 .loc 1 2319 10 view .LVU1650 4761 005a 002B cmp r3, #0 4762 005c 33D0 beq .L315 2322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4763 .loc 1 2322 9 is_stmt 1 view .LVU1651 2322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4764 .loc 1 2322 40 is_stmt 0 view .LVU1652 4765 005e 364A ldr r2, .L329+8 4766 0060 DA63 str r2, [r3, #60] 2325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4767 .loc 1 2325 9 is_stmt 1 view .LVU1653 2325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4768 .loc 1 2325 13 is_stmt 0 view .LVU1654 4769 0062 A36B ldr r3, [r4, #56] 2325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4770 .loc 1 2325 41 view .LVU1655 4771 0064 354A ldr r2, .L329+12 4772 0066 DA64 str r2, [r3, #76] 2328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4773 .loc 1 2328 9 is_stmt 1 view .LVU1656 2328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4774 .loc 1 2328 13 is_stmt 0 view .LVU1657 4775 0068 A26B ldr r2, [r4, #56] 2328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4776 .loc 1 2328 44 view .LVU1658 4777 006a 0023 movs r3, #0 4778 006c 1364 str r3, [r2, #64] 2329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4779 .loc 1 2329 9 is_stmt 1 view .LVU1659 2329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4780 .loc 1 2329 13 is_stmt 0 view .LVU1660 4781 006e A26B ldr r2, [r4, #56] 2329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4782 .loc 1 2329 41 view .LVU1661 4783 0070 1365 str r3, [r2, #80] 2332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4784 .loc 1 2332 9 is_stmt 1 view .LVU1662 2333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 4785 .loc 1 2333 83 is_stmt 0 view .LVU1663 4786 0072 2268 ldr r2, [r4] 2332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4787 .loc 1 2332 25 view .LVU1664 4788 0074 238D ldrh r3, [r4, #40] 4789 0076 2832 adds r2, r2, #40 4790 0078 616A ldr r1, [r4, #36] 4791 .LVL326: ARM GAS /tmp/ccSHpINd.s page 244 2332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4792 .loc 1 2332 25 view .LVU1665 4793 007a A06B ldr r0, [r4, #56] 4794 .LVL327: 2332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4795 .loc 1 2332 25 view .LVU1666 4796 007c FFF7FEFF bl HAL_DMA_Start_IT 4797 .LVL328: 2351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4798 .loc 1 2351 7 is_stmt 1 view .LVU1667 2351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4799 .loc 1 2351 10 is_stmt 0 view .LVU1668 4800 0080 78B3 cbz r0, .L328 2371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4801 .loc 1 2371 9 is_stmt 1 view .LVU1669 2371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4802 .loc 1 2371 25 is_stmt 0 view .LVU1670 4803 0082 2823 movs r3, #40 4804 0084 84F84130 strb r3, [r4, #65] 2372:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4805 .loc 1 2372 9 is_stmt 1 view .LVU1671 2372:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4806 .loc 1 2372 25 is_stmt 0 view .LVU1672 4807 0088 0022 movs r2, #0 4808 008a 84F84220 strb r2, [r4, #66] 2375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4809 .loc 1 2375 9 is_stmt 1 view .LVU1673 2375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4810 .loc 1 2375 13 is_stmt 0 view .LVU1674 4811 008e 636C ldr r3, [r4, #68] 2375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4812 .loc 1 2375 25 view .LVU1675 4813 0090 43F01003 orr r3, r3, #16 4814 0094 6364 str r3, [r4, #68] 2378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4815 .loc 1 2378 9 is_stmt 1 view .LVU1676 2378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4816 .loc 1 2378 9 view .LVU1677 4817 0096 84F84020 strb r2, [r4, #64] 2378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4818 .loc 1 2378 9 view .LVU1678 2380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4819 .loc 1 2380 9 view .LVU1679 2380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4820 .loc 1 2380 16 is_stmt 0 view .LVU1680 4821 009a 0120 movs r0, #1 4822 .LVL329: 2380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4823 .loc 1 2380 16 view .LVU1681 4824 009c 03E0 b .L311 4825 .LVL330: 4826 .L326: 2286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4827 .loc 1 2286 7 is_stmt 1 view .LVU1682 2286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4828 .loc 1 2286 23 is_stmt 0 view .LVU1683 4829 009e 4FF40073 mov r3, #512 ARM GAS /tmp/ccSHpINd.s page 245 4830 00a2 4364 str r3, [r0, #68] 2287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4831 .loc 1 2287 7 is_stmt 1 view .LVU1684 2287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4832 .loc 1 2287 15 is_stmt 0 view .LVU1685 4833 00a4 0120 movs r0, #1 4834 .LVL331: 4835 .L311: 2404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4836 .loc 1 2404 1 view .LVU1686 4837 00a6 10BD pop {r4, pc} 4838 .LVL332: 4839 .L327: 2308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4840 .loc 1 2308 7 is_stmt 1 view .LVU1687 2308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4841 .loc 1 2308 11 is_stmt 0 view .LVU1688 4842 00a8 0368 ldr r3, [r0] 2308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4843 .loc 1 2308 30 view .LVU1689 4844 00aa 0A78 ldrb r2, [r1] @ zero_extendqisi2 4845 .LVL333: 2308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4846 .loc 1 2308 28 view .LVU1690 4847 00ac 9A62 str r2, [r3, #40] 2311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4848 .loc 1 2311 7 is_stmt 1 view .LVU1691 2311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4849 .loc 1 2311 11 is_stmt 0 view .LVU1692 4850 00ae 436A ldr r3, [r0, #36] 2311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4851 .loc 1 2311 21 view .LVU1693 4852 00b0 0133 adds r3, r3, #1 4853 00b2 4362 str r3, [r0, #36] 2313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 4854 .loc 1 2313 7 is_stmt 1 view .LVU1694 2313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 4855 .loc 1 2313 11 is_stmt 0 view .LVU1695 4856 00b4 438D ldrh r3, [r0, #42] 4857 00b6 9BB2 uxth r3, r3 2313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 4858 .loc 1 2313 22 view .LVU1696 4859 00b8 013B subs r3, r3, #1 4860 00ba 9BB2 uxth r3, r3 4861 00bc 4385 strh r3, [r0, #42] @ movhi 2314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4862 .loc 1 2314 7 is_stmt 1 view .LVU1697 2314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4863 .loc 1 2314 11 is_stmt 0 view .LVU1698 4864 00be 038D ldrh r3, [r0, #40] 2314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4865 .loc 1 2314 21 view .LVU1699 4866 00c0 013B subs r3, r3, #1 4867 00c2 0385 strh r3, [r0, #40] @ movhi 4868 00c4 C4E7 b .L313 4869 .L315: 2339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; ARM GAS /tmp/ccSHpINd.s page 246 4870 .loc 1 2339 9 is_stmt 1 view .LVU1700 2339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4871 .loc 1 2339 25 is_stmt 0 view .LVU1701 4872 00c6 2823 movs r3, #40 4873 00c8 84F84130 strb r3, [r4, #65] 2340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4874 .loc 1 2340 9 is_stmt 1 view .LVU1702 2340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4875 .loc 1 2340 25 is_stmt 0 view .LVU1703 4876 00cc 0022 movs r2, #0 4877 00ce 84F84220 strb r2, [r4, #66] 2343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4878 .loc 1 2343 9 is_stmt 1 view .LVU1704 2343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4879 .loc 1 2343 13 is_stmt 0 view .LVU1705 4880 00d2 636C ldr r3, [r4, #68] 2343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4881 .loc 1 2343 25 view .LVU1706 4882 00d4 43F08003 orr r3, r3, #128 4883 00d8 6364 str r3, [r4, #68] 2346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4884 .loc 1 2346 9 is_stmt 1 view .LVU1707 2346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4885 .loc 1 2346 9 view .LVU1708 4886 00da 84F84020 strb r2, [r4, #64] 2346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4887 .loc 1 2346 9 view .LVU1709 2348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4888 .loc 1 2348 9 view .LVU1710 2348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4889 .loc 1 2348 16 is_stmt 0 view .LVU1711 4890 00de 0120 movs r0, #1 4891 .LVL334: 2348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4892 .loc 1 2348 16 view .LVU1712 4893 00e0 E1E7 b .L311 4894 .LVL335: 4895 .L328: 2354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4896 .loc 1 2354 9 is_stmt 1 view .LVU1713 2354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4897 .loc 1 2354 13 is_stmt 0 view .LVU1714 4898 00e2 2268 ldr r2, [r4] 2354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4899 .loc 1 2354 23 view .LVU1715 4900 00e4 5368 ldr r3, [r2, #4] 2354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4901 .loc 1 2354 29 view .LVU1716 4902 00e6 23F40043 bic r3, r3, #32768 4903 00ea 5360 str r3, [r2, #4] 2357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4904 .loc 1 2357 9 is_stmt 1 view .LVU1717 2357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4905 .loc 1 2357 9 view .LVU1718 4906 00ec 0023 movs r3, #0 4907 00ee 84F84030 strb r3, [r4, #64] 2357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 247 4908 .loc 1 2357 9 view .LVU1719 2363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4909 .loc 1 2363 9 view .LVU1720 4910 00f2 4FF40041 mov r1, #32768 4911 00f6 2046 mov r0, r4 4912 .LVL336: 2363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4913 .loc 1 2363 9 is_stmt 0 view .LVU1721 4914 00f8 FFF7FEFF bl I2C_Enable_IRQ 4915 .LVL337: 2366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4916 .loc 1 2366 9 is_stmt 1 view .LVU1722 2366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4917 .loc 1 2366 13 is_stmt 0 view .LVU1723 4918 00fc 2268 ldr r2, [r4] 2366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4919 .loc 1 2366 23 view .LVU1724 4920 00fe 1368 ldr r3, [r2] 2366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4921 .loc 1 2366 29 view .LVU1725 4922 0100 43F48043 orr r3, r3, #16384 4923 0104 1360 str r3, [r2] 4924 0106 0CE0 b .L318 4925 .LVL338: 4926 .L314: 2386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4927 .loc 1 2386 7 is_stmt 1 view .LVU1726 2386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4928 .loc 1 2386 11 is_stmt 0 view .LVU1727 4929 0108 2268 ldr r2, [r4] 2386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4930 .loc 1 2386 21 view .LVU1728 4931 010a 5368 ldr r3, [r2, #4] 2386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4932 .loc 1 2386 27 view .LVU1729 4933 010c 23F40043 bic r3, r3, #32768 4934 0110 5360 str r3, [r2, #4] 2389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4935 .loc 1 2389 7 is_stmt 1 view .LVU1730 2389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4936 .loc 1 2389 7 view .LVU1731 4937 0112 0023 movs r3, #0 4938 0114 84F84030 strb r3, [r4, #64] 2389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4939 .loc 1 2389 7 view .LVU1732 2395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4940 .loc 1 2395 7 view .LVU1733 4941 0118 4FF40041 mov r1, #32768 4942 .LVL339: 2395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4943 .loc 1 2395 7 is_stmt 0 view .LVU1734 4944 011c 2046 mov r0, r4 4945 .LVL340: 2395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4946 .loc 1 2395 7 view .LVU1735 4947 011e FFF7FEFF bl I2C_Enable_IRQ 4948 .LVL341: ARM GAS /tmp/ccSHpINd.s page 248 4949 .L318: 2398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4950 .loc 1 2398 5 is_stmt 1 view .LVU1736 2398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4951 .loc 1 2398 12 is_stmt 0 view .LVU1737 4952 0122 0020 movs r0, #0 4953 0124 BFE7 b .L311 4954 .LVL342: 4955 .L319: 4956 .LCFI55: 4957 .cfi_def_cfa_offset 0 4958 .cfi_restore 4 4959 .cfi_restore 14 2402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4960 .loc 1 2402 12 view .LVU1738 4961 0126 0220 movs r0, #2 4962 .LVL343: 2404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4963 .loc 1 2404 1 view .LVU1739 4964 0128 7047 bx lr 4965 .LVL344: 4966 .L320: 4967 .LCFI56: 4968 .cfi_def_cfa_offset 8 4969 .cfi_offset 4, -8 4970 .cfi_offset 14, -4 2290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4971 .loc 1 2290 5 discriminator 1 view .LVU1740 4972 012a 0220 movs r0, #2 4973 .LVL345: 2290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4974 .loc 1 2290 5 discriminator 1 view .LVU1741 4975 012c BBE7 b .L311 4976 .L330: 4977 012e 00BF .align 2 4978 .L329: 4979 0130 0000FFFF .word -65536 4980 0134 00000000 .word I2C_Slave_ISR_DMA 4981 0138 00000000 .word I2C_DMASlaveTransmitCplt 4982 013c 00000000 .word I2C_DMAError 4983 .cfi_endproc 4984 .LFE155: 4986 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits 4987 .align 1 4988 .global HAL_I2C_Slave_Receive_DMA 4989 .syntax unified 4990 .thumb 4991 .thumb_func 4993 HAL_I2C_Slave_Receive_DMA: 4994 .LVL346: 4995 .LFB156: 2415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4996 .loc 1 2415 1 is_stmt 1 view -0 4997 .cfi_startproc 4998 @ args = 0, pretend = 0, frame = 0 4999 @ frame_needed = 0, uses_anonymous_args = 0 2415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; ARM GAS /tmp/ccSHpINd.s page 249 5000 .loc 1 2415 1 is_stmt 0 view .LVU1743 5001 0000 38B5 push {r3, r4, r5, lr} 5002 .LCFI57: 5003 .cfi_def_cfa_offset 16 5004 .cfi_offset 3, -16 5005 .cfi_offset 4, -12 5006 .cfi_offset 5, -8 5007 .cfi_offset 14, -4 2416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5008 .loc 1 2416 3 is_stmt 1 view .LVU1744 2418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5009 .loc 1 2418 3 view .LVU1745 2418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5010 .loc 1 2418 11 is_stmt 0 view .LVU1746 5011 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 5012 0006 DBB2 uxtb r3, r3 2418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5013 .loc 1 2418 6 view .LVU1747 5014 0008 202B cmp r3, #32 5015 000a 65D1 bne .L337 5016 000c 0446 mov r4, r0 2420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5017 .loc 1 2420 5 is_stmt 1 view .LVU1748 2420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5018 .loc 1 2420 8 is_stmt 0 view .LVU1749 5019 000e 002A cmp r2, #0 5020 0010 18BF it ne 5021 0012 0029 cmpne r1, #0 5022 0014 3AD0 beq .L341 2426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5023 .loc 1 2426 5 is_stmt 1 view .LVU1750 2426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5024 .loc 1 2426 5 view .LVU1751 5025 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5026 001a 012B cmp r3, #1 5027 001c 5FD0 beq .L338 2426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5028 .loc 1 2426 5 discriminator 2 view .LVU1752 5029 001e 0123 movs r3, #1 5030 0020 80F84030 strb r3, [r0, #64] 2426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5031 .loc 1 2426 5 discriminator 2 view .LVU1753 2428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 5032 .loc 1 2428 5 view .LVU1754 2428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 5033 .loc 1 2428 23 is_stmt 0 view .LVU1755 5034 0024 2223 movs r3, #34 5035 0026 80F84130 strb r3, [r0, #65] 2429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5036 .loc 1 2429 5 is_stmt 1 view .LVU1756 2429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5037 .loc 1 2429 23 is_stmt 0 view .LVU1757 5038 002a 2023 movs r3, #32 5039 002c 80F84230 strb r3, [r0, #66] 2430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5040 .loc 1 2430 5 is_stmt 1 view .LVU1758 2430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 250 5041 .loc 1 2430 23 is_stmt 0 view .LVU1759 5042 0030 0023 movs r3, #0 5043 0032 4364 str r3, [r0, #68] 2433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 5044 .loc 1 2433 5 is_stmt 1 view .LVU1760 2433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 5045 .loc 1 2433 23 is_stmt 0 view .LVU1761 5046 0034 4162 str r1, [r0, #36] 2434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5047 .loc 1 2434 5 is_stmt 1 view .LVU1762 2434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5048 .loc 1 2434 23 is_stmt 0 view .LVU1763 5049 0036 4285 strh r2, [r0, #42] @ movhi 2435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5050 .loc 1 2435 5 is_stmt 1 view .LVU1764 2435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5051 .loc 1 2435 29 is_stmt 0 view .LVU1765 5052 0038 438D ldrh r3, [r0, #42] 2435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5053 .loc 1 2435 23 view .LVU1766 5054 003a 0385 strh r3, [r0, #40] @ movhi 2436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 5055 .loc 1 2436 5 is_stmt 1 view .LVU1767 2436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 5056 .loc 1 2436 23 is_stmt 0 view .LVU1768 5057 003c 294B ldr r3, .L343 5058 003e C362 str r3, [r0, #44] 2437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5059 .loc 1 2437 5 is_stmt 1 view .LVU1769 2437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5060 .loc 1 2437 23 is_stmt 0 view .LVU1770 5061 0040 294B ldr r3, .L343+4 5062 0042 4363 str r3, [r0, #52] 2439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5063 .loc 1 2439 5 is_stmt 1 view .LVU1771 2439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5064 .loc 1 2439 13 is_stmt 0 view .LVU1772 5065 0044 C36B ldr r3, [r0, #60] 2439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5066 .loc 1 2439 8 view .LVU1773 5067 0046 33B3 cbz r3, .L334 2442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5068 .loc 1 2442 7 is_stmt 1 view .LVU1774 2442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5069 .loc 1 2442 38 is_stmt 0 view .LVU1775 5070 0048 284A ldr r2, .L343+8 5071 .LVL347: 2442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5072 .loc 1 2442 38 view .LVU1776 5073 004a DA63 str r2, [r3, #60] 2445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5074 .loc 1 2445 7 is_stmt 1 view .LVU1777 2445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5075 .loc 1 2445 11 is_stmt 0 view .LVU1778 5076 004c C36B ldr r3, [r0, #60] 2445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5077 .loc 1 2445 39 view .LVU1779 ARM GAS /tmp/ccSHpINd.s page 251 5078 004e 284A ldr r2, .L343+12 5079 0050 DA64 str r2, [r3, #76] 2448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5080 .loc 1 2448 7 is_stmt 1 view .LVU1780 2448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5081 .loc 1 2448 11 is_stmt 0 view .LVU1781 5082 0052 C26B ldr r2, [r0, #60] 2448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5083 .loc 1 2448 42 view .LVU1782 5084 0054 0023 movs r3, #0 5085 0056 1364 str r3, [r2, #64] 2449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5086 .loc 1 2449 7 is_stmt 1 view .LVU1783 2449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5087 .loc 1 2449 11 is_stmt 0 view .LVU1784 5088 0058 C26B ldr r2, [r0, #60] 2449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5089 .loc 1 2449 39 view .LVU1785 5090 005a 1365 str r3, [r2, #80] 2452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 5091 .loc 1 2452 7 is_stmt 1 view .LVU1786 2452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 5092 .loc 1 2452 69 is_stmt 0 view .LVU1787 5093 005c 0068 ldr r0, [r0] 5094 .LVL348: 2452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 5095 .loc 1 2452 23 view .LVU1788 5096 005e 238D ldrh r3, [r4, #40] 5097 0060 0A46 mov r2, r1 5098 0062 00F12401 add r1, r0, #36 5099 .LVL349: 2452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 5100 .loc 1 2452 23 view .LVU1789 5101 0066 E06B ldr r0, [r4, #60] 5102 0068 FFF7FEFF bl HAL_DMA_Start_IT 5103 .LVL350: 2470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5104 .loc 1 2470 5 is_stmt 1 view .LVU1790 2470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5105 .loc 1 2470 8 is_stmt 0 view .LVU1791 5106 006c 0546 mov r5, r0 5107 006e 00B3 cbz r0, .L342 2490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5108 .loc 1 2490 7 is_stmt 1 view .LVU1792 2490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5109 .loc 1 2490 23 is_stmt 0 view .LVU1793 5110 0070 2823 movs r3, #40 5111 0072 84F84130 strb r3, [r4, #65] 2491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5112 .loc 1 2491 7 is_stmt 1 view .LVU1794 2491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5113 .loc 1 2491 23 is_stmt 0 view .LVU1795 5114 0076 0022 movs r2, #0 5115 0078 84F84220 strb r2, [r4, #66] 2494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5116 .loc 1 2494 7 is_stmt 1 view .LVU1796 2494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 252 5117 .loc 1 2494 11 is_stmt 0 view .LVU1797 5118 007c 636C ldr r3, [r4, #68] 2494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5119 .loc 1 2494 23 view .LVU1798 5120 007e 43F01003 orr r3, r3, #16 5121 0082 6364 str r3, [r4, #68] 2497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5122 .loc 1 2497 7 is_stmt 1 view .LVU1799 2497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5123 .loc 1 2497 7 view .LVU1800 5124 0084 84F84020 strb r2, [r4, #64] 2497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5125 .loc 1 2497 7 view .LVU1801 2499:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5126 .loc 1 2499 7 view .LVU1802 2499:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5127 .loc 1 2499 14 is_stmt 0 view .LVU1803 5128 0088 0125 movs r5, #1 5129 008a 26E0 b .L332 5130 .LVL351: 5131 .L341: 2422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5132 .loc 1 2422 7 is_stmt 1 view .LVU1804 2422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5133 .loc 1 2422 23 is_stmt 0 view .LVU1805 5134 008c 4FF40073 mov r3, #512 5135 0090 4364 str r3, [r0, #68] 2423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5136 .loc 1 2423 7 is_stmt 1 view .LVU1806 2423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5137 .loc 1 2423 15 is_stmt 0 view .LVU1807 5138 0092 0125 movs r5, #1 5139 0094 21E0 b .L332 5140 .L334: 2458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5141 .loc 1 2458 7 is_stmt 1 view .LVU1808 2458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5142 .loc 1 2458 23 is_stmt 0 view .LVU1809 5143 0096 2823 movs r3, #40 5144 0098 80F84130 strb r3, [r0, #65] 2459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5145 .loc 1 2459 7 is_stmt 1 view .LVU1810 2459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5146 .loc 1 2459 23 is_stmt 0 view .LVU1811 5147 009c 0022 movs r2, #0 5148 .LVL352: 2459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5149 .loc 1 2459 23 view .LVU1812 5150 009e 80F84220 strb r2, [r0, #66] 2462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5151 .loc 1 2462 7 is_stmt 1 view .LVU1813 2462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5152 .loc 1 2462 11 is_stmt 0 view .LVU1814 5153 00a2 436C ldr r3, [r0, #68] 2462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5154 .loc 1 2462 23 view .LVU1815 5155 00a4 43F08003 orr r3, r3, #128 ARM GAS /tmp/ccSHpINd.s page 253 5156 00a8 4364 str r3, [r0, #68] 2465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5157 .loc 1 2465 7 is_stmt 1 view .LVU1816 2465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5158 .loc 1 2465 7 view .LVU1817 5159 00aa 80F84020 strb r2, [r0, #64] 2465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5160 .loc 1 2465 7 view .LVU1818 2467:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5161 .loc 1 2467 7 view .LVU1819 2467:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5162 .loc 1 2467 14 is_stmt 0 view .LVU1820 5163 00ae 0125 movs r5, #1 5164 00b0 13E0 b .L332 5165 .LVL353: 5166 .L342: 2473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5167 .loc 1 2473 7 is_stmt 1 view .LVU1821 2473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5168 .loc 1 2473 11 is_stmt 0 view .LVU1822 5169 00b2 2268 ldr r2, [r4] 2473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5170 .loc 1 2473 21 view .LVU1823 5171 00b4 5368 ldr r3, [r2, #4] 2473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5172 .loc 1 2473 27 view .LVU1824 5173 00b6 23F40043 bic r3, r3, #32768 5174 00ba 5360 str r3, [r2, #4] 2476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5175 .loc 1 2476 7 is_stmt 1 view .LVU1825 2476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5176 .loc 1 2476 7 view .LVU1826 5177 00bc 0023 movs r3, #0 5178 00be 84F84030 strb r3, [r4, #64] 2476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5179 .loc 1 2476 7 view .LVU1827 2482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5180 .loc 1 2482 7 view .LVU1828 5181 00c2 4FF40041 mov r1, #32768 5182 00c6 2046 mov r0, r4 5183 .LVL354: 2482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5184 .loc 1 2482 7 is_stmt 0 view .LVU1829 5185 00c8 FFF7FEFF bl I2C_Enable_IRQ 5186 .LVL355: 2485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5187 .loc 1 2485 7 is_stmt 1 view .LVU1830 2485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5188 .loc 1 2485 11 is_stmt 0 view .LVU1831 5189 00cc 2268 ldr r2, [r4] 2485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5190 .loc 1 2485 21 view .LVU1832 5191 00ce 1368 ldr r3, [r2] 2485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5192 .loc 1 2485 27 view .LVU1833 5193 00d0 43F40043 orr r3, r3, #32768 5194 00d4 1360 str r3, [r2] ARM GAS /tmp/ccSHpINd.s page 254 2502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5195 .loc 1 2502 5 is_stmt 1 view .LVU1834 2502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5196 .loc 1 2502 12 is_stmt 0 view .LVU1835 5197 00d6 00E0 b .L332 5198 .LVL356: 5199 .L337: 2506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5200 .loc 1 2506 12 view .LVU1836 5201 00d8 0225 movs r5, #2 5202 .LVL357: 5203 .L332: 2508:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5204 .loc 1 2508 1 view .LVU1837 5205 00da 2846 mov r0, r5 5206 00dc 38BD pop {r3, r4, r5, pc} 5207 .LVL358: 5208 .L338: 2426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5209 .loc 1 2426 5 discriminator 1 view .LVU1838 5210 00de 0225 movs r5, #2 5211 00e0 FBE7 b .L332 5212 .L344: 5213 00e2 00BF .align 2 5214 .L343: 5215 00e4 0000FFFF .word -65536 5216 00e8 00000000 .word I2C_Slave_ISR_DMA 5217 00ec 00000000 .word I2C_DMASlaveReceiveCplt 5218 00f0 00000000 .word I2C_DMAError 5219 .cfi_endproc 5220 .LFE156: 5222 .section .text.HAL_I2C_Mem_Write,"ax",%progbits 5223 .align 1 5224 .global HAL_I2C_Mem_Write 5225 .syntax unified 5226 .thumb 5227 .thumb_func 5229 HAL_I2C_Mem_Write: 5230 .LVL359: 5231 .LFB157: 2525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 5232 .loc 1 2525 1 is_stmt 1 view -0 5233 .cfi_startproc 5234 @ args = 12, pretend = 0, frame = 0 5235 @ frame_needed = 0, uses_anonymous_args = 0 2525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 5236 .loc 1 2525 1 is_stmt 0 view .LVU1840 5237 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5238 .LCFI58: 5239 .cfi_def_cfa_offset 36 5240 .cfi_offset 4, -36 5241 .cfi_offset 5, -32 5242 .cfi_offset 6, -28 5243 .cfi_offset 7, -24 5244 .cfi_offset 8, -20 5245 .cfi_offset 9, -16 5246 .cfi_offset 10, -12 ARM GAS /tmp/ccSHpINd.s page 255 5247 .cfi_offset 11, -8 5248 .cfi_offset 14, -4 5249 0004 83B0 sub sp, sp, #12 5250 .LCFI59: 5251 .cfi_def_cfa_offset 48 5252 0006 0D46 mov r5, r1 5253 0008 BDF834A0 ldrh r10, [sp, #52] 5254 000c 0E9F ldr r7, [sp, #56] 2526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5255 .loc 1 2526 3 is_stmt 1 view .LVU1841 2529:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5256 .loc 1 2529 3 view .LVU1842 2531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5257 .loc 1 2531 3 view .LVU1843 2531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5258 .loc 1 2531 11 is_stmt 0 view .LVU1844 5259 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5260 .LVL360: 2531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5261 .loc 1 2531 11 view .LVU1845 5262 0012 C9B2 uxtb r1, r1 2531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5263 .loc 1 2531 6 view .LVU1846 5264 0014 2029 cmp r1, #32 5265 0016 40F0BC80 bne .L354 5266 001a 0446 mov r4, r0 5267 001c 9046 mov r8, r2 5268 001e 9946 mov r9, r3 2533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5269 .loc 1 2533 5 is_stmt 1 view .LVU1847 2533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5270 .loc 1 2533 8 is_stmt 0 view .LVU1848 5271 0020 0C9B ldr r3, [sp, #48] 5272 .LVL361: 2533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5273 .loc 1 2533 8 view .LVU1849 5274 0022 BAF1000F cmp r10, #0 5275 0026 18BF it ne 5276 0028 002B cmpne r3, #0 5277 002a 16D0 beq .L361 2540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5278 .loc 1 2540 5 is_stmt 1 view .LVU1850 2540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5279 .loc 1 2540 5 view .LVU1851 5280 002c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5281 0030 012B cmp r3, #1 5282 0032 00F0B280 beq .L355 2540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5283 .loc 1 2540 5 discriminator 2 view .LVU1852 5284 0036 4FF0010B mov fp, #1 5285 003a 80F840B0 strb fp, [r0, #64] 2540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5286 .loc 1 2540 5 discriminator 2 view .LVU1853 2543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5287 .loc 1 2543 5 view .LVU1854 2543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5288 .loc 1 2543 17 is_stmt 0 view .LVU1855 ARM GAS /tmp/ccSHpINd.s page 256 5289 003e FFF7FEFF bl HAL_GetTick 5290 .LVL362: 2543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5291 .loc 1 2543 17 view .LVU1856 5292 0042 0646 mov r6, r0 5293 .LVL363: 2545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5294 .loc 1 2545 5 is_stmt 1 view .LVU1857 2545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5295 .loc 1 2545 9 is_stmt 0 view .LVU1858 5296 0044 0090 str r0, [sp] 5297 0046 1923 movs r3, #25 5298 0048 5A46 mov r2, fp 5299 004a 4FF40041 mov r1, #32768 5300 004e 2046 mov r0, r4 5301 .LVL364: 2545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5302 .loc 1 2545 9 view .LVU1859 5303 0050 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5304 .LVL365: 2545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5305 .loc 1 2545 8 discriminator 1 view .LVU1860 5306 0054 30B1 cbz r0, .L362 2547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5307 .loc 1 2547 14 view .LVU1861 5308 0056 0120 movs r0, #1 5309 0058 9CE0 b .L346 5310 .LVL366: 5311 .L361: 2535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5312 .loc 1 2535 7 is_stmt 1 view .LVU1862 2535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5313 .loc 1 2535 23 is_stmt 0 view .LVU1863 5314 005a 4FF40073 mov r3, #512 5315 005e 4364 str r3, [r0, #68] 2536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5316 .loc 1 2536 7 is_stmt 1 view .LVU1864 2536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5317 .loc 1 2536 15 is_stmt 0 view .LVU1865 5318 0060 0120 movs r0, #1 5319 .LVL367: 2536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5320 .loc 1 2536 15 view .LVU1866 5321 0062 97E0 b .L346 5322 .LVL368: 5323 .L362: 2550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5324 .loc 1 2550 5 is_stmt 1 view .LVU1867 2550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5325 .loc 1 2550 21 is_stmt 0 view .LVU1868 5326 0064 2123 movs r3, #33 5327 0066 84F84130 strb r3, [r4, #65] 2551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5328 .loc 1 2551 5 is_stmt 1 view .LVU1869 2551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5329 .loc 1 2551 21 is_stmt 0 view .LVU1870 5330 006a 4023 movs r3, #64 ARM GAS /tmp/ccSHpINd.s page 257 5331 006c 84F84230 strb r3, [r4, #66] 2552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5332 .loc 1 2552 5 is_stmt 1 view .LVU1871 2552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5333 .loc 1 2552 21 is_stmt 0 view .LVU1872 5334 0070 0023 movs r3, #0 5335 0072 6364 str r3, [r4, #68] 2555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 5336 .loc 1 2555 5 is_stmt 1 view .LVU1873 2555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 5337 .loc 1 2555 21 is_stmt 0 view .LVU1874 5338 0074 0C9A ldr r2, [sp, #48] 5339 0076 6262 str r2, [r4, #36] 2556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5340 .loc 1 2556 5 is_stmt 1 view .LVU1875 2556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5341 .loc 1 2556 21 is_stmt 0 view .LVU1876 5342 0078 A4F82AA0 strh r10, [r4, #42] @ movhi 2557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5343 .loc 1 2557 5 is_stmt 1 view .LVU1877 2557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5344 .loc 1 2557 21 is_stmt 0 view .LVU1878 5345 007c 6363 str r3, [r4, #52] 2560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5346 .loc 1 2560 5 is_stmt 1 view .LVU1879 2560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5347 .loc 1 2560 9 is_stmt 0 view .LVU1880 5348 007e 0196 str r6, [sp, #4] 5349 0080 0097 str r7, [sp] 5350 0082 4B46 mov r3, r9 5351 0084 4246 mov r2, r8 5352 0086 2946 mov r1, r5 5353 0088 2046 mov r0, r4 5354 008a FFF7FEFF bl I2C_RequestMemoryWrite 5355 .LVL369: 2560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5356 .loc 1 2560 8 discriminator 1 view .LVU1881 5357 008e 70B9 cbnz r0, .L363 2568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5358 .loc 1 2568 5 is_stmt 1 view .LVU1882 2568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5359 .loc 1 2568 13 is_stmt 0 view .LVU1883 5360 0090 638D ldrh r3, [r4, #42] 5361 0092 9BB2 uxth r3, r3 2568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5362 .loc 1 2568 8 view .LVU1884 5363 0094 FF2B cmp r3, #255 5364 0096 0FD9 bls .L349 2570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5365 .loc 1 2570 7 is_stmt 1 view .LVU1885 2570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5366 .loc 1 2570 22 is_stmt 0 view .LVU1886 5367 0098 FF22 movs r2, #255 5368 009a 2285 strh r2, [r4, #40] @ movhi 2571:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5369 .loc 1 2571 7 is_stmt 1 view .LVU1887 5370 009c 0023 movs r3, #0 ARM GAS /tmp/ccSHpINd.s page 258 5371 009e 0093 str r3, [sp] 5372 00a0 4FF08073 mov r3, #16777216 5373 00a4 2946 mov r1, r5 5374 00a6 2046 mov r0, r4 5375 00a8 FFF7FEFF bl I2C_TransferConfig 5376 .LVL370: 5377 00ac 21E0 b .L353 5378 .L363: 2563:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5379 .loc 1 2563 7 view .LVU1888 2563:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5380 .loc 1 2563 7 view .LVU1889 5381 00ae 0023 movs r3, #0 5382 00b0 84F84030 strb r3, [r4, #64] 2563:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5383 .loc 1 2563 7 view .LVU1890 2564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5384 .loc 1 2564 7 view .LVU1891 2564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5385 .loc 1 2564 14 is_stmt 0 view .LVU1892 5386 00b4 5846 mov r0, fp 5387 00b6 6DE0 b .L346 5388 .L349: 2575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5389 .loc 1 2575 7 is_stmt 1 view .LVU1893 2575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5390 .loc 1 2575 28 is_stmt 0 view .LVU1894 5391 00b8 628D ldrh r2, [r4, #42] 5392 00ba 92B2 uxth r2, r2 2575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5393 .loc 1 2575 22 view .LVU1895 5394 00bc 2285 strh r2, [r4, #40] @ movhi 2576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5395 .loc 1 2576 7 is_stmt 1 view .LVU1896 5396 00be 0023 movs r3, #0 5397 00c0 0093 str r3, [sp] 5398 00c2 4FF00073 mov r3, #33554432 5399 00c6 D2B2 uxtb r2, r2 5400 00c8 2946 mov r1, r5 5401 00ca 2046 mov r0, r4 5402 00cc FFF7FEFF bl I2C_TransferConfig 5403 .LVL371: 5404 00d0 0FE0 b .L353 5405 .L352: 2612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5406 .loc 1 2612 11 view .LVU1897 2612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5407 .loc 1 2612 32 is_stmt 0 view .LVU1898 5408 00d2 628D ldrh r2, [r4, #42] 5409 00d4 92B2 uxth r2, r2 2612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5410 .loc 1 2612 26 view .LVU1899 5411 00d6 2285 strh r2, [r4, #40] @ movhi 2613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5412 .loc 1 2613 11 is_stmt 1 view .LVU1900 5413 00d8 0023 movs r3, #0 5414 00da 0093 str r3, [sp] ARM GAS /tmp/ccSHpINd.s page 259 5415 00dc 4FF00073 mov r3, #33554432 5416 00e0 D2B2 uxtb r2, r2 5417 00e2 2946 mov r1, r5 5418 00e4 2046 mov r0, r4 5419 00e6 FFF7FEFF bl I2C_TransferConfig 5420 .LVL372: 5421 .L351: 2618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5422 .loc 1 2618 30 view .LVU1901 2618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5423 .loc 1 2618 18 is_stmt 0 view .LVU1902 5424 00ea 638D ldrh r3, [r4, #42] 5425 00ec 9BB2 uxth r3, r3 2618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5426 .loc 1 2618 30 view .LVU1903 5427 00ee 002B cmp r3, #0 5428 00f0 33D0 beq .L364 5429 .L353: 2579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5430 .loc 1 2579 5 is_stmt 1 view .LVU1904 2582:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5431 .loc 1 2582 7 view .LVU1905 2582:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5432 .loc 1 2582 11 is_stmt 0 view .LVU1906 5433 00f2 3246 mov r2, r6 5434 00f4 3946 mov r1, r7 5435 00f6 2046 mov r0, r4 5436 00f8 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 5437 .LVL373: 2582:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5438 .loc 1 2582 10 discriminator 1 view .LVU1907 5439 00fc 0028 cmp r0, #0 5440 00fe 4ED1 bne .L357 2588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5441 .loc 1 2588 7 is_stmt 1 view .LVU1908 2588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5442 .loc 1 2588 35 is_stmt 0 view .LVU1909 5443 0100 626A ldr r2, [r4, #36] 2588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5444 .loc 1 2588 11 view .LVU1910 5445 0102 2368 ldr r3, [r4] 2588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5446 .loc 1 2588 30 view .LVU1911 5447 0104 1278 ldrb r2, [r2] @ zero_extendqisi2 2588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5448 .loc 1 2588 28 view .LVU1912 5449 0106 9A62 str r2, [r3, #40] 2591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5450 .loc 1 2591 7 is_stmt 1 view .LVU1913 2591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5451 .loc 1 2591 11 is_stmt 0 view .LVU1914 5452 0108 636A ldr r3, [r4, #36] 2591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5453 .loc 1 2591 21 view .LVU1915 5454 010a 0133 adds r3, r3, #1 5455 010c 6362 str r3, [r4, #36] 2593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; ARM GAS /tmp/ccSHpINd.s page 260 5456 .loc 1 2593 7 is_stmt 1 view .LVU1916 2593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 5457 .loc 1 2593 11 is_stmt 0 view .LVU1917 5458 010e 638D ldrh r3, [r4, #42] 5459 0110 9BB2 uxth r3, r3 2593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 5460 .loc 1 2593 22 view .LVU1918 5461 0112 013B subs r3, r3, #1 5462 0114 9BB2 uxth r3, r3 5463 0116 6385 strh r3, [r4, #42] @ movhi 2594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5464 .loc 1 2594 7 is_stmt 1 view .LVU1919 2594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5465 .loc 1 2594 11 is_stmt 0 view .LVU1920 5466 0118 238D ldrh r3, [r4, #40] 2594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5467 .loc 1 2594 21 view .LVU1921 5468 011a 013B subs r3, r3, #1 5469 011c 9BB2 uxth r3, r3 5470 011e 2385 strh r3, [r4, #40] @ movhi 2596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5471 .loc 1 2596 7 is_stmt 1 view .LVU1922 2596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5472 .loc 1 2596 16 is_stmt 0 view .LVU1923 5473 0120 628D ldrh r2, [r4, #42] 5474 0122 92B2 uxth r2, r2 2596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5475 .loc 1 2596 10 view .LVU1924 5476 0124 002A cmp r2, #0 5477 0126 E0D0 beq .L351 2596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5478 .loc 1 2596 35 discriminator 1 view .LVU1925 5479 0128 002B cmp r3, #0 5480 012a DED1 bne .L351 2599:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5481 .loc 1 2599 9 is_stmt 1 view .LVU1926 2599:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5482 .loc 1 2599 13 is_stmt 0 view .LVU1927 5483 012c 0096 str r6, [sp] 5484 012e 3B46 mov r3, r7 5485 0130 0022 movs r2, #0 5486 0132 8021 movs r1, #128 5487 0134 2046 mov r0, r4 5488 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5489 .LVL374: 2599:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5490 .loc 1 2599 12 discriminator 1 view .LVU1928 5491 013a 90BB cbnz r0, .L358 2604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5492 .loc 1 2604 9 is_stmt 1 view .LVU1929 2604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5493 .loc 1 2604 17 is_stmt 0 view .LVU1930 5494 013c 638D ldrh r3, [r4, #42] 5495 013e 9BB2 uxth r3, r3 2604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5496 .loc 1 2604 12 view .LVU1931 5497 0140 FF2B cmp r3, #255 ARM GAS /tmp/ccSHpINd.s page 261 5498 0142 C6D9 bls .L352 2606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5499 .loc 1 2606 11 is_stmt 1 view .LVU1932 2606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5500 .loc 1 2606 26 is_stmt 0 view .LVU1933 5501 0144 FF22 movs r2, #255 5502 0146 2285 strh r2, [r4, #40] @ movhi 2607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5503 .loc 1 2607 11 is_stmt 1 view .LVU1934 5504 0148 0023 movs r3, #0 5505 014a 0093 str r3, [sp] 5506 014c 4FF08073 mov r3, #16777216 5507 0150 2946 mov r1, r5 5508 0152 2046 mov r0, r4 5509 0154 FFF7FEFF bl I2C_TransferConfig 5510 .LVL375: 5511 0158 C7E7 b .L351 5512 .L364: 2622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5513 .loc 1 2622 5 view .LVU1935 2622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5514 .loc 1 2622 9 is_stmt 0 view .LVU1936 5515 015a 3246 mov r2, r6 5516 015c 3946 mov r1, r7 5517 015e 2046 mov r0, r4 5518 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5519 .LVL376: 2622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5520 .loc 1 2622 8 discriminator 1 view .LVU1937 5521 0164 F8B9 cbnz r0, .L359 2628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5522 .loc 1 2628 5 is_stmt 1 view .LVU1938 5523 0166 2368 ldr r3, [r4] 5524 0168 2022 movs r2, #32 5525 016a DA61 str r2, [r3, #28] 2631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5526 .loc 1 2631 5 view .LVU1939 5527 016c 2168 ldr r1, [r4] 5528 016e 4B68 ldr r3, [r1, #4] 5529 0170 23F0FF73 bic r3, r3, #33423360 5530 0174 23F48B33 bic r3, r3, #71168 5531 0178 23F4FF73 bic r3, r3, #510 5532 017c 23F00103 bic r3, r3, #1 5533 0180 4B60 str r3, [r1, #4] 2633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5534 .loc 1 2633 5 view .LVU1940 2633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5535 .loc 1 2633 17 is_stmt 0 view .LVU1941 5536 0182 84F84120 strb r2, [r4, #65] 2634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5537 .loc 1 2634 5 is_stmt 1 view .LVU1942 2634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5538 .loc 1 2634 17 is_stmt 0 view .LVU1943 5539 0186 0023 movs r3, #0 5540 0188 84F84230 strb r3, [r4, #66] 2637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5541 .loc 1 2637 5 is_stmt 1 view .LVU1944 ARM GAS /tmp/ccSHpINd.s page 262 2637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5542 .loc 1 2637 5 view .LVU1945 5543 018c 84F84030 strb r3, [r4, #64] 2637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5544 .loc 1 2637 5 view .LVU1946 2639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5545 .loc 1 2639 5 view .LVU1947 2639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5546 .loc 1 2639 12 is_stmt 0 view .LVU1948 5547 0190 00E0 b .L346 5548 .LVL377: 5549 .L354: 2643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5550 .loc 1 2643 12 view .LVU1949 5551 0192 0220 movs r0, #2 5552 .LVL378: 5553 .L346: 2645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5554 .loc 1 2645 1 view .LVU1950 5555 0194 03B0 add sp, sp, #12 5556 .LCFI60: 5557 .cfi_remember_state 5558 .cfi_def_cfa_offset 36 5559 @ sp needed 5560 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5561 .LVL379: 5562 .L355: 5563 .LCFI61: 5564 .cfi_restore_state 2540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5565 .loc 1 2540 5 discriminator 1 view .LVU1951 5566 019a 0220 movs r0, #2 5567 .LVL380: 2540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5568 .loc 1 2540 5 discriminator 1 view .LVU1952 5569 019c FAE7 b .L346 5570 .LVL381: 5571 .L357: 2584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5572 .loc 1 2584 16 view .LVU1953 5573 019e 0120 movs r0, #1 5574 01a0 F8E7 b .L346 5575 .L358: 2601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5576 .loc 1 2601 18 view .LVU1954 5577 01a2 0120 movs r0, #1 5578 01a4 F6E7 b .L346 5579 .L359: 2624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5580 .loc 1 2624 14 view .LVU1955 5581 01a6 0120 movs r0, #1 5582 01a8 F4E7 b .L346 5583 .cfi_endproc 5584 .LFE157: 5586 .section .text.HAL_I2C_Mem_Read,"ax",%progbits 5587 .align 1 5588 .global HAL_I2C_Mem_Read ARM GAS /tmp/ccSHpINd.s page 263 5589 .syntax unified 5590 .thumb 5591 .thumb_func 5593 HAL_I2C_Mem_Read: 5594 .LVL382: 5595 .LFB158: 2662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 5596 .loc 1 2662 1 is_stmt 1 view -0 5597 .cfi_startproc 5598 @ args = 12, pretend = 0, frame = 0 5599 @ frame_needed = 0, uses_anonymous_args = 0 2662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 5600 .loc 1 2662 1 is_stmt 0 view .LVU1957 5601 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5602 .LCFI62: 5603 .cfi_def_cfa_offset 36 5604 .cfi_offset 4, -36 5605 .cfi_offset 5, -32 5606 .cfi_offset 6, -28 5607 .cfi_offset 7, -24 5608 .cfi_offset 8, -20 5609 .cfi_offset 9, -16 5610 .cfi_offset 10, -12 5611 .cfi_offset 11, -8 5612 .cfi_offset 14, -4 5613 0004 83B0 sub sp, sp, #12 5614 .LCFI63: 5615 .cfi_def_cfa_offset 48 5616 0006 0D46 mov r5, r1 5617 0008 BDF834A0 ldrh r10, [sp, #52] 5618 000c 0E9F ldr r7, [sp, #56] 2663:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5619 .loc 1 2663 3 is_stmt 1 view .LVU1958 2666:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5620 .loc 1 2666 3 view .LVU1959 2668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5621 .loc 1 2668 3 view .LVU1960 2668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5622 .loc 1 2668 11 is_stmt 0 view .LVU1961 5623 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5624 .LVL383: 2668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5625 .loc 1 2668 11 view .LVU1962 5626 0012 C9B2 uxtb r1, r1 2668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5627 .loc 1 2668 6 view .LVU1963 5628 0014 2029 cmp r1, #32 5629 0016 40F0BD80 bne .L374 5630 001a 0446 mov r4, r0 5631 001c 9046 mov r8, r2 5632 001e 9946 mov r9, r3 2670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5633 .loc 1 2670 5 is_stmt 1 view .LVU1964 2670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5634 .loc 1 2670 8 is_stmt 0 view .LVU1965 5635 0020 0C9B ldr r3, [sp, #48] 5636 .LVL384: ARM GAS /tmp/ccSHpINd.s page 264 2670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5637 .loc 1 2670 8 view .LVU1966 5638 0022 BAF1000F cmp r10, #0 5639 0026 18BF it ne 5640 0028 002B cmpne r3, #0 5641 002a 16D0 beq .L381 2677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5642 .loc 1 2677 5 is_stmt 1 view .LVU1967 2677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5643 .loc 1 2677 5 view .LVU1968 5644 002c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5645 0030 012B cmp r3, #1 5646 0032 00F0B380 beq .L375 2677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5647 .loc 1 2677 5 discriminator 2 view .LVU1969 5648 0036 4FF0010B mov fp, #1 5649 003a 80F840B0 strb fp, [r0, #64] 2677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5650 .loc 1 2677 5 discriminator 2 view .LVU1970 2680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5651 .loc 1 2680 5 view .LVU1971 2680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5652 .loc 1 2680 17 is_stmt 0 view .LVU1972 5653 003e FFF7FEFF bl HAL_GetTick 5654 .LVL385: 2680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5655 .loc 1 2680 17 view .LVU1973 5656 0042 0646 mov r6, r0 5657 .LVL386: 2682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5658 .loc 1 2682 5 is_stmt 1 view .LVU1974 2682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5659 .loc 1 2682 9 is_stmt 0 view .LVU1975 5660 0044 0090 str r0, [sp] 5661 0046 1923 movs r3, #25 5662 0048 5A46 mov r2, fp 5663 004a 4FF40041 mov r1, #32768 5664 004e 2046 mov r0, r4 5665 .LVL387: 2682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5666 .loc 1 2682 9 view .LVU1976 5667 0050 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5668 .LVL388: 2682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5669 .loc 1 2682 8 discriminator 1 view .LVU1977 5670 0054 30B1 cbz r0, .L382 2684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5671 .loc 1 2684 14 view .LVU1978 5672 0056 0120 movs r0, #1 5673 0058 9DE0 b .L366 5674 .LVL389: 5675 .L381: 2672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5676 .loc 1 2672 7 is_stmt 1 view .LVU1979 2672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5677 .loc 1 2672 23 is_stmt 0 view .LVU1980 5678 005a 4FF40073 mov r3, #512 ARM GAS /tmp/ccSHpINd.s page 265 5679 005e 4364 str r3, [r0, #68] 2673:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5680 .loc 1 2673 7 is_stmt 1 view .LVU1981 2673:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5681 .loc 1 2673 15 is_stmt 0 view .LVU1982 5682 0060 0120 movs r0, #1 5683 .LVL390: 2673:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5684 .loc 1 2673 15 view .LVU1983 5685 0062 98E0 b .L366 5686 .LVL391: 5687 .L382: 2687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5688 .loc 1 2687 5 is_stmt 1 view .LVU1984 2687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5689 .loc 1 2687 21 is_stmt 0 view .LVU1985 5690 0064 2223 movs r3, #34 5691 0066 84F84130 strb r3, [r4, #65] 2688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5692 .loc 1 2688 5 is_stmt 1 view .LVU1986 2688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5693 .loc 1 2688 21 is_stmt 0 view .LVU1987 5694 006a 4023 movs r3, #64 5695 006c 84F84230 strb r3, [r4, #66] 2689:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5696 .loc 1 2689 5 is_stmt 1 view .LVU1988 2689:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5697 .loc 1 2689 21 is_stmt 0 view .LVU1989 5698 0070 0023 movs r3, #0 5699 0072 6364 str r3, [r4, #68] 2692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 5700 .loc 1 2692 5 is_stmt 1 view .LVU1990 2692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 5701 .loc 1 2692 21 is_stmt 0 view .LVU1991 5702 0074 0C9A ldr r2, [sp, #48] 5703 0076 6262 str r2, [r4, #36] 2693:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5704 .loc 1 2693 5 is_stmt 1 view .LVU1992 2693:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5705 .loc 1 2693 21 is_stmt 0 view .LVU1993 5706 0078 A4F82AA0 strh r10, [r4, #42] @ movhi 2694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5707 .loc 1 2694 5 is_stmt 1 view .LVU1994 2694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5708 .loc 1 2694 21 is_stmt 0 view .LVU1995 5709 007c 6363 str r3, [r4, #52] 2697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5710 .loc 1 2697 5 is_stmt 1 view .LVU1996 2697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5711 .loc 1 2697 9 is_stmt 0 view .LVU1997 5712 007e 0196 str r6, [sp, #4] 5713 0080 0097 str r7, [sp] 5714 0082 4B46 mov r3, r9 5715 0084 4246 mov r2, r8 5716 0086 2946 mov r1, r5 5717 0088 2046 mov r0, r4 5718 008a FFF7FEFF bl I2C_RequestMemoryRead ARM GAS /tmp/ccSHpINd.s page 266 5719 .LVL392: 2697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5720 .loc 1 2697 8 discriminator 1 view .LVU1998 5721 008e 70B9 cbnz r0, .L383 2706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5722 .loc 1 2706 5 is_stmt 1 view .LVU1999 2706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5723 .loc 1 2706 13 is_stmt 0 view .LVU2000 5724 0090 638D ldrh r3, [r4, #42] 5725 0092 9BB2 uxth r3, r3 2706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5726 .loc 1 2706 8 view .LVU2001 5727 0094 FF2B cmp r3, #255 5728 0096 0FD9 bls .L369 2708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5729 .loc 1 2708 7 is_stmt 1 view .LVU2002 2708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5730 .loc 1 2708 22 is_stmt 0 view .LVU2003 5731 0098 0122 movs r2, #1 5732 009a 2285 strh r2, [r4, #40] @ movhi 2709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5733 .loc 1 2709 7 is_stmt 1 view .LVU2004 5734 009c 434B ldr r3, .L385 5735 009e 0093 str r3, [sp] 5736 00a0 4FF08073 mov r3, #16777216 5737 00a4 2946 mov r1, r5 5738 00a6 2046 mov r0, r4 5739 00a8 FFF7FEFF bl I2C_TransferConfig 5740 .LVL393: 5741 00ac 21E0 b .L373 5742 .L383: 2700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5743 .loc 1 2700 7 view .LVU2005 2700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5744 .loc 1 2700 7 view .LVU2006 5745 00ae 0023 movs r3, #0 5746 00b0 84F84030 strb r3, [r4, #64] 2700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5747 .loc 1 2700 7 view .LVU2007 2701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5748 .loc 1 2701 7 view .LVU2008 2701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5749 .loc 1 2701 14 is_stmt 0 view .LVU2009 5750 00b4 5846 mov r0, fp 5751 00b6 6EE0 b .L366 5752 .L369: 2714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5753 .loc 1 2714 7 is_stmt 1 view .LVU2010 2714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5754 .loc 1 2714 28 is_stmt 0 view .LVU2011 5755 00b8 628D ldrh r2, [r4, #42] 5756 00ba 92B2 uxth r2, r2 2714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5757 .loc 1 2714 22 view .LVU2012 5758 00bc 2285 strh r2, [r4, #40] @ movhi 2715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5759 .loc 1 2715 7 is_stmt 1 view .LVU2013 ARM GAS /tmp/ccSHpINd.s page 267 5760 00be 3B4B ldr r3, .L385 5761 00c0 0093 str r3, [sp] 5762 00c2 4FF00073 mov r3, #33554432 5763 00c6 D2B2 uxtb r2, r2 5764 00c8 2946 mov r1, r5 5765 00ca 2046 mov r0, r4 5766 00cc FFF7FEFF bl I2C_TransferConfig 5767 .LVL394: 5768 00d0 0FE0 b .L373 5769 .L372: 2752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5770 .loc 1 2752 11 view .LVU2014 2752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5771 .loc 1 2752 32 is_stmt 0 view .LVU2015 5772 00d2 628D ldrh r2, [r4, #42] 5773 00d4 92B2 uxth r2, r2 2752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5774 .loc 1 2752 26 view .LVU2016 5775 00d6 2285 strh r2, [r4, #40] @ movhi 2753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5776 .loc 1 2753 11 is_stmt 1 view .LVU2017 5777 00d8 0023 movs r3, #0 5778 00da 0093 str r3, [sp] 5779 00dc 4FF00073 mov r3, #33554432 5780 00e0 D2B2 uxtb r2, r2 5781 00e2 2946 mov r1, r5 5782 00e4 2046 mov r0, r4 5783 00e6 FFF7FEFF bl I2C_TransferConfig 5784 .LVL395: 5785 .L371: 2757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5786 .loc 1 2757 30 view .LVU2018 2757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5787 .loc 1 2757 18 is_stmt 0 view .LVU2019 5788 00ea 638D ldrh r3, [r4, #42] 5789 00ec 9BB2 uxth r3, r3 2757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5790 .loc 1 2757 30 view .LVU2020 5791 00ee 002B cmp r3, #0 5792 00f0 34D0 beq .L384 5793 .L373: 2719:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5794 .loc 1 2719 5 is_stmt 1 view .LVU2021 2722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5795 .loc 1 2722 7 view .LVU2022 2722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5796 .loc 1 2722 11 is_stmt 0 view .LVU2023 5797 00f2 0096 str r6, [sp] 5798 00f4 3B46 mov r3, r7 5799 00f6 0022 movs r2, #0 5800 00f8 0421 movs r1, #4 5801 00fa 2046 mov r0, r4 5802 00fc FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5803 .LVL396: 2722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5804 .loc 1 2722 10 discriminator 1 view .LVU2024 5805 0100 0028 cmp r0, #0 ARM GAS /tmp/ccSHpINd.s page 268 5806 0102 4DD1 bne .L377 2728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5807 .loc 1 2728 7 is_stmt 1 view .LVU2025 2728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5808 .loc 1 2728 38 is_stmt 0 view .LVU2026 5809 0104 2368 ldr r3, [r4] 2728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5810 .loc 1 2728 48 view .LVU2027 5811 0106 5A6A ldr r2, [r3, #36] 2728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5812 .loc 1 2728 12 view .LVU2028 5813 0108 636A ldr r3, [r4, #36] 2728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5814 .loc 1 2728 23 view .LVU2029 5815 010a 1A70 strb r2, [r3] 2731:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5816 .loc 1 2731 7 is_stmt 1 view .LVU2030 2731:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5817 .loc 1 2731 11 is_stmt 0 view .LVU2031 5818 010c 636A ldr r3, [r4, #36] 2731:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5819 .loc 1 2731 21 view .LVU2032 5820 010e 0133 adds r3, r3, #1 5821 0110 6362 str r3, [r4, #36] 2733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 5822 .loc 1 2733 7 is_stmt 1 view .LVU2033 2733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 5823 .loc 1 2733 11 is_stmt 0 view .LVU2034 5824 0112 228D ldrh r2, [r4, #40] 2733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 5825 .loc 1 2733 21 view .LVU2035 5826 0114 013A subs r2, r2, #1 5827 0116 92B2 uxth r2, r2 5828 0118 2285 strh r2, [r4, #40] @ movhi 2734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5829 .loc 1 2734 7 is_stmt 1 view .LVU2036 2734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5830 .loc 1 2734 11 is_stmt 0 view .LVU2037 5831 011a 638D ldrh r3, [r4, #42] 5832 011c 9BB2 uxth r3, r3 2734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5833 .loc 1 2734 22 view .LVU2038 5834 011e 013B subs r3, r3, #1 5835 0120 9BB2 uxth r3, r3 5836 0122 6385 strh r3, [r4, #42] @ movhi 2736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5837 .loc 1 2736 7 is_stmt 1 view .LVU2039 2736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5838 .loc 1 2736 16 is_stmt 0 view .LVU2040 5839 0124 638D ldrh r3, [r4, #42] 5840 0126 9BB2 uxth r3, r3 2736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5841 .loc 1 2736 10 view .LVU2041 5842 0128 002B cmp r3, #0 5843 012a DED0 beq .L371 2736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5844 .loc 1 2736 35 discriminator 1 view .LVU2042 ARM GAS /tmp/ccSHpINd.s page 269 5845 012c 002A cmp r2, #0 5846 012e DCD1 bne .L371 2739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5847 .loc 1 2739 9 is_stmt 1 view .LVU2043 2739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5848 .loc 1 2739 13 is_stmt 0 view .LVU2044 5849 0130 0096 str r6, [sp] 5850 0132 3B46 mov r3, r7 5851 0134 8021 movs r1, #128 5852 0136 2046 mov r0, r4 5853 0138 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5854 .LVL397: 2739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5855 .loc 1 2739 12 discriminator 1 view .LVU2045 5856 013c 90BB cbnz r0, .L378 2744:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5857 .loc 1 2744 9 is_stmt 1 view .LVU2046 2744:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5858 .loc 1 2744 17 is_stmt 0 view .LVU2047 5859 013e 638D ldrh r3, [r4, #42] 5860 0140 9BB2 uxth r3, r3 2744:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5861 .loc 1 2744 12 view .LVU2048 5862 0142 FF2B cmp r3, #255 5863 0144 C5D9 bls .L372 2746:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5864 .loc 1 2746 11 is_stmt 1 view .LVU2049 2746:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5865 .loc 1 2746 26 is_stmt 0 view .LVU2050 5866 0146 0122 movs r2, #1 5867 0148 2285 strh r2, [r4, #40] @ movhi 2747:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5868 .loc 1 2747 11 is_stmt 1 view .LVU2051 5869 014a 0023 movs r3, #0 5870 014c 0093 str r3, [sp] 5871 014e 4FF08073 mov r3, #16777216 5872 0152 2946 mov r1, r5 5873 0154 2046 mov r0, r4 5874 0156 FFF7FEFF bl I2C_TransferConfig 5875 .LVL398: 5876 015a C6E7 b .L371 5877 .L384: 2761:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5878 .loc 1 2761 5 view .LVU2052 2761:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5879 .loc 1 2761 9 is_stmt 0 view .LVU2053 5880 015c 3246 mov r2, r6 5881 015e 3946 mov r1, r7 5882 0160 2046 mov r0, r4 5883 0162 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5884 .LVL399: 2761:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5885 .loc 1 2761 8 discriminator 1 view .LVU2054 5886 0166 F8B9 cbnz r0, .L379 2767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5887 .loc 1 2767 5 is_stmt 1 view .LVU2055 5888 0168 2368 ldr r3, [r4] ARM GAS /tmp/ccSHpINd.s page 270 5889 016a 2022 movs r2, #32 5890 016c DA61 str r2, [r3, #28] 2770:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5891 .loc 1 2770 5 view .LVU2056 5892 016e 2168 ldr r1, [r4] 5893 0170 4B68 ldr r3, [r1, #4] 5894 0172 23F0FF73 bic r3, r3, #33423360 5895 0176 23F48B33 bic r3, r3, #71168 5896 017a 23F4FF73 bic r3, r3, #510 5897 017e 23F00103 bic r3, r3, #1 5898 0182 4B60 str r3, [r1, #4] 2772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5899 .loc 1 2772 5 view .LVU2057 2772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5900 .loc 1 2772 17 is_stmt 0 view .LVU2058 5901 0184 84F84120 strb r2, [r4, #65] 2773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5902 .loc 1 2773 5 is_stmt 1 view .LVU2059 2773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5903 .loc 1 2773 17 is_stmt 0 view .LVU2060 5904 0188 0023 movs r3, #0 5905 018a 84F84230 strb r3, [r4, #66] 2776:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5906 .loc 1 2776 5 is_stmt 1 view .LVU2061 2776:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5907 .loc 1 2776 5 view .LVU2062 5908 018e 84F84030 strb r3, [r4, #64] 2776:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5909 .loc 1 2776 5 view .LVU2063 2778:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5910 .loc 1 2778 5 view .LVU2064 2778:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5911 .loc 1 2778 12 is_stmt 0 view .LVU2065 5912 0192 00E0 b .L366 5913 .LVL400: 5914 .L374: 2782:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5915 .loc 1 2782 12 view .LVU2066 5916 0194 0220 movs r0, #2 5917 .LVL401: 5918 .L366: 2784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 5919 .loc 1 2784 1 view .LVU2067 5920 0196 03B0 add sp, sp, #12 5921 .LCFI64: 5922 .cfi_remember_state 5923 .cfi_def_cfa_offset 36 5924 @ sp needed 5925 0198 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5926 .LVL402: 5927 .L375: 5928 .LCFI65: 5929 .cfi_restore_state 2677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5930 .loc 1 2677 5 discriminator 1 view .LVU2068 5931 019c 0220 movs r0, #2 5932 .LVL403: ARM GAS /tmp/ccSHpINd.s page 271 2677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5933 .loc 1 2677 5 discriminator 1 view .LVU2069 5934 019e FAE7 b .L366 5935 .LVL404: 5936 .L377: 2724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5937 .loc 1 2724 16 view .LVU2070 5938 01a0 0120 movs r0, #1 5939 01a2 F8E7 b .L366 5940 .L378: 2741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5941 .loc 1 2741 18 view .LVU2071 5942 01a4 0120 movs r0, #1 5943 01a6 F6E7 b .L366 5944 .L379: 2763:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5945 .loc 1 2763 14 view .LVU2072 5946 01a8 0120 movs r0, #1 5947 01aa F4E7 b .L366 5948 .L386: 5949 .align 2 5950 .L385: 5951 01ac 00240080 .word -2147474432 5952 .cfi_endproc 5953 .LFE158: 5955 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits 5956 .align 1 5957 .global HAL_I2C_Mem_Write_IT 5958 .syntax unified 5959 .thumb 5960 .thumb_func 5962 HAL_I2C_Mem_Write_IT: 5963 .LVL405: 5964 .LFB159: 2799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 5965 .loc 1 2799 1 is_stmt 1 view -0 5966 .cfi_startproc 5967 @ args = 8, pretend = 0, frame = 0 5968 @ frame_needed = 0, uses_anonymous_args = 0 2799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 5969 .loc 1 2799 1 is_stmt 0 view .LVU2074 5970 0000 70B5 push {r4, r5, r6, lr} 5971 .LCFI66: 5972 .cfi_def_cfa_offset 16 5973 .cfi_offset 4, -16 5974 .cfi_offset 5, -12 5975 .cfi_offset 6, -8 5976 .cfi_offset 14, -4 5977 0002 82B0 sub sp, sp, #8 5978 .LCFI67: 5979 .cfi_def_cfa_offset 24 5980 0004 0446 mov r4, r0 5981 0006 1D46 mov r5, r3 5982 0008 BDF81C30 ldrh r3, [sp, #28] 5983 .LVL406: 2801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5984 .loc 1 2801 3 is_stmt 1 view .LVU2075 ARM GAS /tmp/ccSHpINd.s page 272 2803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5985 .loc 1 2803 3 view .LVU2076 2803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5986 .loc 1 2803 11 is_stmt 0 view .LVU2077 5987 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 5988 .LVL407: 2803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5989 .loc 1 2803 11 view .LVU2078 5990 0010 C0B2 uxtb r0, r0 2803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5991 .loc 1 2803 6 view .LVU2079 5992 0012 2028 cmp r0, #32 5993 0014 43D1 bne .L392 2805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5994 .loc 1 2805 5 is_stmt 1 view .LVU2080 2805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5995 .loc 1 2805 8 is_stmt 0 view .LVU2081 5996 0016 0698 ldr r0, [sp, #24] 5997 0018 002B cmp r3, #0 5998 001a 18BF it ne 5999 001c 0028 cmpne r0, #0 6000 001e 33D0 beq .L396 2811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6001 .loc 1 2811 5 is_stmt 1 view .LVU2082 2811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6002 .loc 1 2811 9 is_stmt 0 view .LVU2083 6003 0020 2068 ldr r0, [r4] 6004 0022 8669 ldr r6, [r0, #24] 2811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6005 .loc 1 2811 8 view .LVU2084 6006 0024 16F4004F tst r6, #32768 6007 0028 3CD1 bne .L393 2817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6008 .loc 1 2817 5 is_stmt 1 view .LVU2085 2817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6009 .loc 1 2817 5 view .LVU2086 6010 002a 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 6011 002e 012E cmp r6, #1 6012 0030 3AD0 beq .L394 2817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6013 .loc 1 2817 5 discriminator 2 view .LVU2087 6014 0032 0126 movs r6, #1 6015 0034 84F84060 strb r6, [r4, #64] 2817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6016 .loc 1 2817 5 discriminator 2 view .LVU2088 2819:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6017 .loc 1 2819 5 view .LVU2089 2819:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6018 .loc 1 2819 23 is_stmt 0 view .LVU2090 6019 0038 2126 movs r6, #33 6020 003a 84F84160 strb r6, [r4, #65] 2820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6021 .loc 1 2820 5 is_stmt 1 view .LVU2091 2820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6022 .loc 1 2820 23 is_stmt 0 view .LVU2092 6023 003e 4026 movs r6, #64 6024 0040 84F84260 strb r6, [r4, #66] ARM GAS /tmp/ccSHpINd.s page 273 2821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6025 .loc 1 2821 5 is_stmt 1 view .LVU2093 2821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6026 .loc 1 2821 23 is_stmt 0 view .LVU2094 6027 0044 0026 movs r6, #0 6028 0046 6664 str r6, [r4, #68] 2824:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 6029 .loc 1 2824 5 is_stmt 1 view .LVU2095 2824:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 6030 .loc 1 2824 23 is_stmt 0 view .LVU2096 6031 0048 2685 strh r6, [r4, #40] @ movhi 2825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6032 .loc 1 2825 5 is_stmt 1 view .LVU2097 2825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6033 .loc 1 2825 23 is_stmt 0 view .LVU2098 6034 004a 069E ldr r6, [sp, #24] 6035 004c 6662 str r6, [r4, #36] 2826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6036 .loc 1 2826 5 is_stmt 1 view .LVU2099 2826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6037 .loc 1 2826 23 is_stmt 0 view .LVU2100 6038 004e 6385 strh r3, [r4, #42] @ movhi 2827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6039 .loc 1 2827 5 is_stmt 1 view .LVU2101 2827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6040 .loc 1 2827 23 is_stmt 0 view .LVU2102 6041 0050 164B ldr r3, .L398 6042 0052 E362 str r3, [r4, #44] 2828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6043 .loc 1 2828 5 is_stmt 1 view .LVU2103 2828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6044 .loc 1 2828 23 is_stmt 0 view .LVU2104 6045 0054 164B ldr r3, .L398+4 6046 0056 6363 str r3, [r4, #52] 2829:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6047 .loc 1 2829 5 is_stmt 1 view .LVU2105 2829:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6048 .loc 1 2829 23 is_stmt 0 view .LVU2106 6049 0058 E164 str r1, [r4, #76] 2832:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6050 .loc 1 2832 5 is_stmt 1 view .LVU2107 2832:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6051 .loc 1 2832 8 is_stmt 0 view .LVU2108 6052 005a 012D cmp r5, #1 6053 005c 19D0 beq .L397 2844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6054 .loc 1 2844 7 is_stmt 1 view .LVU2109 2844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6055 .loc 1 2844 30 is_stmt 0 view .LVU2110 6056 005e 130A lsrs r3, r2, #8 2844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6057 .loc 1 2844 28 view .LVU2111 6058 0060 8362 str r3, [r0, #40] 2847:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6059 .loc 1 2847 7 is_stmt 1 view .LVU2112 2847:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6060 .loc 1 2847 26 is_stmt 0 view .LVU2113 ARM GAS /tmp/ccSHpINd.s page 274 6061 0062 D2B2 uxtb r2, r2 6062 .LVL408: 2847:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6063 .loc 1 2847 24 view .LVU2114 6064 0064 2265 str r2, [r4, #80] 6065 .L391: 2850:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6066 .loc 1 2850 5 is_stmt 1 view .LVU2115 6067 0066 134B ldr r3, .L398+8 6068 0068 0093 str r3, [sp] 6069 006a 4FF08073 mov r3, #16777216 6070 006e EAB2 uxtb r2, r5 6071 0070 2046 mov r0, r4 6072 0072 FFF7FEFF bl I2C_TransferConfig 6073 .LVL409: 2853:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6074 .loc 1 2853 5 view .LVU2116 2853:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6075 .loc 1 2853 5 view .LVU2117 6076 0076 0025 movs r5, #0 6077 .LVL410: 2853:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6078 .loc 1 2853 5 is_stmt 0 view .LVU2118 6079 0078 84F84050 strb r5, [r4, #64] 2853:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6080 .loc 1 2853 5 is_stmt 1 view .LVU2119 2863:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6081 .loc 1 2863 5 view .LVU2120 6082 007c 0121 movs r1, #1 6083 007e 2046 mov r0, r4 6084 0080 FFF7FEFF bl I2C_Enable_IRQ 6085 .LVL411: 2865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6086 .loc 1 2865 5 view .LVU2121 2865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6087 .loc 1 2865 12 is_stmt 0 view .LVU2122 6088 0084 2846 mov r0, r5 6089 0086 0BE0 b .L388 6090 .LVL412: 6091 .L396: 2807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6092 .loc 1 2807 7 is_stmt 1 view .LVU2123 2807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6093 .loc 1 2807 23 is_stmt 0 view .LVU2124 6094 0088 4FF40073 mov r3, #512 6095 008c 6364 str r3, [r4, #68] 2808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6096 .loc 1 2808 7 is_stmt 1 view .LVU2125 2808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6097 .loc 1 2808 15 is_stmt 0 view .LVU2126 6098 008e 0120 movs r0, #1 6099 0090 06E0 b .L388 6100 .L397: 2835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6101 .loc 1 2835 7 is_stmt 1 view .LVU2127 2835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6102 .loc 1 2835 30 is_stmt 0 view .LVU2128 ARM GAS /tmp/ccSHpINd.s page 275 6103 0092 D2B2 uxtb r2, r2 6104 .LVL413: 2835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6105 .loc 1 2835 28 view .LVU2129 6106 0094 8262 str r2, [r0, #40] 2838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6107 .loc 1 2838 7 is_stmt 1 view .LVU2130 2838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6108 .loc 1 2838 24 is_stmt 0 view .LVU2131 6109 0096 4FF0FF33 mov r3, #-1 6110 009a 2365 str r3, [r4, #80] 6111 009c E3E7 b .L391 6112 .LVL414: 6113 .L392: 2869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6114 .loc 1 2869 12 view .LVU2132 6115 009e 0220 movs r0, #2 6116 .LVL415: 6117 .L388: 2871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6118 .loc 1 2871 1 view .LVU2133 6119 00a0 02B0 add sp, sp, #8 6120 .LCFI68: 6121 .cfi_remember_state 6122 .cfi_def_cfa_offset 16 6123 @ sp needed 6124 00a2 70BD pop {r4, r5, r6, pc} 6125 .LVL416: 6126 .L393: 6127 .LCFI69: 6128 .cfi_restore_state 2813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6129 .loc 1 2813 14 view .LVU2134 6130 00a4 0220 movs r0, #2 6131 00a6 FBE7 b .L388 6132 .L394: 2817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6133 .loc 1 2817 5 discriminator 1 view .LVU2135 6134 00a8 0220 movs r0, #2 6135 00aa F9E7 b .L388 6136 .L399: 6137 .align 2 6138 .L398: 6139 00ac 0000FFFF .word -65536 6140 00b0 00000000 .word I2C_Mem_ISR_IT 6141 00b4 00200080 .word -2147475456 6142 .cfi_endproc 6143 .LFE159: 6145 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits 6146 .align 1 6147 .global HAL_I2C_Mem_Read_IT 6148 .syntax unified 6149 .thumb 6150 .thumb_func 6152 HAL_I2C_Mem_Read_IT: 6153 .LVL417: 6154 .LFB160: ARM GAS /tmp/ccSHpINd.s page 276 2887:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 6155 .loc 1 2887 1 is_stmt 1 view -0 6156 .cfi_startproc 6157 @ args = 8, pretend = 0, frame = 0 6158 @ frame_needed = 0, uses_anonymous_args = 0 2887:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 6159 .loc 1 2887 1 is_stmt 0 view .LVU2137 6160 0000 70B5 push {r4, r5, r6, lr} 6161 .LCFI70: 6162 .cfi_def_cfa_offset 16 6163 .cfi_offset 4, -16 6164 .cfi_offset 5, -12 6165 .cfi_offset 6, -8 6166 .cfi_offset 14, -4 6167 0002 82B0 sub sp, sp, #8 6168 .LCFI71: 6169 .cfi_def_cfa_offset 24 6170 0004 0446 mov r4, r0 6171 0006 1D46 mov r5, r3 6172 0008 BDF81C30 ldrh r3, [sp, #28] 6173 .LVL418: 2889:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6174 .loc 1 2889 3 is_stmt 1 view .LVU2138 2891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6175 .loc 1 2891 3 view .LVU2139 2891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6176 .loc 1 2891 11 is_stmt 0 view .LVU2140 6177 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6178 .LVL419: 2891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6179 .loc 1 2891 11 view .LVU2141 6180 0010 C0B2 uxtb r0, r0 2891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6181 .loc 1 2891 6 view .LVU2142 6182 0012 2028 cmp r0, #32 6183 0014 41D1 bne .L405 2893:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6184 .loc 1 2893 5 is_stmt 1 view .LVU2143 2893:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6185 .loc 1 2893 8 is_stmt 0 view .LVU2144 6186 0016 0698 ldr r0, [sp, #24] 6187 0018 002B cmp r3, #0 6188 001a 18BF it ne 6189 001c 0028 cmpne r0, #0 6190 001e 31D0 beq .L409 2899:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6191 .loc 1 2899 5 is_stmt 1 view .LVU2145 2899:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6192 .loc 1 2899 9 is_stmt 0 view .LVU2146 6193 0020 2068 ldr r0, [r4] 6194 0022 8669 ldr r6, [r0, #24] 2899:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6195 .loc 1 2899 8 view .LVU2147 6196 0024 16F4004F tst r6, #32768 6197 0028 3AD1 bne .L406 2905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6198 .loc 1 2905 5 is_stmt 1 view .LVU2148 ARM GAS /tmp/ccSHpINd.s page 277 2905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6199 .loc 1 2905 5 view .LVU2149 6200 002a 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 6201 002e 012E cmp r6, #1 6202 0030 38D0 beq .L407 2905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6203 .loc 1 2905 5 discriminator 2 view .LVU2150 6204 0032 0126 movs r6, #1 6205 0034 84F84060 strb r6, [r4, #64] 2905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6206 .loc 1 2905 5 discriminator 2 view .LVU2151 2907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6207 .loc 1 2907 5 view .LVU2152 2907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6208 .loc 1 2907 23 is_stmt 0 view .LVU2153 6209 0038 2226 movs r6, #34 6210 003a 84F84160 strb r6, [r4, #65] 2908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6211 .loc 1 2908 5 is_stmt 1 view .LVU2154 2908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6212 .loc 1 2908 23 is_stmt 0 view .LVU2155 6213 003e 4026 movs r6, #64 6214 0040 84F84260 strb r6, [r4, #66] 2909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6215 .loc 1 2909 5 is_stmt 1 view .LVU2156 2909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6216 .loc 1 2909 23 is_stmt 0 view .LVU2157 6217 0044 0026 movs r6, #0 6218 0046 6664 str r6, [r4, #68] 2912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6219 .loc 1 2912 5 is_stmt 1 view .LVU2158 2912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6220 .loc 1 2912 23 is_stmt 0 view .LVU2159 6221 0048 069E ldr r6, [sp, #24] 6222 004a 6662 str r6, [r4, #36] 2913:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6223 .loc 1 2913 5 is_stmt 1 view .LVU2160 2913:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6224 .loc 1 2913 23 is_stmt 0 view .LVU2161 6225 004c 6385 strh r3, [r4, #42] @ movhi 2914:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6226 .loc 1 2914 5 is_stmt 1 view .LVU2162 2914:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6227 .loc 1 2914 23 is_stmt 0 view .LVU2163 6228 004e 164B ldr r3, .L411 6229 0050 E362 str r3, [r4, #44] 2915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6230 .loc 1 2915 5 is_stmt 1 view .LVU2164 2915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6231 .loc 1 2915 23 is_stmt 0 view .LVU2165 6232 0052 164B ldr r3, .L411+4 6233 0054 6363 str r3, [r4, #52] 2916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6234 .loc 1 2916 5 is_stmt 1 view .LVU2166 2916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6235 .loc 1 2916 23 is_stmt 0 view .LVU2167 6236 0056 E164 str r1, [r4, #76] ARM GAS /tmp/ccSHpINd.s page 278 2919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6237 .loc 1 2919 5 is_stmt 1 view .LVU2168 2919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6238 .loc 1 2919 8 is_stmt 0 view .LVU2169 6239 0058 012D cmp r5, #1 6240 005a 18D0 beq .L410 2931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6241 .loc 1 2931 7 is_stmt 1 view .LVU2170 2931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6242 .loc 1 2931 30 is_stmt 0 view .LVU2171 6243 005c 130A lsrs r3, r2, #8 2931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6244 .loc 1 2931 28 view .LVU2172 6245 005e 8362 str r3, [r0, #40] 2934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6246 .loc 1 2934 7 is_stmt 1 view .LVU2173 2934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6247 .loc 1 2934 26 is_stmt 0 view .LVU2174 6248 0060 D2B2 uxtb r2, r2 6249 .LVL420: 2934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6250 .loc 1 2934 24 view .LVU2175 6251 0062 2265 str r2, [r4, #80] 6252 .L404: 2937:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6253 .loc 1 2937 5 is_stmt 1 view .LVU2176 6254 0064 124B ldr r3, .L411+8 6255 0066 0093 str r3, [sp] 6256 0068 0023 movs r3, #0 6257 006a EAB2 uxtb r2, r5 6258 006c 2046 mov r0, r4 6259 006e FFF7FEFF bl I2C_TransferConfig 6260 .LVL421: 2940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6261 .loc 1 2940 5 view .LVU2177 2940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6262 .loc 1 2940 5 view .LVU2178 6263 0072 0025 movs r5, #0 6264 .LVL422: 2940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6265 .loc 1 2940 5 is_stmt 0 view .LVU2179 6266 0074 84F84050 strb r5, [r4, #64] 2940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6267 .loc 1 2940 5 is_stmt 1 view .LVU2180 2950:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6268 .loc 1 2950 5 view .LVU2181 6269 0078 0121 movs r1, #1 6270 007a 2046 mov r0, r4 6271 007c FFF7FEFF bl I2C_Enable_IRQ 6272 .LVL423: 2952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6273 .loc 1 2952 5 view .LVU2182 2952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6274 .loc 1 2952 12 is_stmt 0 view .LVU2183 6275 0080 2846 mov r0, r5 6276 0082 0BE0 b .L401 6277 .LVL424: ARM GAS /tmp/ccSHpINd.s page 279 6278 .L409: 2895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6279 .loc 1 2895 7 is_stmt 1 view .LVU2184 2895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6280 .loc 1 2895 23 is_stmt 0 view .LVU2185 6281 0084 4FF40073 mov r3, #512 6282 0088 6364 str r3, [r4, #68] 2896:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6283 .loc 1 2896 7 is_stmt 1 view .LVU2186 2896:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6284 .loc 1 2896 15 is_stmt 0 view .LVU2187 6285 008a 0120 movs r0, #1 6286 008c 06E0 b .L401 6287 .L410: 2922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6288 .loc 1 2922 7 is_stmt 1 view .LVU2188 2922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6289 .loc 1 2922 30 is_stmt 0 view .LVU2189 6290 008e D2B2 uxtb r2, r2 6291 .LVL425: 2922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6292 .loc 1 2922 28 view .LVU2190 6293 0090 8262 str r2, [r0, #40] 2925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6294 .loc 1 2925 7 is_stmt 1 view .LVU2191 2925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6295 .loc 1 2925 24 is_stmt 0 view .LVU2192 6296 0092 4FF0FF33 mov r3, #-1 6297 0096 2365 str r3, [r4, #80] 6298 0098 E4E7 b .L404 6299 .LVL426: 6300 .L405: 2956:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6301 .loc 1 2956 12 view .LVU2193 6302 009a 0220 movs r0, #2 6303 .LVL427: 6304 .L401: 2958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6305 .loc 1 2958 1 view .LVU2194 6306 009c 02B0 add sp, sp, #8 6307 .LCFI72: 6308 .cfi_remember_state 6309 .cfi_def_cfa_offset 16 6310 @ sp needed 6311 009e 70BD pop {r4, r5, r6, pc} 6312 .LVL428: 6313 .L406: 6314 .LCFI73: 6315 .cfi_restore_state 2901:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6316 .loc 1 2901 14 view .LVU2195 6317 00a0 0220 movs r0, #2 6318 00a2 FBE7 b .L401 6319 .L407: 2905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6320 .loc 1 2905 5 discriminator 1 view .LVU2196 6321 00a4 0220 movs r0, #2 ARM GAS /tmp/ccSHpINd.s page 280 6322 00a6 F9E7 b .L401 6323 .L412: 6324 .align 2 6325 .L411: 6326 00a8 0000FFFF .word -65536 6327 00ac 00000000 .word I2C_Mem_ISR_IT 6328 00b0 00200080 .word -2147475456 6329 .cfi_endproc 6330 .LFE160: 6332 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits 6333 .align 1 6334 .global HAL_I2C_Mem_Write_DMA 6335 .syntax unified 6336 .thumb 6337 .thumb_func 6339 HAL_I2C_Mem_Write_DMA: 6340 .LVL429: 6341 .LFB161: 2974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6342 .loc 1 2974 1 is_stmt 1 view -0 6343 .cfi_startproc 6344 @ args = 8, pretend = 0, frame = 0 6345 @ frame_needed = 0, uses_anonymous_args = 0 2974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6346 .loc 1 2974 1 is_stmt 0 view .LVU2198 6347 0000 F0B5 push {r4, r5, r6, r7, lr} 6348 .LCFI74: 6349 .cfi_def_cfa_offset 20 6350 .cfi_offset 4, -20 6351 .cfi_offset 5, -16 6352 .cfi_offset 6, -12 6353 .cfi_offset 7, -8 6354 .cfi_offset 14, -4 6355 0002 83B0 sub sp, sp, #12 6356 .LCFI75: 6357 .cfi_def_cfa_offset 32 6358 0004 0446 mov r4, r0 6359 0006 0E46 mov r6, r1 6360 0008 1F46 mov r7, r3 6361 000a 0899 ldr r1, [sp, #32] 6362 .LVL430: 2974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6363 .loc 1 2974 1 view .LVU2199 6364 000c BDF82430 ldrh r3, [sp, #36] 6365 .LVL431: 2975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6366 .loc 1 2975 3 is_stmt 1 view .LVU2200 2978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6367 .loc 1 2978 3 view .LVU2201 2980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6368 .loc 1 2980 3 view .LVU2202 2980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6369 .loc 1 2980 11 is_stmt 0 view .LVU2203 6370 0010 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6371 .LVL432: 2980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6372 .loc 1 2980 11 view .LVU2204 ARM GAS /tmp/ccSHpINd.s page 281 6373 0014 C0B2 uxtb r0, r0 2980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6374 .loc 1 2980 6 view .LVU2205 6375 0016 2028 cmp r0, #32 6376 0018 7AD1 bne .L423 2982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6377 .loc 1 2982 5 is_stmt 1 view .LVU2206 2982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6378 .loc 1 2982 8 is_stmt 0 view .LVU2207 6379 001a 002B cmp r3, #0 6380 001c 18BF it ne 6381 001e 0029 cmpne r1, #0 6382 0020 49D0 beq .L428 2988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6383 .loc 1 2988 5 is_stmt 1 view .LVU2208 2988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6384 .loc 1 2988 9 is_stmt 0 view .LVU2209 6385 0022 2068 ldr r0, [r4] 6386 0024 8569 ldr r5, [r0, #24] 2988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6387 .loc 1 2988 8 view .LVU2210 6388 0026 15F4004F tst r5, #32768 6389 002a 75D1 bne .L424 2994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6390 .loc 1 2994 5 is_stmt 1 view .LVU2211 2994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6391 .loc 1 2994 5 view .LVU2212 6392 002c 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2 6393 0030 012D cmp r5, #1 6394 0032 73D0 beq .L425 2994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6395 .loc 1 2994 5 discriminator 2 view .LVU2213 6396 0034 0125 movs r5, #1 6397 0036 84F84050 strb r5, [r4, #64] 2994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6398 .loc 1 2994 5 discriminator 2 view .LVU2214 2996:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6399 .loc 1 2996 5 view .LVU2215 2996:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6400 .loc 1 2996 23 is_stmt 0 view .LVU2216 6401 003a 2125 movs r5, #33 6402 003c 84F84150 strb r5, [r4, #65] 2997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6403 .loc 1 2997 5 is_stmt 1 view .LVU2217 2997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6404 .loc 1 2997 23 is_stmt 0 view .LVU2218 6405 0040 4025 movs r5, #64 6406 0042 84F84250 strb r5, [r4, #66] 2998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6407 .loc 1 2998 5 is_stmt 1 view .LVU2219 2998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6408 .loc 1 2998 23 is_stmt 0 view .LVU2220 6409 0046 0025 movs r5, #0 6410 0048 6564 str r5, [r4, #68] 3001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6411 .loc 1 3001 5 is_stmt 1 view .LVU2221 3001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/ccSHpINd.s page 282 6412 .loc 1 3001 23 is_stmt 0 view .LVU2222 6413 004a 6162 str r1, [r4, #36] 3002:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6414 .loc 1 3002 5 is_stmt 1 view .LVU2223 3002:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6415 .loc 1 3002 23 is_stmt 0 view .LVU2224 6416 004c 6385 strh r3, [r4, #42] @ movhi 3003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6417 .loc 1 3003 5 is_stmt 1 view .LVU2225 3003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6418 .loc 1 3003 23 is_stmt 0 view .LVU2226 6419 004e 344B ldr r3, .L431 6420 0050 E362 str r3, [r4, #44] 3004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6421 .loc 1 3004 5 is_stmt 1 view .LVU2227 3004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6422 .loc 1 3004 23 is_stmt 0 view .LVU2228 6423 0052 344B ldr r3, .L431+4 6424 0054 6363 str r3, [r4, #52] 3005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6425 .loc 1 3005 5 is_stmt 1 view .LVU2229 3005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6426 .loc 1 3005 23 is_stmt 0 view .LVU2230 6427 0056 E664 str r6, [r4, #76] 3007:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6428 .loc 1 3007 5 is_stmt 1 view .LVU2231 3007:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6429 .loc 1 3007 13 is_stmt 0 view .LVU2232 6430 0058 638D ldrh r3, [r4, #42] 6431 005a 9BB2 uxth r3, r3 3007:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6432 .loc 1 3007 8 view .LVU2233 6433 005c FF2B cmp r3, #255 6434 005e 2FD9 bls .L416 3009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6435 .loc 1 3009 7 is_stmt 1 view .LVU2234 3009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6436 .loc 1 3009 22 is_stmt 0 view .LVU2235 6437 0060 FF23 movs r3, #255 6438 0062 2385 strh r3, [r4, #40] @ movhi 6439 .L417: 3017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6440 .loc 1 3017 5 is_stmt 1 view .LVU2236 3017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6441 .loc 1 3017 8 is_stmt 0 view .LVU2237 6442 0064 012F cmp r7, #1 6443 0066 2ED0 beq .L429 3029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6444 .loc 1 3029 7 is_stmt 1 view .LVU2238 3029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6445 .loc 1 3029 30 is_stmt 0 view .LVU2239 6446 0068 130A lsrs r3, r2, #8 3029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6447 .loc 1 3029 28 view .LVU2240 6448 006a 8362 str r3, [r0, #40] 3032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6449 .loc 1 3032 7 is_stmt 1 view .LVU2241 ARM GAS /tmp/ccSHpINd.s page 283 3032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6450 .loc 1 3032 26 is_stmt 0 view .LVU2242 6451 006c D2B2 uxtb r2, r2 6452 .LVL433: 3032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6453 .loc 1 3032 24 view .LVU2243 6454 006e 2265 str r2, [r4, #80] 6455 .L419: 3035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6456 .loc 1 3035 5 is_stmt 1 view .LVU2244 3035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6457 .loc 1 3035 13 is_stmt 0 view .LVU2245 6458 0070 A36B ldr r3, [r4, #56] 3035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6459 .loc 1 3035 8 view .LVU2246 6460 0072 002B cmp r3, #0 6461 0074 2DD0 beq .L420 3038:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6462 .loc 1 3038 7 is_stmt 1 view .LVU2247 3038:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6463 .loc 1 3038 38 is_stmt 0 view .LVU2248 6464 0076 2C4A ldr r2, .L431+8 6465 0078 DA63 str r2, [r3, #60] 3041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6466 .loc 1 3041 7 is_stmt 1 view .LVU2249 3041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6467 .loc 1 3041 11 is_stmt 0 view .LVU2250 6468 007a A36B ldr r3, [r4, #56] 3041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6469 .loc 1 3041 39 view .LVU2251 6470 007c 2B4A ldr r2, .L431+12 6471 007e DA64 str r2, [r3, #76] 3044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6472 .loc 1 3044 7 is_stmt 1 view .LVU2252 3044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6473 .loc 1 3044 11 is_stmt 0 view .LVU2253 6474 0080 A26B ldr r2, [r4, #56] 3044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6475 .loc 1 3044 42 view .LVU2254 6476 0082 0023 movs r3, #0 6477 0084 1364 str r3, [r2, #64] 3045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6478 .loc 1 3045 7 is_stmt 1 view .LVU2255 3045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6479 .loc 1 3045 11 is_stmt 0 view .LVU2256 6480 0086 A26B ldr r2, [r4, #56] 3045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6481 .loc 1 3045 39 view .LVU2257 6482 0088 1365 str r3, [r2, #80] 3048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 6483 .loc 1 3048 7 is_stmt 1 view .LVU2258 3048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 6484 .loc 1 3048 86 is_stmt 0 view .LVU2259 6485 008a 2268 ldr r2, [r4] 3048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 6486 .loc 1 3048 23 view .LVU2260 6487 008c 238D ldrh r3, [r4, #40] ARM GAS /tmp/ccSHpINd.s page 284 6488 008e 2832 adds r2, r2, #40 6489 0090 A06B ldr r0, [r4, #56] 6490 0092 FFF7FEFF bl HAL_DMA_Start_IT 6491 .LVL434: 3066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6492 .loc 1 3066 5 is_stmt 1 view .LVU2261 3066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6493 .loc 1 3066 8 is_stmt 0 view .LVU2262 6494 0096 0546 mov r5, r0 6495 0098 48B3 cbz r0, .L430 3086:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6496 .loc 1 3086 7 is_stmt 1 view .LVU2263 3086:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6497 .loc 1 3086 23 is_stmt 0 view .LVU2264 6498 009a 2023 movs r3, #32 6499 009c 84F84130 strb r3, [r4, #65] 3087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6500 .loc 1 3087 7 is_stmt 1 view .LVU2265 3087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6501 .loc 1 3087 23 is_stmt 0 view .LVU2266 6502 00a0 0022 movs r2, #0 6503 00a2 84F84220 strb r2, [r4, #66] 3090:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6504 .loc 1 3090 7 is_stmt 1 view .LVU2267 3090:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6505 .loc 1 3090 11 is_stmt 0 view .LVU2268 6506 00a6 636C ldr r3, [r4, #68] 3090:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6507 .loc 1 3090 23 view .LVU2269 6508 00a8 43F01003 orr r3, r3, #16 6509 00ac 6364 str r3, [r4, #68] 3093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6510 .loc 1 3093 7 is_stmt 1 view .LVU2270 3093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6511 .loc 1 3093 7 view .LVU2271 6512 00ae 84F84020 strb r2, [r4, #64] 3093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6513 .loc 1 3093 7 view .LVU2272 3095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6514 .loc 1 3095 7 view .LVU2273 3095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6515 .loc 1 3095 14 is_stmt 0 view .LVU2274 6516 00b2 0125 movs r5, #1 6517 00b4 2DE0 b .L414 6518 .LVL435: 6519 .L428: 2984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6520 .loc 1 2984 7 is_stmt 1 view .LVU2275 2984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6521 .loc 1 2984 23 is_stmt 0 view .LVU2276 6522 00b6 4FF40073 mov r3, #512 6523 00ba 6364 str r3, [r4, #68] 2985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6524 .loc 1 2985 7 is_stmt 1 view .LVU2277 2985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6525 .loc 1 2985 15 is_stmt 0 view .LVU2278 6526 00bc 0125 movs r5, #1 ARM GAS /tmp/ccSHpINd.s page 285 6527 00be 28E0 b .L414 6528 .L416: 3013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6529 .loc 1 3013 7 is_stmt 1 view .LVU2279 3013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6530 .loc 1 3013 28 is_stmt 0 view .LVU2280 6531 00c0 638D ldrh r3, [r4, #42] 3013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6532 .loc 1 3013 22 view .LVU2281 6533 00c2 2385 strh r3, [r4, #40] @ movhi 6534 00c4 CEE7 b .L417 6535 .L429: 3020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6536 .loc 1 3020 7 is_stmt 1 view .LVU2282 3020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6537 .loc 1 3020 30 is_stmt 0 view .LVU2283 6538 00c6 D2B2 uxtb r2, r2 6539 .LVL436: 3020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6540 .loc 1 3020 28 view .LVU2284 6541 00c8 8262 str r2, [r0, #40] 3023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6542 .loc 1 3023 7 is_stmt 1 view .LVU2285 3023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6543 .loc 1 3023 24 is_stmt 0 view .LVU2286 6544 00ca 4FF0FF33 mov r3, #-1 6545 00ce 2365 str r3, [r4, #80] 6546 00d0 CEE7 b .L419 6547 .L420: 3054:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6548 .loc 1 3054 7 is_stmt 1 view .LVU2287 3054:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6549 .loc 1 3054 23 is_stmt 0 view .LVU2288 6550 00d2 2023 movs r3, #32 6551 00d4 84F84130 strb r3, [r4, #65] 3055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6552 .loc 1 3055 7 is_stmt 1 view .LVU2289 3055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6553 .loc 1 3055 23 is_stmt 0 view .LVU2290 6554 00d8 0022 movs r2, #0 6555 00da 84F84220 strb r2, [r4, #66] 3058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6556 .loc 1 3058 7 is_stmt 1 view .LVU2291 3058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6557 .loc 1 3058 11 is_stmt 0 view .LVU2292 6558 00de 636C ldr r3, [r4, #68] 3058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6559 .loc 1 3058 23 view .LVU2293 6560 00e0 43F08003 orr r3, r3, #128 6561 00e4 6364 str r3, [r4, #68] 3061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6562 .loc 1 3061 7 is_stmt 1 view .LVU2294 3061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6563 .loc 1 3061 7 view .LVU2295 6564 00e6 84F84020 strb r2, [r4, #64] 3061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6565 .loc 1 3061 7 view .LVU2296 ARM GAS /tmp/ccSHpINd.s page 286 3063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6566 .loc 1 3063 7 view .LVU2297 3063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6567 .loc 1 3063 14 is_stmt 0 view .LVU2298 6568 00ea 0125 movs r5, #1 6569 00ec 11E0 b .L414 6570 .LVL437: 6571 .L430: 3069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6572 .loc 1 3069 7 is_stmt 1 view .LVU2299 6573 00ee 104B ldr r3, .L431+16 6574 00f0 0093 str r3, [sp] 6575 00f2 4FF08073 mov r3, #16777216 6576 00f6 FAB2 uxtb r2, r7 6577 00f8 3146 mov r1, r6 6578 00fa 2046 mov r0, r4 6579 .LVL438: 3069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6580 .loc 1 3069 7 is_stmt 0 view .LVU2300 6581 00fc FFF7FEFF bl I2C_TransferConfig 6582 .LVL439: 3072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6583 .loc 1 3072 7 is_stmt 1 view .LVU2301 3072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6584 .loc 1 3072 7 view .LVU2302 6585 0100 0023 movs r3, #0 6586 0102 84F84030 strb r3, [r4, #64] 3072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6587 .loc 1 3072 7 view .LVU2303 3081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6588 .loc 1 3081 7 view .LVU2304 6589 0106 0121 movs r1, #1 6590 0108 2046 mov r0, r4 6591 010a FFF7FEFF bl I2C_Enable_IRQ 6592 .LVL440: 3098:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6593 .loc 1 3098 5 view .LVU2305 3098:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6594 .loc 1 3098 12 is_stmt 0 view .LVU2306 6595 010e 00E0 b .L414 6596 .LVL441: 6597 .L423: 3102:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6598 .loc 1 3102 12 view .LVU2307 6599 0110 0225 movs r5, #2 6600 .LVL442: 6601 .L414: 3104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6602 .loc 1 3104 1 view .LVU2308 6603 0112 2846 mov r0, r5 6604 0114 03B0 add sp, sp, #12 6605 .LCFI76: 6606 .cfi_remember_state 6607 .cfi_def_cfa_offset 20 6608 @ sp needed 6609 0116 F0BD pop {r4, r5, r6, r7, pc} 6610 .LVL443: ARM GAS /tmp/ccSHpINd.s page 287 6611 .L424: 6612 .LCFI77: 6613 .cfi_restore_state 2990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6614 .loc 1 2990 14 view .LVU2309 6615 0118 0225 movs r5, #2 6616 011a FAE7 b .L414 6617 .L425: 2994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6618 .loc 1 2994 5 discriminator 1 view .LVU2310 6619 011c 0225 movs r5, #2 6620 011e F8E7 b .L414 6621 .L432: 6622 .align 2 6623 .L431: 6624 0120 0000FFFF .word -65536 6625 0124 00000000 .word I2C_Mem_ISR_DMA 6626 0128 00000000 .word I2C_DMAMasterTransmitCplt 6627 012c 00000000 .word I2C_DMAError 6628 0130 00200080 .word -2147475456 6629 .cfi_endproc 6630 .LFE161: 6632 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits 6633 .align 1 6634 .global HAL_I2C_Mem_Read_DMA 6635 .syntax unified 6636 .thumb 6637 .thumb_func 6639 HAL_I2C_Mem_Read_DMA: 6640 .LVL444: 6641 .LFB162: 3120:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6642 .loc 1 3120 1 is_stmt 1 view -0 6643 .cfi_startproc 6644 @ args = 8, pretend = 0, frame = 0 6645 @ frame_needed = 0, uses_anonymous_args = 0 3120:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6646 .loc 1 3120 1 is_stmt 0 view .LVU2312 6647 0000 F0B5 push {r4, r5, r6, r7, lr} 6648 .LCFI78: 6649 .cfi_def_cfa_offset 20 6650 .cfi_offset 4, -20 6651 .cfi_offset 5, -16 6652 .cfi_offset 6, -12 6653 .cfi_offset 7, -8 6654 .cfi_offset 14, -4 6655 0002 83B0 sub sp, sp, #12 6656 .LCFI79: 6657 .cfi_def_cfa_offset 32 6658 0004 0446 mov r4, r0 6659 0006 1F46 mov r7, r3 6660 0008 089D ldr r5, [sp, #32] 6661 000a BDF82430 ldrh r3, [sp, #36] 6662 .LVL445: 3121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6663 .loc 1 3121 3 is_stmt 1 view .LVU2313 3124:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 288 6664 .loc 1 3124 3 view .LVU2314 3126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6665 .loc 1 3126 3 view .LVU2315 3126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6666 .loc 1 3126 11 is_stmt 0 view .LVU2316 6667 000e 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6668 .LVL446: 3126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6669 .loc 1 3126 11 view .LVU2317 6670 0012 C0B2 uxtb r0, r0 3126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6671 .loc 1 3126 6 view .LVU2318 6672 0014 2028 cmp r0, #32 6673 0016 7BD1 bne .L443 6674 0018 0E46 mov r6, r1 3128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6675 .loc 1 3128 5 is_stmt 1 view .LVU2319 3128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6676 .loc 1 3128 8 is_stmt 0 view .LVU2320 6677 001a 002B cmp r3, #0 6678 001c 18BF it ne 6679 001e 002D cmpne r5, #0 6680 0020 4AD0 beq .L448 3134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6681 .loc 1 3134 5 is_stmt 1 view .LVU2321 3134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6682 .loc 1 3134 9 is_stmt 0 view .LVU2322 6683 0022 2168 ldr r1, [r4] 6684 .LVL447: 3134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6685 .loc 1 3134 9 view .LVU2323 6686 0024 8869 ldr r0, [r1, #24] 3134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6687 .loc 1 3134 8 view .LVU2324 6688 0026 10F4004F tst r0, #32768 6689 002a 75D1 bne .L444 3140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6690 .loc 1 3140 5 is_stmt 1 view .LVU2325 3140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6691 .loc 1 3140 5 view .LVU2326 6692 002c 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 6693 0030 0128 cmp r0, #1 6694 0032 73D0 beq .L445 3140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6695 .loc 1 3140 5 discriminator 2 view .LVU2327 6696 0034 0120 movs r0, #1 6697 0036 84F84000 strb r0, [r4, #64] 3140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6698 .loc 1 3140 5 discriminator 2 view .LVU2328 3142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6699 .loc 1 3142 5 view .LVU2329 3142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6700 .loc 1 3142 23 is_stmt 0 view .LVU2330 6701 003a 2220 movs r0, #34 6702 003c 84F84100 strb r0, [r4, #65] 3143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6703 .loc 1 3143 5 is_stmt 1 view .LVU2331 ARM GAS /tmp/ccSHpINd.s page 289 3143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6704 .loc 1 3143 23 is_stmt 0 view .LVU2332 6705 0040 4020 movs r0, #64 6706 0042 84F84200 strb r0, [r4, #66] 3144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6707 .loc 1 3144 5 is_stmt 1 view .LVU2333 3144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6708 .loc 1 3144 23 is_stmt 0 view .LVU2334 6709 0046 0020 movs r0, #0 6710 0048 6064 str r0, [r4, #68] 3147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6711 .loc 1 3147 5 is_stmt 1 view .LVU2335 3147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6712 .loc 1 3147 23 is_stmt 0 view .LVU2336 6713 004a 6562 str r5, [r4, #36] 3148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6714 .loc 1 3148 5 is_stmt 1 view .LVU2337 3148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6715 .loc 1 3148 23 is_stmt 0 view .LVU2338 6716 004c 6385 strh r3, [r4, #42] @ movhi 3149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6717 .loc 1 3149 5 is_stmt 1 view .LVU2339 3149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6718 .loc 1 3149 23 is_stmt 0 view .LVU2340 6719 004e 344B ldr r3, .L451 6720 0050 E362 str r3, [r4, #44] 3150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6721 .loc 1 3150 5 is_stmt 1 view .LVU2341 3150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6722 .loc 1 3150 23 is_stmt 0 view .LVU2342 6723 0052 344B ldr r3, .L451+4 6724 0054 6363 str r3, [r4, #52] 3151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6725 .loc 1 3151 5 is_stmt 1 view .LVU2343 3151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6726 .loc 1 3151 23 is_stmt 0 view .LVU2344 6727 0056 E664 str r6, [r4, #76] 3153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6728 .loc 1 3153 5 is_stmt 1 view .LVU2345 3153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6729 .loc 1 3153 13 is_stmt 0 view .LVU2346 6730 0058 638D ldrh r3, [r4, #42] 6731 005a 9BB2 uxth r3, r3 3153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6732 .loc 1 3153 8 view .LVU2347 6733 005c FF2B cmp r3, #255 6734 005e 30D9 bls .L436 3155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6735 .loc 1 3155 7 is_stmt 1 view .LVU2348 3155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6736 .loc 1 3155 22 is_stmt 0 view .LVU2349 6737 0060 FF23 movs r3, #255 6738 0062 2385 strh r3, [r4, #40] @ movhi 6739 .L437: 3163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6740 .loc 1 3163 5 is_stmt 1 view .LVU2350 3163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 290 6741 .loc 1 3163 8 is_stmt 0 view .LVU2351 6742 0064 012F cmp r7, #1 6743 0066 2FD0 beq .L449 3175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6744 .loc 1 3175 7 is_stmt 1 view .LVU2352 3175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6745 .loc 1 3175 30 is_stmt 0 view .LVU2353 6746 0068 130A lsrs r3, r2, #8 3175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6747 .loc 1 3175 28 view .LVU2354 6748 006a 8B62 str r3, [r1, #40] 3178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6749 .loc 1 3178 7 is_stmt 1 view .LVU2355 3178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6750 .loc 1 3178 26 is_stmt 0 view .LVU2356 6751 006c D2B2 uxtb r2, r2 6752 .LVL448: 3178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6753 .loc 1 3178 24 view .LVU2357 6754 006e 2265 str r2, [r4, #80] 6755 .L439: 3181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6756 .loc 1 3181 5 is_stmt 1 view .LVU2358 3181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6757 .loc 1 3181 13 is_stmt 0 view .LVU2359 6758 0070 E36B ldr r3, [r4, #60] 3181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6759 .loc 1 3181 8 view .LVU2360 6760 0072 002B cmp r3, #0 6761 0074 2ED0 beq .L440 3184:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6762 .loc 1 3184 7 is_stmt 1 view .LVU2361 3184:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6763 .loc 1 3184 38 is_stmt 0 view .LVU2362 6764 0076 2C4A ldr r2, .L451+8 6765 0078 DA63 str r2, [r3, #60] 3187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6766 .loc 1 3187 7 is_stmt 1 view .LVU2363 3187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6767 .loc 1 3187 11 is_stmt 0 view .LVU2364 6768 007a E36B ldr r3, [r4, #60] 3187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6769 .loc 1 3187 39 view .LVU2365 6770 007c 2B4A ldr r2, .L451+12 6771 007e DA64 str r2, [r3, #76] 3190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6772 .loc 1 3190 7 is_stmt 1 view .LVU2366 3190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6773 .loc 1 3190 11 is_stmt 0 view .LVU2367 6774 0080 E26B ldr r2, [r4, #60] 3190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6775 .loc 1 3190 42 view .LVU2368 6776 0082 0023 movs r3, #0 6777 0084 1364 str r3, [r2, #64] 3191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6778 .loc 1 3191 7 is_stmt 1 view .LVU2369 3191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 291 6779 .loc 1 3191 11 is_stmt 0 view .LVU2370 6780 0086 E26B ldr r2, [r4, #60] 3191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6781 .loc 1 3191 39 view .LVU2371 6782 0088 1365 str r3, [r2, #80] 3194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 6783 .loc 1 3194 7 is_stmt 1 view .LVU2372 3194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 6784 .loc 1 3194 69 is_stmt 0 view .LVU2373 6785 008a 2168 ldr r1, [r4] 3194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 6786 .loc 1 3194 23 view .LVU2374 6787 008c 238D ldrh r3, [r4, #40] 6788 008e 2A46 mov r2, r5 6789 0090 2431 adds r1, r1, #36 6790 0092 E06B ldr r0, [r4, #60] 6791 0094 FFF7FEFF bl HAL_DMA_Start_IT 6792 .LVL449: 3212:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6793 .loc 1 3212 5 is_stmt 1 view .LVU2375 3212:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6794 .loc 1 3212 8 is_stmt 0 view .LVU2376 6795 0098 0546 mov r5, r0 6796 009a 48B3 cbz r0, .L450 3232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6797 .loc 1 3232 7 is_stmt 1 view .LVU2377 3232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6798 .loc 1 3232 23 is_stmt 0 view .LVU2378 6799 009c 2023 movs r3, #32 6800 009e 84F84130 strb r3, [r4, #65] 3233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6801 .loc 1 3233 7 is_stmt 1 view .LVU2379 3233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6802 .loc 1 3233 23 is_stmt 0 view .LVU2380 6803 00a2 0022 movs r2, #0 6804 00a4 84F84220 strb r2, [r4, #66] 3236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6805 .loc 1 3236 7 is_stmt 1 view .LVU2381 3236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6806 .loc 1 3236 11 is_stmt 0 view .LVU2382 6807 00a8 636C ldr r3, [r4, #68] 3236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6808 .loc 1 3236 23 view .LVU2383 6809 00aa 43F01003 orr r3, r3, #16 6810 00ae 6364 str r3, [r4, #68] 3239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6811 .loc 1 3239 7 is_stmt 1 view .LVU2384 3239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6812 .loc 1 3239 7 view .LVU2385 6813 00b0 84F84020 strb r2, [r4, #64] 3239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6814 .loc 1 3239 7 view .LVU2386 3241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6815 .loc 1 3241 7 view .LVU2387 3241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6816 .loc 1 3241 14 is_stmt 0 view .LVU2388 6817 00b4 0125 movs r5, #1 ARM GAS /tmp/ccSHpINd.s page 292 6818 00b6 2CE0 b .L434 6819 .LVL450: 6820 .L448: 3130:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6821 .loc 1 3130 7 is_stmt 1 view .LVU2389 3130:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6822 .loc 1 3130 23 is_stmt 0 view .LVU2390 6823 00b8 4FF40073 mov r3, #512 6824 00bc 6364 str r3, [r4, #68] 3131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6825 .loc 1 3131 7 is_stmt 1 view .LVU2391 3131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6826 .loc 1 3131 15 is_stmt 0 view .LVU2392 6827 00be 0125 movs r5, #1 6828 00c0 27E0 b .L434 6829 .LVL451: 6830 .L436: 3159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6831 .loc 1 3159 7 is_stmt 1 view .LVU2393 3159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6832 .loc 1 3159 28 is_stmt 0 view .LVU2394 6833 00c2 638D ldrh r3, [r4, #42] 3159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6834 .loc 1 3159 22 view .LVU2395 6835 00c4 2385 strh r3, [r4, #40] @ movhi 6836 00c6 CDE7 b .L437 6837 .L449: 3166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6838 .loc 1 3166 7 is_stmt 1 view .LVU2396 3166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6839 .loc 1 3166 30 is_stmt 0 view .LVU2397 6840 00c8 D2B2 uxtb r2, r2 6841 .LVL452: 3166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6842 .loc 1 3166 28 view .LVU2398 6843 00ca 8A62 str r2, [r1, #40] 3169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6844 .loc 1 3169 7 is_stmt 1 view .LVU2399 3169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6845 .loc 1 3169 24 is_stmt 0 view .LVU2400 6846 00cc 4FF0FF33 mov r3, #-1 6847 00d0 2365 str r3, [r4, #80] 6848 00d2 CDE7 b .L439 6849 .L440: 3200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6850 .loc 1 3200 7 is_stmt 1 view .LVU2401 3200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6851 .loc 1 3200 23 is_stmt 0 view .LVU2402 6852 00d4 2023 movs r3, #32 6853 00d6 84F84130 strb r3, [r4, #65] 3201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6854 .loc 1 3201 7 is_stmt 1 view .LVU2403 3201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6855 .loc 1 3201 23 is_stmt 0 view .LVU2404 6856 00da 0022 movs r2, #0 6857 00dc 84F84220 strb r2, [r4, #66] 3204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 293 6858 .loc 1 3204 7 is_stmt 1 view .LVU2405 3204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6859 .loc 1 3204 11 is_stmt 0 view .LVU2406 6860 00e0 636C ldr r3, [r4, #68] 3204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6861 .loc 1 3204 23 view .LVU2407 6862 00e2 43F08003 orr r3, r3, #128 6863 00e6 6364 str r3, [r4, #68] 3207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6864 .loc 1 3207 7 is_stmt 1 view .LVU2408 3207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6865 .loc 1 3207 7 view .LVU2409 6866 00e8 84F84020 strb r2, [r4, #64] 3207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6867 .loc 1 3207 7 view .LVU2410 3209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6868 .loc 1 3209 7 view .LVU2411 3209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6869 .loc 1 3209 14 is_stmt 0 view .LVU2412 6870 00ec 0125 movs r5, #1 6871 00ee 10E0 b .L434 6872 .LVL453: 6873 .L450: 3215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6874 .loc 1 3215 7 is_stmt 1 view .LVU2413 6875 00f0 0F4B ldr r3, .L451+16 6876 00f2 0093 str r3, [sp] 6877 00f4 0023 movs r3, #0 6878 00f6 FAB2 uxtb r2, r7 6879 00f8 3146 mov r1, r6 6880 00fa 2046 mov r0, r4 6881 .LVL454: 3215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6882 .loc 1 3215 7 is_stmt 0 view .LVU2414 6883 00fc FFF7FEFF bl I2C_TransferConfig 6884 .LVL455: 3218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6885 .loc 1 3218 7 is_stmt 1 view .LVU2415 3218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6886 .loc 1 3218 7 view .LVU2416 6887 0100 0023 movs r3, #0 6888 0102 84F84030 strb r3, [r4, #64] 3218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6889 .loc 1 3218 7 view .LVU2417 3227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6890 .loc 1 3227 7 view .LVU2418 6891 0106 0121 movs r1, #1 6892 0108 2046 mov r0, r4 6893 010a FFF7FEFF bl I2C_Enable_IRQ 6894 .LVL456: 3244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6895 .loc 1 3244 5 view .LVU2419 3244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6896 .loc 1 3244 12 is_stmt 0 view .LVU2420 6897 010e 00E0 b .L434 6898 .LVL457: 6899 .L443: ARM GAS /tmp/ccSHpINd.s page 294 3248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6900 .loc 1 3248 12 view .LVU2421 6901 0110 0225 movs r5, #2 6902 .LVL458: 6903 .L434: 3250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6904 .loc 1 3250 1 view .LVU2422 6905 0112 2846 mov r0, r5 6906 0114 03B0 add sp, sp, #12 6907 .LCFI80: 6908 .cfi_remember_state 6909 .cfi_def_cfa_offset 20 6910 @ sp needed 6911 0116 F0BD pop {r4, r5, r6, r7, pc} 6912 .LVL459: 6913 .L444: 6914 .LCFI81: 6915 .cfi_restore_state 3136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6916 .loc 1 3136 14 view .LVU2423 6917 0118 0225 movs r5, #2 6918 011a FAE7 b .L434 6919 .L445: 3140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6920 .loc 1 3140 5 discriminator 1 view .LVU2424 6921 011c 0225 movs r5, #2 6922 011e F8E7 b .L434 6923 .L452: 6924 .align 2 6925 .L451: 6926 0120 0000FFFF .word -65536 6927 0124 00000000 .word I2C_Mem_ISR_DMA 6928 0128 00000000 .word I2C_DMAMasterReceiveCplt 6929 012c 00000000 .word I2C_DMAError 6930 0130 00200080 .word -2147475456 6931 .cfi_endproc 6932 .LFE162: 6934 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits 6935 .align 1 6936 .global HAL_I2C_IsDeviceReady 6937 .syntax unified 6938 .thumb 6939 .thumb_func 6941 HAL_I2C_IsDeviceReady: 6942 .LVL460: 6943 .LFB163: 3265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 6944 .loc 1 3265 1 is_stmt 1 view -0 6945 .cfi_startproc 6946 @ args = 0, pretend = 0, frame = 8 6947 @ frame_needed = 0, uses_anonymous_args = 0 3265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 6948 .loc 1 3265 1 is_stmt 0 view .LVU2426 6949 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 6950 .LCFI82: 6951 .cfi_def_cfa_offset 28 6952 .cfi_offset 4, -28 ARM GAS /tmp/ccSHpINd.s page 295 6953 .cfi_offset 5, -24 6954 .cfi_offset 6, -20 6955 .cfi_offset 7, -16 6956 .cfi_offset 8, -12 6957 .cfi_offset 9, -8 6958 .cfi_offset 14, -4 6959 0004 85B0 sub sp, sp, #20 6960 .LCFI83: 6961 .cfi_def_cfa_offset 48 6962 0006 1D46 mov r5, r3 3266:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6963 .loc 1 3266 3 is_stmt 1 view .LVU2427 3268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6964 .loc 1 3268 3 view .LVU2428 3268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6965 .loc 1 3268 17 is_stmt 0 view .LVU2429 6966 0008 0023 movs r3, #0 6967 .LVL461: 3268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6968 .loc 1 3268 17 view .LVU2430 6969 000a 0393 str r3, [sp, #12] 3270:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** FlagStatus tmp2; 6970 .loc 1 3270 3 is_stmt 1 view .LVU2431 3271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6971 .loc 1 3271 3 view .LVU2432 3273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6972 .loc 1 3273 3 view .LVU2433 3273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6973 .loc 1 3273 11 is_stmt 0 view .LVU2434 6974 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6975 0010 DBB2 uxtb r3, r3 3273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6976 .loc 1 3273 6 view .LVU2435 6977 0012 202B cmp r3, #32 6978 0014 40F08380 bne .L463 6979 0018 0646 mov r6, r0 6980 001a 8846 mov r8, r1 6981 001c 9146 mov r9, r2 3275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6982 .loc 1 3275 5 is_stmt 1 view .LVU2436 3275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6983 .loc 1 3275 9 is_stmt 0 view .LVU2437 6984 001e 0368 ldr r3, [r0] 6985 0020 9B69 ldr r3, [r3, #24] 3275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6986 .loc 1 3275 8 view .LVU2438 6987 0022 13F4004F tst r3, #32768 6988 0026 7CD1 bne .L464 3281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6989 .loc 1 3281 5 is_stmt 1 view .LVU2439 3281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6990 .loc 1 3281 5 view .LVU2440 6991 0028 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 6992 002c 012B cmp r3, #1 6993 002e 7AD0 beq .L465 3281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6994 .loc 1 3281 5 discriminator 2 view .LVU2441 ARM GAS /tmp/ccSHpINd.s page 296 6995 0030 0123 movs r3, #1 6996 0032 80F84030 strb r3, [r0, #64] 3281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6997 .loc 1 3281 5 discriminator 2 view .LVU2442 3283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6998 .loc 1 3283 5 view .LVU2443 3283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6999 .loc 1 3283 17 is_stmt 0 view .LVU2444 7000 0036 2423 movs r3, #36 7001 0038 80F84130 strb r3, [r0, #65] 3284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7002 .loc 1 3284 5 is_stmt 1 view .LVU2445 3284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7003 .loc 1 3284 21 is_stmt 0 view .LVU2446 7004 003c 0023 movs r3, #0 7005 003e 4364 str r3, [r0, #68] 7006 .LVL462: 7007 .L462: 3286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7008 .loc 1 3286 5 is_stmt 1 view .LVU2447 3289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7009 .loc 1 3289 7 view .LVU2448 3289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7010 .loc 1 3289 29 is_stmt 0 view .LVU2449 7011 0040 F368 ldr r3, [r6, #12] 7012 0042 012B cmp r3, #1 7013 0044 10D0 beq .L469 3289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7014 .loc 1 3289 29 discriminator 2 view .LVU2450 7015 0046 C8F30902 ubfx r2, r8, #0, #10 7016 004a 3A4B ldr r3, .L472 7017 004c 1343 orrs r3, r3, r2 7018 .L456: 3289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7019 .loc 1 3289 11 discriminator 4 view .LVU2451 7020 004e 3268 ldr r2, [r6] 3289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7021 .loc 1 3289 27 discriminator 4 view .LVU2452 7022 0050 5360 str r3, [r2, #4] 3293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7023 .loc 1 3293 7 is_stmt 1 view .LVU2453 3293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7024 .loc 1 3293 19 is_stmt 0 view .LVU2454 7025 0052 FFF7FEFF bl HAL_GetTick 7026 .LVL463: 7027 0056 0746 mov r7, r0 7028 .LVL464: 3295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7029 .loc 1 3295 7 is_stmt 1 view .LVU2455 3295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7030 .loc 1 3295 14 is_stmt 0 view .LVU2456 7031 0058 3268 ldr r2, [r6] 7032 005a 9369 ldr r3, [r2, #24] 7033 005c C3F3401C ubfx ip, r3, #5, #1 7034 .LVL465: 3296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7035 .loc 1 3296 7 is_stmt 1 view .LVU2457 ARM GAS /tmp/ccSHpINd.s page 297 3296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7036 .loc 1 3296 14 is_stmt 0 view .LVU2458 7037 0060 9369 ldr r3, [r2, #24] 7038 0062 C3F30013 ubfx r3, r3, #4, #1 7039 .LVL466: 3298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7040 .loc 1 3298 7 is_stmt 1 view .LVU2459 3298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7041 .loc 1 3298 13 is_stmt 0 view .LVU2460 7042 0066 0BE0 b .L457 7043 .LVL467: 7044 .L469: 3289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7045 .loc 1 3289 29 discriminator 1 view .LVU2461 7046 0068 C8F30902 ubfx r2, r8, #0, #10 7047 006c 324B ldr r3, .L472+4 7048 006e 1343 orrs r3, r3, r2 7049 0070 EDE7 b .L456 7050 .LVL468: 7051 .L458: 3317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7052 .loc 1 3317 9 is_stmt 1 view .LVU2462 3317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7053 .loc 1 3317 16 is_stmt 0 view .LVU2463 7054 0072 3368 ldr r3, [r6] 7055 0074 9C69 ldr r4, [r3, #24] 7056 0076 C4F3401C ubfx ip, r4, #5, #1 7057 .LVL469: 3318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7058 .loc 1 3318 9 is_stmt 1 view .LVU2464 3318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7059 .loc 1 3318 16 is_stmt 0 view .LVU2465 7060 007a 9B69 ldr r3, [r3, #24] 7061 007c C3F30013 ubfx r3, r3, #4, #1 7062 .LVL470: 7063 .L457: 3298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7064 .loc 1 3298 30 is_stmt 1 view .LVU2466 7065 0080 5CEA030C orrs ip, ip, r3 7066 .LVL471: 3298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7067 .loc 1 3298 30 is_stmt 0 view .LVU2467 7068 0084 17D1 bne .L470 3300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7069 .loc 1 3300 9 is_stmt 1 view .LVU2468 3300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7070 .loc 1 3300 12 is_stmt 0 view .LVU2469 7071 0086 B5F1FF3F cmp r5, #-1 7072 008a F2D0 beq .L458 3302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7073 .loc 1 3302 11 is_stmt 1 view .LVU2470 3302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7074 .loc 1 3302 17 is_stmt 0 view .LVU2471 7075 008c FFF7FEFF bl HAL_GetTick 7076 .LVL472: 3302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7077 .loc 1 3302 31 discriminator 1 view .LVU2472 ARM GAS /tmp/ccSHpINd.s page 298 7078 0090 C01B subs r0, r0, r7 3302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7079 .loc 1 3302 14 discriminator 1 view .LVU2473 7080 0092 A842 cmp r0, r5 7081 0094 01D8 bhi .L459 3302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7082 .loc 1 3302 55 discriminator 1 view .LVU2474 7083 0096 002D cmp r5, #0 7084 0098 EBD1 bne .L458 7085 .L459: 3305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7086 .loc 1 3305 13 is_stmt 1 view .LVU2475 3305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7087 .loc 1 3305 25 is_stmt 0 view .LVU2476 7088 009a 2023 movs r3, #32 7089 009c 86F84130 strb r3, [r6, #65] 3308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7090 .loc 1 3308 13 is_stmt 1 view .LVU2477 3308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7091 .loc 1 3308 17 is_stmt 0 view .LVU2478 7092 00a0 736C ldr r3, [r6, #68] 3308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7093 .loc 1 3308 29 view .LVU2479 7094 00a2 43F02003 orr r3, r3, #32 7095 00a6 7364 str r3, [r6, #68] 3311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7096 .loc 1 3311 13 is_stmt 1 view .LVU2480 3311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7097 .loc 1 3311 13 view .LVU2481 7098 00a8 0023 movs r3, #0 7099 00aa 86F84030 strb r3, [r6, #64] 3311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7100 .loc 1 3311 13 view .LVU2482 3313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7101 .loc 1 3313 13 view .LVU2483 3313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7102 .loc 1 3313 20 is_stmt 0 view .LVU2484 7103 00ae 0120 movs r0, #1 7104 .LVL473: 7105 .L454: 3375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7106 .loc 1 3375 1 view .LVU2485 7107 00b0 05B0 add sp, sp, #20 7108 .LCFI84: 7109 .cfi_remember_state 7110 .cfi_def_cfa_offset 28 7111 @ sp needed 7112 00b2 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 7113 .LVL474: 7114 .L470: 7115 .LCFI85: 7116 .cfi_restore_state 3322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7117 .loc 1 3322 7 is_stmt 1 view .LVU2486 3322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7118 .loc 1 3322 11 is_stmt 0 view .LVU2487 7119 00b6 3368 ldr r3, [r6] ARM GAS /tmp/ccSHpINd.s page 299 7120 .LVL475: 3322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7121 .loc 1 3322 11 view .LVU2488 7122 00b8 9B69 ldr r3, [r3, #24] 3322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7123 .loc 1 3322 10 view .LVU2489 7124 00ba 13F0100F tst r3, #16 7125 00be 1DD0 beq .L471 3344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7126 .loc 1 3344 9 is_stmt 1 view .LVU2490 3344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7127 .loc 1 3344 13 is_stmt 0 view .LVU2491 7128 00c0 0097 str r7, [sp] 7129 00c2 2B46 mov r3, r5 7130 00c4 0022 movs r2, #0 7131 00c6 2021 movs r1, #32 7132 00c8 3046 mov r0, r6 7133 00ca FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7134 .LVL476: 3344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7135 .loc 1 3344 12 discriminator 1 view .LVU2492 7136 00ce 70BB cbnz r0, .L467 3350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7137 .loc 1 3350 9 is_stmt 1 view .LVU2493 7138 00d0 3368 ldr r3, [r6] 7139 00d2 1022 movs r2, #16 7140 00d4 DA61 str r2, [r3, #28] 3353:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7141 .loc 1 3353 9 view .LVU2494 7142 00d6 3368 ldr r3, [r6] 7143 00d8 2022 movs r2, #32 7144 00da DA61 str r2, [r3, #28] 3357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7145 .loc 1 3357 7 view .LVU2495 3357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7146 .loc 1 3357 17 is_stmt 0 view .LVU2496 7147 00dc 039B ldr r3, [sp, #12] 7148 00de 0133 adds r3, r3, #1 7149 00e0 0393 str r3, [sp, #12] 3358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7150 .loc 1 3358 25 is_stmt 1 view .LVU2497 7151 00e2 039B ldr r3, [sp, #12] 7152 00e4 4B45 cmp r3, r9 7153 00e6 ABD3 bcc .L462 3361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7154 .loc 1 3361 5 view .LVU2498 3361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7155 .loc 1 3361 17 is_stmt 0 view .LVU2499 7156 00e8 86F84120 strb r2, [r6, #65] 3364:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7157 .loc 1 3364 5 is_stmt 1 view .LVU2500 3364:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7158 .loc 1 3364 9 is_stmt 0 view .LVU2501 7159 00ec 736C ldr r3, [r6, #68] 3364:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7160 .loc 1 3364 21 view .LVU2502 7161 00ee 1343 orrs r3, r3, r2 ARM GAS /tmp/ccSHpINd.s page 300 7162 00f0 7364 str r3, [r6, #68] 3367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7163 .loc 1 3367 5 is_stmt 1 view .LVU2503 3367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7164 .loc 1 3367 5 view .LVU2504 7165 00f2 0023 movs r3, #0 7166 00f4 86F84030 strb r3, [r6, #64] 3367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7167 .loc 1 3367 5 view .LVU2505 3369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7168 .loc 1 3369 5 view .LVU2506 3369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7169 .loc 1 3369 12 is_stmt 0 view .LVU2507 7170 00f8 0120 movs r0, #1 7171 00fa D9E7 b .L454 7172 .L471: 3325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7173 .loc 1 3325 9 is_stmt 1 view .LVU2508 3325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7174 .loc 1 3325 13 is_stmt 0 view .LVU2509 7175 00fc 0097 str r7, [sp] 7176 00fe 2B46 mov r3, r5 7177 0100 0022 movs r2, #0 7178 0102 2021 movs r1, #32 7179 0104 3046 mov r0, r6 7180 0106 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7181 .LVL477: 3325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7182 .loc 1 3325 12 discriminator 1 view .LVU2510 7183 010a 70B9 cbnz r0, .L466 3331:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7184 .loc 1 3331 9 is_stmt 1 view .LVU2511 7185 010c 3268 ldr r2, [r6] 7186 010e 2023 movs r3, #32 7187 0110 D361 str r3, [r2, #28] 3334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7188 .loc 1 3334 9 view .LVU2512 3334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7189 .loc 1 3334 21 is_stmt 0 view .LVU2513 7190 0112 86F84130 strb r3, [r6, #65] 3337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7191 .loc 1 3337 9 is_stmt 1 view .LVU2514 3337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7192 .loc 1 3337 9 view .LVU2515 7193 0116 0023 movs r3, #0 7194 0118 86F84030 strb r3, [r6, #64] 3337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7195 .loc 1 3337 9 view .LVU2516 3339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7196 .loc 1 3339 9 view .LVU2517 3339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7197 .loc 1 3339 16 is_stmt 0 view .LVU2518 7198 011c C8E7 b .L454 7199 .LVL478: 7200 .L463: 3373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7201 .loc 1 3373 12 view .LVU2519 ARM GAS /tmp/ccSHpINd.s page 301 7202 011e 0220 movs r0, #2 7203 .LVL479: 3373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7204 .loc 1 3373 12 view .LVU2520 7205 0120 C6E7 b .L454 7206 .LVL480: 7207 .L464: 3277:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7208 .loc 1 3277 14 view .LVU2521 7209 0122 0220 movs r0, #2 7210 .LVL481: 3277:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7211 .loc 1 3277 14 view .LVU2522 7212 0124 C4E7 b .L454 7213 .LVL482: 7214 .L465: 3281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7215 .loc 1 3281 5 discriminator 1 view .LVU2523 7216 0126 0220 movs r0, #2 7217 .LVL483: 3281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7218 .loc 1 3281 5 discriminator 1 view .LVU2524 7219 0128 C2E7 b .L454 7220 .LVL484: 7221 .L466: 3327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7222 .loc 1 3327 18 view .LVU2525 7223 012a 0120 movs r0, #1 7224 012c C0E7 b .L454 7225 .L467: 3346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7226 .loc 1 3346 18 view .LVU2526 7227 012e 0120 movs r0, #1 7228 0130 BEE7 b .L454 7229 .L473: 7230 0132 00BF .align 2 7231 .L472: 7232 0134 00280002 .word 33564672 7233 0138 00200002 .word 33562624 7234 .cfi_endproc 7235 .LFE163: 7237 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits 7238 .align 1 7239 .global HAL_I2C_Master_Seq_Transmit_IT 7240 .syntax unified 7241 .thumb 7242 .thumb_func 7244 HAL_I2C_Master_Seq_Transmit_IT: 7245 .LVL485: 7246 .LFB164: 3391:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 7247 .loc 1 3391 1 is_stmt 1 view -0 7248 .cfi_startproc 7249 @ args = 4, pretend = 0, frame = 0 7250 @ frame_needed = 0, uses_anonymous_args = 0 3391:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 7251 .loc 1 3391 1 is_stmt 0 view .LVU2528 ARM GAS /tmp/ccSHpINd.s page 302 7252 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 7253 .LCFI86: 7254 .cfi_def_cfa_offset 24 7255 .cfi_offset 4, -24 7256 .cfi_offset 5, -20 7257 .cfi_offset 6, -16 7258 .cfi_offset 7, -12 7259 .cfi_offset 8, -8 7260 .cfi_offset 14, -4 7261 0004 82B0 sub sp, sp, #8 7262 .LCFI87: 7263 .cfi_def_cfa_offset 32 7264 0006 0446 mov r4, r0 7265 0008 089E ldr r6, [sp, #32] 3392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7266 .loc 1 3392 3 is_stmt 1 view .LVU2529 3393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7267 .loc 1 3393 3 view .LVU2530 7268 .LVL486: 3394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7269 .loc 1 3394 3 view .LVU2531 3397:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7270 .loc 1 3397 3 view .LVU2532 3399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7271 .loc 1 3399 3 view .LVU2533 3399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7272 .loc 1 3399 11 is_stmt 0 view .LVU2534 7273 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7274 .LVL487: 3399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7275 .loc 1 3399 11 view .LVU2535 7276 000e C0B2 uxtb r0, r0 3399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7277 .loc 1 3399 6 view .LVU2536 7278 0010 2028 cmp r0, #32 7279 0012 73D1 bne .L483 7280 0014 0D46 mov r5, r1 3402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7281 .loc 1 3402 5 is_stmt 1 view .LVU2537 3402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7282 .loc 1 3402 5 view .LVU2538 7283 0016 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7284 .LVL488: 3402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7285 .loc 1 3402 5 is_stmt 0 view .LVU2539 7286 001a 0129 cmp r1, #1 7287 001c 70D0 beq .L484 3402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7288 .loc 1 3402 5 is_stmt 1 discriminator 2 view .LVU2540 7289 001e 0121 movs r1, #1 7290 0020 84F84010 strb r1, [r4, #64] 3402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7291 .loc 1 3402 5 discriminator 2 view .LVU2541 3404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7292 .loc 1 3404 5 view .LVU2542 3404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7293 .loc 1 3404 21 is_stmt 0 view .LVU2543 ARM GAS /tmp/ccSHpINd.s page 303 7294 0024 2121 movs r1, #33 7295 0026 84F84110 strb r1, [r4, #65] 3405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7296 .loc 1 3405 5 is_stmt 1 view .LVU2544 3405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7297 .loc 1 3405 21 is_stmt 0 view .LVU2545 7298 002a 1021 movs r1, #16 7299 002c 84F84210 strb r1, [r4, #66] 3406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7300 .loc 1 3406 5 is_stmt 1 view .LVU2546 3406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7301 .loc 1 3406 21 is_stmt 0 view .LVU2547 7302 0030 0021 movs r1, #0 7303 0032 6164 str r1, [r4, #68] 3409:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 7304 .loc 1 3409 5 is_stmt 1 view .LVU2548 3409:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 7305 .loc 1 3409 23 is_stmt 0 view .LVU2549 7306 0034 6262 str r2, [r4, #36] 3410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7307 .loc 1 3410 5 is_stmt 1 view .LVU2550 3410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7308 .loc 1 3410 23 is_stmt 0 view .LVU2551 7309 0036 6385 strh r3, [r4, #42] @ movhi 3411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7310 .loc 1 3411 5 is_stmt 1 view .LVU2552 3411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7311 .loc 1 3411 23 is_stmt 0 view .LVU2553 7312 0038 E662 str r6, [r4, #44] 3412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7313 .loc 1 3412 5 is_stmt 1 view .LVU2554 3412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7314 .loc 1 3412 23 is_stmt 0 view .LVU2555 7315 003a 324B ldr r3, .L490 7316 .LVL489: 3412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7317 .loc 1 3412 23 view .LVU2556 7318 003c 6363 str r3, [r4, #52] 3415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7319 .loc 1 3415 5 is_stmt 1 view .LVU2557 3415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7320 .loc 1 3415 13 is_stmt 0 view .LVU2558 7321 003e 638D ldrh r3, [r4, #42] 7322 0040 9BB2 uxth r3, r3 3415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7323 .loc 1 3415 8 view .LVU2559 7324 0042 FF2B cmp r3, #255 7325 0044 1BD9 bls .L476 3417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7326 .loc 1 3417 7 is_stmt 1 view .LVU2560 3417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7327 .loc 1 3417 22 is_stmt 0 view .LVU2561 7328 0046 FF23 movs r3, #255 7329 0048 2385 strh r3, [r4, #40] @ movhi 3418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7330 .loc 1 3418 7 is_stmt 1 view .LVU2562 7331 .LVL490: ARM GAS /tmp/ccSHpINd.s page 304 3418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7332 .loc 1 3418 16 is_stmt 0 view .LVU2563 7333 004a 4FF08077 mov r7, #16777216 7334 .LVL491: 7335 .L477: 3426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7336 .loc 1 3426 5 is_stmt 1 view .LVU2564 3426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7337 .loc 1 3426 14 is_stmt 0 view .LVU2565 7338 004e 238D ldrh r3, [r4, #40] 3426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7339 .loc 1 3426 8 view .LVU2566 7340 0050 CBB1 cbz r3, .L485 3426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7341 .loc 1 3426 31 discriminator 1 view .LVU2567 7342 0052 B6F1007F cmp r6, #33554432 7343 0056 18BF it ne 7344 0058 002E cmpne r6, #0 7345 005a 3FD1 bne .L486 3431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7346 .loc 1 3431 7 is_stmt 1 view .LVU2568 3431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7347 .loc 1 3431 11 is_stmt 0 view .LVU2569 7348 005c 2368 ldr r3, [r4] 3431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7349 .loc 1 3431 30 view .LVU2570 7350 005e 1278 ldrb r2, [r2] @ zero_extendqisi2 7351 .LVL492: 3431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7352 .loc 1 3431 28 view .LVU2571 7353 0060 9A62 str r2, [r3, #40] 7354 .LVL493: 3434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7355 .loc 1 3434 7 is_stmt 1 view .LVU2572 3434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7356 .loc 1 3434 11 is_stmt 0 view .LVU2573 7357 0062 636A ldr r3, [r4, #36] 3434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7358 .loc 1 3434 21 view .LVU2574 7359 0064 0133 adds r3, r3, #1 7360 0066 6362 str r3, [r4, #36] 3436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 7361 .loc 1 3436 7 is_stmt 1 view .LVU2575 3436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 7362 .loc 1 3436 24 is_stmt 0 view .LVU2576 7363 0068 B4F82880 ldrh r8, [r4, #40] 7364 .LVL494: 3437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 7365 .loc 1 3437 7 is_stmt 1 view .LVU2577 3437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 7366 .loc 1 3437 11 is_stmt 0 view .LVU2578 7367 006c 638D ldrh r3, [r4, #42] 7368 006e 9BB2 uxth r3, r3 3437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 7369 .loc 1 3437 22 view .LVU2579 7370 0070 013B subs r3, r3, #1 7371 0072 9BB2 uxth r3, r3 ARM GAS /tmp/ccSHpINd.s page 305 7372 0074 6385 strh r3, [r4, #42] @ movhi 3438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7373 .loc 1 3438 7 is_stmt 1 view .LVU2580 3438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7374 .loc 1 3438 21 is_stmt 0 view .LVU2581 7375 0076 08F1FF33 add r3, r8, #-1 7376 007a 2385 strh r3, [r4, #40] @ movhi 7377 007c 05E0 b .L478 7378 .LVL495: 7379 .L476: 3422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7380 .loc 1 3422 7 is_stmt 1 view .LVU2582 3422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7381 .loc 1 3422 28 is_stmt 0 view .LVU2583 7382 007e 638D ldrh r3, [r4, #42] 3422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7383 .loc 1 3422 22 view .LVU2584 7384 0080 2385 strh r3, [r4, #40] @ movhi 3423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7385 .loc 1 3423 7 is_stmt 1 view .LVU2585 3423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7386 .loc 1 3423 16 is_stmt 0 view .LVU2586 7387 0082 E76A ldr r7, [r4, #44] 7388 .LVL496: 3423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7389 .loc 1 3423 16 view .LVU2587 7390 0084 E3E7 b .L477 7391 .L485: 3394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7392 .loc 1 3394 12 view .LVU2588 7393 0086 4FF00008 mov r8, #0 7394 .LVL497: 7395 .L478: 3444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7396 .loc 1 3444 5 is_stmt 1 view .LVU2589 3444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7397 .loc 1 3444 14 is_stmt 0 view .LVU2590 7398 008a 236B ldr r3, [r4, #48] 3444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7399 .loc 1 3444 8 view .LVU2591 7400 008c 112B cmp r3, #17 7401 008e 04D1 bne .L479 3444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7402 .loc 1 3444 59 discriminator 1 view .LVU2592 7403 0090 B6F52A4F cmp r6, #43520 7404 0094 18BF it ne 7405 0096 AA2E cmpne r6, #170 7406 0098 23D1 bne .L487 7407 .L479: 3452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7408 .loc 1 3452 7 is_stmt 1 view .LVU2593 7409 009a 2046 mov r0, r4 7410 009c FFF7FEFF bl I2C_ConvertOtherXferOptions 7411 .LVL498: 3455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7412 .loc 1 3455 7 view .LVU2594 3455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 306 7413 .loc 1 3455 15 is_stmt 0 view .LVU2595 7414 00a0 638D ldrh r3, [r4, #42] 7415 00a2 9BB2 uxth r3, r3 3455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7416 .loc 1 3455 10 view .LVU2596 7417 00a4 FF2B cmp r3, #255 7418 00a6 1ED8 bhi .L488 3457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7419 .loc 1 3457 9 is_stmt 1 view .LVU2597 3457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7420 .loc 1 3457 18 is_stmt 0 view .LVU2598 7421 00a8 E76A ldr r7, [r4, #44] 7422 .LVL499: 3393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7423 .loc 1 3393 12 view .LVU2599 7424 00aa 174B ldr r3, .L490+4 7425 .L480: 7426 .LVL500: 3462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7427 .loc 1 3462 5 is_stmt 1 view .LVU2600 3462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7428 .loc 1 3462 8 is_stmt 0 view .LVU2601 7429 00ac B6F1007F cmp r6, #33554432 7430 00b0 18BF it ne 7431 00b2 002E cmpne r6, #0 7432 00b4 19D1 bne .L481 3464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7433 .loc 1 3464 7 is_stmt 1 view .LVU2602 7434 00b6 0093 str r3, [sp] 7435 00b8 3B46 mov r3, r7 7436 .LVL501: 3464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7437 .loc 1 3464 7 is_stmt 0 view .LVU2603 7438 00ba 5FFA88F2 uxtb r2, r8 7439 00be 2946 mov r1, r5 7440 00c0 2046 mov r0, r4 7441 00c2 FFF7FEFF bl I2C_TransferConfig 7442 .LVL502: 7443 .L482: 3472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7444 .loc 1 3472 5 is_stmt 1 view .LVU2604 3472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7445 .loc 1 3472 5 view .LVU2605 7446 00c6 0025 movs r5, #0 7447 .LVL503: 3472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7448 .loc 1 3472 5 is_stmt 0 view .LVU2606 7449 00c8 84F84050 strb r5, [r4, #64] 3472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7450 .loc 1 3472 5 is_stmt 1 view .LVU2607 3481:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7451 .loc 1 3481 5 view .LVU2608 7452 00cc 0121 movs r1, #1 7453 00ce 2046 mov r0, r4 7454 00d0 FFF7FEFF bl I2C_Enable_IRQ 7455 .LVL504: 3483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 307 7456 .loc 1 3483 5 view .LVU2609 3483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7457 .loc 1 3483 12 is_stmt 0 view .LVU2610 7458 00d4 2846 mov r0, r5 7459 .LVL505: 7460 .L475: 3489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7461 .loc 1 3489 1 view .LVU2611 7462 00d6 02B0 add sp, sp, #8 7463 .LCFI88: 7464 .cfi_remember_state 7465 .cfi_def_cfa_offset 24 7466 @ sp needed 7467 00d8 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7468 .LVL506: 7469 .L486: 7470 .LCFI89: 7471 .cfi_restore_state 3394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7472 .loc 1 3394 12 view .LVU2612 7473 00dc 4FF00008 mov r8, #0 7474 00e0 D3E7 b .L478 7475 .LVL507: 7476 .L487: 3447:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7477 .loc 1 3447 19 view .LVU2613 7478 00e2 0023 movs r3, #0 7479 00e4 E2E7 b .L480 7480 .L488: 3393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7481 .loc 1 3393 12 view .LVU2614 7482 00e6 084B ldr r3, .L490+4 7483 00e8 E0E7 b .L480 7484 .LVL508: 7485 .L481: 3468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7486 .loc 1 3468 7 is_stmt 1 view .LVU2615 7487 00ea 0093 str r3, [sp] 7488 00ec 3B46 mov r3, r7 7489 .LVL509: 3468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7490 .loc 1 3468 7 is_stmt 0 view .LVU2616 7491 00ee 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7492 00f2 2946 mov r1, r5 7493 00f4 2046 mov r0, r4 7494 00f6 FFF7FEFF bl I2C_TransferConfig 7495 .LVL510: 3468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7496 .loc 1 3468 7 view .LVU2617 7497 00fa E4E7 b .L482 7498 .LVL511: 7499 .L483: 3487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7500 .loc 1 3487 12 view .LVU2618 7501 00fc 0220 movs r0, #2 7502 00fe EAE7 b .L475 7503 .LVL512: ARM GAS /tmp/ccSHpINd.s page 308 7504 .L484: 3402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7505 .loc 1 3402 5 discriminator 1 view .LVU2619 7506 0100 0220 movs r0, #2 7507 0102 E8E7 b .L475 7508 .L491: 7509 .align 2 7510 .L490: 7511 0104 00000000 .word I2C_Master_ISR_IT 7512 0108 00200080 .word -2147475456 7513 .cfi_endproc 7514 .LFE164: 7516 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits 7517 .align 1 7518 .global HAL_I2C_Master_Seq_Transmit_DMA 7519 .syntax unified 7520 .thumb 7521 .thumb_func 7523 HAL_I2C_Master_Seq_Transmit_DMA: 7524 .LVL513: 7525 .LFB165: 3505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 7526 .loc 1 3505 1 is_stmt 1 view -0 7527 .cfi_startproc 7528 @ args = 4, pretend = 0, frame = 0 7529 @ frame_needed = 0, uses_anonymous_args = 0 3505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 7530 .loc 1 3505 1 is_stmt 0 view .LVU2621 7531 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 7532 .LCFI90: 7533 .cfi_def_cfa_offset 28 7534 .cfi_offset 4, -28 7535 .cfi_offset 5, -24 7536 .cfi_offset 6, -20 7537 .cfi_offset 7, -16 7538 .cfi_offset 8, -12 7539 .cfi_offset 9, -8 7540 .cfi_offset 14, -4 7541 0004 83B0 sub sp, sp, #12 7542 .LCFI91: 7543 .cfi_def_cfa_offset 40 7544 0006 0446 mov r4, r0 7545 0008 0A9E ldr r6, [sp, #40] 3506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7546 .loc 1 3506 3 is_stmt 1 view .LVU2622 3507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7547 .loc 1 3507 3 view .LVU2623 7548 .LVL514: 3508:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7549 .loc 1 3508 3 view .LVU2624 3509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7550 .loc 1 3509 3 view .LVU2625 3512:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7551 .loc 1 3512 3 view .LVU2626 3514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7552 .loc 1 3514 3 view .LVU2627 3514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 309 7553 .loc 1 3514 11 is_stmt 0 view .LVU2628 7554 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7555 .LVL515: 3514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7556 .loc 1 3514 11 view .LVU2629 7557 000e C0B2 uxtb r0, r0 3514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7558 .loc 1 3514 6 view .LVU2630 7559 0010 2028 cmp r0, #32 7560 0012 40F0D780 bne .L508 7561 0016 0D46 mov r5, r1 3517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7562 .loc 1 3517 5 is_stmt 1 view .LVU2631 3517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7563 .loc 1 3517 5 view .LVU2632 7564 0018 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7565 .LVL516: 3517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7566 .loc 1 3517 5 is_stmt 0 view .LVU2633 7567 001c 0129 cmp r1, #1 7568 001e 00F0D580 beq .L509 3517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7569 .loc 1 3517 5 is_stmt 1 discriminator 2 view .LVU2634 7570 0022 0121 movs r1, #1 7571 0024 84F84010 strb r1, [r4, #64] 3517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7572 .loc 1 3517 5 discriminator 2 view .LVU2635 3519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7573 .loc 1 3519 5 view .LVU2636 3519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7574 .loc 1 3519 21 is_stmt 0 view .LVU2637 7575 0028 2121 movs r1, #33 7576 002a 84F84110 strb r1, [r4, #65] 3520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7577 .loc 1 3520 5 is_stmt 1 view .LVU2638 3520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7578 .loc 1 3520 21 is_stmt 0 view .LVU2639 7579 002e 1021 movs r1, #16 7580 0030 84F84210 strb r1, [r4, #66] 3521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7581 .loc 1 3521 5 is_stmt 1 view .LVU2640 3521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7582 .loc 1 3521 21 is_stmt 0 view .LVU2641 7583 0034 0021 movs r1, #0 7584 0036 6164 str r1, [r4, #68] 3524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 7585 .loc 1 3524 5 is_stmt 1 view .LVU2642 3524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 7586 .loc 1 3524 23 is_stmt 0 view .LVU2643 7587 0038 6262 str r2, [r4, #36] 3525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7588 .loc 1 3525 5 is_stmt 1 view .LVU2644 3525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7589 .loc 1 3525 23 is_stmt 0 view .LVU2645 7590 003a 6385 strh r3, [r4, #42] @ movhi 3526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7591 .loc 1 3526 5 is_stmt 1 view .LVU2646 ARM GAS /tmp/ccSHpINd.s page 310 3526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7592 .loc 1 3526 23 is_stmt 0 view .LVU2647 7593 003c E662 str r6, [r4, #44] 3527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7594 .loc 1 3527 5 is_stmt 1 view .LVU2648 3527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7595 .loc 1 3527 23 is_stmt 0 view .LVU2649 7596 003e 644B ldr r3, .L516 7597 .LVL517: 3527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7598 .loc 1 3527 23 view .LVU2650 7599 0040 6363 str r3, [r4, #52] 3530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7600 .loc 1 3530 5 is_stmt 1 view .LVU2651 3530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7601 .loc 1 3530 13 is_stmt 0 view .LVU2652 7602 0042 638D ldrh r3, [r4, #42] 7603 0044 9BB2 uxth r3, r3 3530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7604 .loc 1 3530 8 view .LVU2653 7605 0046 FF2B cmp r3, #255 7606 0048 1BD9 bls .L494 3532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7607 .loc 1 3532 7 is_stmt 1 view .LVU2654 3532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7608 .loc 1 3532 22 is_stmt 0 view .LVU2655 7609 004a FF23 movs r3, #255 7610 004c 2385 strh r3, [r4, #40] @ movhi 3533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7611 .loc 1 3533 7 is_stmt 1 view .LVU2656 7612 .LVL518: 3533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7613 .loc 1 3533 16 is_stmt 0 view .LVU2657 7614 004e 4FF08077 mov r7, #16777216 7615 .LVL519: 7616 .L495: 3541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7617 .loc 1 3541 5 is_stmt 1 view .LVU2658 3541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7618 .loc 1 3541 14 is_stmt 0 view .LVU2659 7619 0052 238D ldrh r3, [r4, #40] 3541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7620 .loc 1 3541 8 view .LVU2660 7621 0054 CBB1 cbz r3, .L510 3541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7622 .loc 1 3541 31 discriminator 1 view .LVU2661 7623 0056 B6F1007F cmp r6, #33554432 7624 005a 18BF it ne 7625 005c 002E cmpne r6, #0 7626 005e 29D1 bne .L511 3546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7627 .loc 1 3546 7 is_stmt 1 view .LVU2662 3546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7628 .loc 1 3546 11 is_stmt 0 view .LVU2663 7629 0060 2368 ldr r3, [r4] 3546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7630 .loc 1 3546 30 view .LVU2664 ARM GAS /tmp/ccSHpINd.s page 311 7631 0062 1278 ldrb r2, [r2] @ zero_extendqisi2 7632 .LVL520: 3546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7633 .loc 1 3546 28 view .LVU2665 7634 0064 9A62 str r2, [r3, #40] 7635 .LVL521: 3549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7636 .loc 1 3549 7 is_stmt 1 view .LVU2666 3549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7637 .loc 1 3549 11 is_stmt 0 view .LVU2667 7638 0066 636A ldr r3, [r4, #36] 3549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7639 .loc 1 3549 21 view .LVU2668 7640 0068 0133 adds r3, r3, #1 7641 006a 6362 str r3, [r4, #36] 3551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 7642 .loc 1 3551 7 is_stmt 1 view .LVU2669 3551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 7643 .loc 1 3551 24 is_stmt 0 view .LVU2670 7644 006c B4F82880 ldrh r8, [r4, #40] 7645 .LVL522: 3552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 7646 .loc 1 3552 7 is_stmt 1 view .LVU2671 3552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 7647 .loc 1 3552 11 is_stmt 0 view .LVU2672 7648 0070 638D ldrh r3, [r4, #42] 7649 0072 9BB2 uxth r3, r3 3552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 7650 .loc 1 3552 22 view .LVU2673 7651 0074 013B subs r3, r3, #1 7652 0076 9BB2 uxth r3, r3 7653 0078 6385 strh r3, [r4, #42] @ movhi 3553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7654 .loc 1 3553 7 is_stmt 1 view .LVU2674 3553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7655 .loc 1 3553 21 is_stmt 0 view .LVU2675 7656 007a 08F1FF33 add r3, r8, #-1 7657 007e 2385 strh r3, [r4, #40] @ movhi 7658 0080 05E0 b .L496 7659 .LVL523: 7660 .L494: 3537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7661 .loc 1 3537 7 is_stmt 1 view .LVU2676 3537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7662 .loc 1 3537 28 is_stmt 0 view .LVU2677 7663 0082 638D ldrh r3, [r4, #42] 3537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7664 .loc 1 3537 22 view .LVU2678 7665 0084 2385 strh r3, [r4, #40] @ movhi 3538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7666 .loc 1 3538 7 is_stmt 1 view .LVU2679 3538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7667 .loc 1 3538 16 is_stmt 0 view .LVU2680 7668 0086 E76A ldr r7, [r4, #44] 7669 .LVL524: 3538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7670 .loc 1 3538 16 view .LVU2681 ARM GAS /tmp/ccSHpINd.s page 312 7671 0088 E3E7 b .L495 7672 .L510: 3509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7673 .loc 1 3509 12 view .LVU2682 7674 008a 4FF00008 mov r8, #0 7675 .LVL525: 7676 .L496: 3559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7677 .loc 1 3559 5 is_stmt 1 view .LVU2683 3559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7678 .loc 1 3559 14 is_stmt 0 view .LVU2684 7679 008e 236B ldr r3, [r4, #48] 3559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7680 .loc 1 3559 8 view .LVU2685 7681 0090 112B cmp r3, #17 7682 0092 04D1 bne .L497 3559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7683 .loc 1 3559 59 discriminator 1 view .LVU2686 7684 0094 B6F52A4F cmp r6, #43520 7685 0098 18BF it ne 7686 009a AA2E cmpne r6, #170 7687 009c 0DD1 bne .L512 7688 .L497: 3567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7689 .loc 1 3567 7 is_stmt 1 view .LVU2687 7690 009e 2046 mov r0, r4 7691 00a0 FFF7FEFF bl I2C_ConvertOtherXferOptions 7692 .LVL526: 3570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7693 .loc 1 3570 7 view .LVU2688 3570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7694 .loc 1 3570 15 is_stmt 0 view .LVU2689 7695 00a4 638D ldrh r3, [r4, #42] 7696 00a6 9BB2 uxth r3, r3 3570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7697 .loc 1 3570 10 view .LVU2690 7698 00a8 FF2B cmp r3, #255 7699 00aa 09D8 bhi .L513 3572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7700 .loc 1 3572 9 is_stmt 1 view .LVU2691 3572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7701 .loc 1 3572 18 is_stmt 0 view .LVU2692 7702 00ac E76A ldr r7, [r4, #44] 7703 .LVL527: 3507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7704 .loc 1 3507 12 view .LVU2693 7705 00ae DFF83091 ldr r9, .L516+16 7706 00b2 07E0 b .L498 7707 .LVL528: 7708 .L511: 3509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7709 .loc 1 3509 12 view .LVU2694 7710 00b4 4FF00008 mov r8, #0 7711 00b8 E9E7 b .L496 7712 .LVL529: 7713 .L512: 3562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 313 7714 .loc 1 3562 19 view .LVU2695 7715 00ba 4FF00009 mov r9, #0 7716 00be 01E0 b .L498 7717 .L513: 3507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7718 .loc 1 3507 12 view .LVU2696 7719 00c0 DFF81C91 ldr r9, .L516+16 7720 .L498: 7721 .LVL530: 3576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7722 .loc 1 3576 5 is_stmt 1 view .LVU2697 3576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7723 .loc 1 3576 13 is_stmt 0 view .LVU2698 7724 00c4 228D ldrh r2, [r4, #40] 3576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7725 .loc 1 3576 8 view .LVU2699 7726 00c6 002A cmp r2, #0 7727 00c8 5AD0 beq .L499 3578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7728 .loc 1 3578 7 is_stmt 1 view .LVU2700 3578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7729 .loc 1 3578 15 is_stmt 0 view .LVU2701 7730 00ca A36B ldr r3, [r4, #56] 3578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7731 .loc 1 3578 10 view .LVU2702 7732 00cc FBB1 cbz r3, .L500 3581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7733 .loc 1 3581 9 is_stmt 1 view .LVU2703 3581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7734 .loc 1 3581 40 is_stmt 0 view .LVU2704 7735 00ce 414A ldr r2, .L516+4 7736 00d0 DA63 str r2, [r3, #60] 3584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7737 .loc 1 3584 9 is_stmt 1 view .LVU2705 3584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7738 .loc 1 3584 13 is_stmt 0 view .LVU2706 7739 00d2 A36B ldr r3, [r4, #56] 3584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7740 .loc 1 3584 41 view .LVU2707 7741 00d4 404A ldr r2, .L516+8 7742 00d6 DA64 str r2, [r3, #76] 3587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7743 .loc 1 3587 9 is_stmt 1 view .LVU2708 3587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7744 .loc 1 3587 13 is_stmt 0 view .LVU2709 7745 00d8 A26B ldr r2, [r4, #56] 3587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7746 .loc 1 3587 44 view .LVU2710 7747 00da 0023 movs r3, #0 7748 00dc 1364 str r3, [r2, #64] 3588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7749 .loc 1 3588 9 is_stmt 1 view .LVU2711 3588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7750 .loc 1 3588 13 is_stmt 0 view .LVU2712 7751 00de A26B ldr r2, [r4, #56] 3588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7752 .loc 1 3588 41 view .LVU2713 ARM GAS /tmp/ccSHpINd.s page 314 7753 00e0 1365 str r3, [r2, #80] 3591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 7754 .loc 1 3591 9 is_stmt 1 view .LVU2714 3592:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7755 .loc 1 3592 57 is_stmt 0 view .LVU2715 7756 00e2 2268 ldr r2, [r4] 3591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 7757 .loc 1 3591 25 view .LVU2716 7758 00e4 238D ldrh r3, [r4, #40] 7759 00e6 2832 adds r2, r2, #40 7760 00e8 616A ldr r1, [r4, #36] 7761 00ea A06B ldr r0, [r4, #56] 7762 00ec FFF7FEFF bl HAL_DMA_Start_IT 7763 .LVL531: 3609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7764 .loc 1 3609 7 is_stmt 1 view .LVU2717 3609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7765 .loc 1 3609 10 is_stmt 0 view .LVU2718 7766 00f0 D8B1 cbz r0, .L501 3639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7767 .loc 1 3639 9 is_stmt 1 view .LVU2719 3639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7768 .loc 1 3639 25 is_stmt 0 view .LVU2720 7769 00f2 2023 movs r3, #32 7770 00f4 84F84130 strb r3, [r4, #65] 3640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7771 .loc 1 3640 9 is_stmt 1 view .LVU2721 3640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7772 .loc 1 3640 25 is_stmt 0 view .LVU2722 7773 00f8 0022 movs r2, #0 7774 00fa 84F84220 strb r2, [r4, #66] 3643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7775 .loc 1 3643 9 is_stmt 1 view .LVU2723 3643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7776 .loc 1 3643 13 is_stmt 0 view .LVU2724 7777 00fe 636C ldr r3, [r4, #68] 3643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7778 .loc 1 3643 25 view .LVU2725 7779 0100 43F01003 orr r3, r3, #16 7780 0104 6364 str r3, [r4, #68] 3646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7781 .loc 1 3646 9 is_stmt 1 view .LVU2726 3646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7782 .loc 1 3646 9 view .LVU2727 7783 0106 84F84020 strb r2, [r4, #64] 3646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7784 .loc 1 3646 9 view .LVU2728 3648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7785 .loc 1 3648 9 view .LVU2729 3648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7786 .loc 1 3648 16 is_stmt 0 view .LVU2730 7787 010a 0120 movs r0, #1 7788 .LVL532: 3648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7789 .loc 1 3648 16 view .LVU2731 7790 010c 5BE0 b .L493 7791 .LVL533: ARM GAS /tmp/ccSHpINd.s page 315 7792 .L500: 3597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7793 .loc 1 3597 9 is_stmt 1 view .LVU2732 3597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7794 .loc 1 3597 25 is_stmt 0 view .LVU2733 7795 010e 2023 movs r3, #32 7796 0110 84F84130 strb r3, [r4, #65] 3598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7797 .loc 1 3598 9 is_stmt 1 view .LVU2734 3598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7798 .loc 1 3598 25 is_stmt 0 view .LVU2735 7799 0114 0022 movs r2, #0 7800 0116 84F84220 strb r2, [r4, #66] 3601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7801 .loc 1 3601 9 is_stmt 1 view .LVU2736 3601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7802 .loc 1 3601 13 is_stmt 0 view .LVU2737 7803 011a 636C ldr r3, [r4, #68] 3601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7804 .loc 1 3601 25 view .LVU2738 7805 011c 43F08003 orr r3, r3, #128 7806 0120 6364 str r3, [r4, #68] 3604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7807 .loc 1 3604 9 is_stmt 1 view .LVU2739 3604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7808 .loc 1 3604 9 view .LVU2740 7809 0122 84F84020 strb r2, [r4, #64] 3604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7810 .loc 1 3604 9 view .LVU2741 3606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7811 .loc 1 3606 9 view .LVU2742 3606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7812 .loc 1 3606 16 is_stmt 0 view .LVU2743 7813 0126 0120 movs r0, #1 7814 0128 4DE0 b .L493 7815 .LVL534: 7816 .L501: 3612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7817 .loc 1 3612 9 is_stmt 1 view .LVU2744 3612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7818 .loc 1 3612 12 is_stmt 0 view .LVU2745 7819 012a B6F1007F cmp r6, #33554432 7820 012e 18BF it ne 7821 0130 002E cmpne r6, #0 7822 0132 1BD1 bne .L503 3614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7823 .loc 1 3614 11 is_stmt 1 view .LVU2746 7824 0134 CDF80090 str r9, [sp] 7825 0138 3B46 mov r3, r7 7826 013a 5FFA88F2 uxtb r2, r8 7827 013e 2946 mov r1, r5 7828 0140 2046 mov r0, r4 7829 .LVL535: 3614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7830 .loc 1 3614 11 is_stmt 0 view .LVU2747 7831 0142 FFF7FEFF bl I2C_TransferConfig 7832 .LVL536: ARM GAS /tmp/ccSHpINd.s page 316 7833 .L504: 3622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7834 .loc 1 3622 9 is_stmt 1 view .LVU2748 3622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7835 .loc 1 3622 13 is_stmt 0 view .LVU2749 7836 0146 638D ldrh r3, [r4, #42] 7837 0148 9BB2 uxth r3, r3 3622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7838 .loc 1 3622 32 view .LVU2750 7839 014a 228D ldrh r2, [r4, #40] 3622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7840 .loc 1 3622 25 view .LVU2751 7841 014c 9B1A subs r3, r3, r2 7842 014e 9BB2 uxth r3, r3 7843 0150 6385 strh r3, [r4, #42] @ movhi 3625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7844 .loc 1 3625 9 is_stmt 1 view .LVU2752 3625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7845 .loc 1 3625 9 view .LVU2753 7846 0152 0023 movs r3, #0 7847 0154 84F84030 strb r3, [r4, #64] 3625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7848 .loc 1 3625 9 view .LVU2754 3631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7849 .loc 1 3631 9 view .LVU2755 7850 0158 1021 movs r1, #16 7851 015a 2046 mov r0, r4 7852 015c FFF7FEFF bl I2C_Enable_IRQ 7853 .LVL537: 3634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7854 .loc 1 3634 9 view .LVU2756 3634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7855 .loc 1 3634 13 is_stmt 0 view .LVU2757 7856 0160 2268 ldr r2, [r4] 3634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7857 .loc 1 3634 23 view .LVU2758 7858 0162 1368 ldr r3, [r2] 3634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7859 .loc 1 3634 29 view .LVU2759 7860 0164 43F48043 orr r3, r3, #16384 7861 0168 1360 str r3, [r2] 7862 016a 20E0 b .L505 7863 .LVL538: 7864 .L503: 3618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7865 .loc 1 3618 11 is_stmt 1 view .LVU2760 7866 016c CDF80090 str r9, [sp] 7867 0170 3B46 mov r3, r7 7868 0172 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7869 0176 2946 mov r1, r5 7870 0178 2046 mov r0, r4 7871 .LVL539: 3618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7872 .loc 1 3618 11 is_stmt 0 view .LVU2761 7873 017a FFF7FEFF bl I2C_TransferConfig 7874 .LVL540: 7875 017e E2E7 b .L504 ARM GAS /tmp/ccSHpINd.s page 317 7876 .LVL541: 7877 .L499: 3654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7878 .loc 1 3654 7 is_stmt 1 view .LVU2762 3654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7879 .loc 1 3654 21 is_stmt 0 view .LVU2763 7880 0180 164B ldr r3, .L516+12 7881 0182 6363 str r3, [r4, #52] 3658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7882 .loc 1 3658 7 is_stmt 1 view .LVU2764 3658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7883 .loc 1 3658 10 is_stmt 0 view .LVU2765 7884 0184 B6F1007F cmp r6, #33554432 7885 0188 18BF it ne 7886 018a 002E cmpne r6, #0 7887 018c 11D1 bne .L506 3660:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7888 .loc 1 3660 9 is_stmt 1 view .LVU2766 7889 018e CDF80090 str r9, [sp] 7890 0192 3B46 mov r3, r7 7891 0194 5FFA88F2 uxtb r2, r8 7892 0198 2946 mov r1, r5 7893 019a 2046 mov r0, r4 7894 019c FFF7FEFF bl I2C_TransferConfig 7895 .LVL542: 7896 .L507: 3668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7897 .loc 1 3668 7 view .LVU2767 3668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7898 .loc 1 3668 7 view .LVU2768 7899 01a0 0023 movs r3, #0 7900 01a2 84F84030 strb r3, [r4, #64] 3668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7901 .loc 1 3668 7 view .LVU2769 3677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7902 .loc 1 3677 7 view .LVU2770 7903 01a6 0121 movs r1, #1 7904 01a8 2046 mov r0, r4 7905 01aa FFF7FEFF bl I2C_Enable_IRQ 7906 .LVL543: 7907 .L505: 3680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7908 .loc 1 3680 5 view .LVU2771 3680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7909 .loc 1 3680 12 is_stmt 0 view .LVU2772 7910 01ae 0020 movs r0, #0 7911 01b0 09E0 b .L493 7912 .L506: 3664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7913 .loc 1 3664 9 is_stmt 1 view .LVU2773 7914 01b2 CDF80090 str r9, [sp] 7915 01b6 3B46 mov r3, r7 7916 01b8 D2B2 uxtb r2, r2 7917 01ba 2946 mov r1, r5 7918 01bc 2046 mov r0, r4 7919 01be FFF7FEFF bl I2C_TransferConfig 7920 .LVL544: ARM GAS /tmp/ccSHpINd.s page 318 7921 01c2 EDE7 b .L507 7922 .LVL545: 7923 .L508: 3684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7924 .loc 1 3684 12 is_stmt 0 view .LVU2774 7925 01c4 0220 movs r0, #2 7926 .LVL546: 7927 .L493: 3686:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7928 .loc 1 3686 1 view .LVU2775 7929 01c6 03B0 add sp, sp, #12 7930 .LCFI92: 7931 .cfi_remember_state 7932 .cfi_def_cfa_offset 28 7933 @ sp needed 7934 01c8 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 7935 .LVL547: 7936 .L509: 7937 .LCFI93: 7938 .cfi_restore_state 3517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7939 .loc 1 3517 5 discriminator 1 view .LVU2776 7940 01cc 0220 movs r0, #2 7941 01ce FAE7 b .L493 7942 .L517: 7943 .align 2 7944 .L516: 7945 01d0 00000000 .word I2C_Master_ISR_DMA 7946 01d4 00000000 .word I2C_DMAMasterTransmitCplt 7947 01d8 00000000 .word I2C_DMAError 7948 01dc 00000000 .word I2C_Master_ISR_IT 7949 01e0 00200080 .word -2147475456 7950 .cfi_endproc 7951 .LFE165: 7953 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits 7954 .align 1 7955 .global HAL_I2C_Master_Seq_Receive_IT 7956 .syntax unified 7957 .thumb 7958 .thumb_func 7960 HAL_I2C_Master_Seq_Receive_IT: 7961 .LVL548: 7962 .LFB166: 3702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 7963 .loc 1 3702 1 is_stmt 1 view -0 7964 .cfi_startproc 7965 @ args = 4, pretend = 0, frame = 0 7966 @ frame_needed = 0, uses_anonymous_args = 0 3702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 7967 .loc 1 3702 1 is_stmt 0 view .LVU2778 7968 0000 70B5 push {r4, r5, r6, lr} 7969 .LCFI94: 7970 .cfi_def_cfa_offset 16 7971 .cfi_offset 4, -16 7972 .cfi_offset 5, -12 7973 .cfi_offset 6, -8 7974 .cfi_offset 14, -4 ARM GAS /tmp/ccSHpINd.s page 319 7975 0002 82B0 sub sp, sp, #8 7976 .LCFI95: 7977 .cfi_def_cfa_offset 24 7978 0004 0446 mov r4, r0 7979 0006 0D46 mov r5, r1 7980 0008 0699 ldr r1, [sp, #24] 7981 .LVL549: 3703:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 7982 .loc 1 3703 3 is_stmt 1 view .LVU2779 3704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7983 .loc 1 3704 3 view .LVU2780 3707:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7984 .loc 1 3707 3 view .LVU2781 3709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7985 .loc 1 3709 3 view .LVU2782 3709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7986 .loc 1 3709 11 is_stmt 0 view .LVU2783 7987 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7988 .LVL550: 3709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7989 .loc 1 3709 11 view .LVU2784 7990 000e C0B2 uxtb r0, r0 3709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7991 .loc 1 3709 6 view .LVU2785 7992 0010 2028 cmp r0, #32 7993 0012 46D1 bne .L524 3712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7994 .loc 1 3712 5 is_stmt 1 view .LVU2786 3712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7995 .loc 1 3712 5 view .LVU2787 7996 0014 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 7997 0018 0128 cmp r0, #1 7998 001a 44D0 beq .L525 3712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7999 .loc 1 3712 5 discriminator 2 view .LVU2788 8000 001c 0120 movs r0, #1 8001 001e 84F84000 strb r0, [r4, #64] 3712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8002 .loc 1 3712 5 discriminator 2 view .LVU2789 3714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8003 .loc 1 3714 5 view .LVU2790 3714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8004 .loc 1 3714 21 is_stmt 0 view .LVU2791 8005 0022 2220 movs r0, #34 8006 0024 84F84100 strb r0, [r4, #65] 3715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8007 .loc 1 3715 5 is_stmt 1 view .LVU2792 3715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8008 .loc 1 3715 21 is_stmt 0 view .LVU2793 8009 0028 1020 movs r0, #16 8010 002a 84F84200 strb r0, [r4, #66] 3716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8011 .loc 1 3716 5 is_stmt 1 view .LVU2794 3716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8012 .loc 1 3716 21 is_stmt 0 view .LVU2795 8013 002e 0020 movs r0, #0 8014 0030 6064 str r0, [r4, #68] ARM GAS /tmp/ccSHpINd.s page 320 3719:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 8015 .loc 1 3719 5 is_stmt 1 view .LVU2796 3719:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 8016 .loc 1 3719 23 is_stmt 0 view .LVU2797 8017 0032 6262 str r2, [r4, #36] 3720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8018 .loc 1 3720 5 is_stmt 1 view .LVU2798 3720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8019 .loc 1 3720 23 is_stmt 0 view .LVU2799 8020 0034 6385 strh r3, [r4, #42] @ movhi 3721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 8021 .loc 1 3721 5 is_stmt 1 view .LVU2800 3721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 8022 .loc 1 3721 23 is_stmt 0 view .LVU2801 8023 0036 E162 str r1, [r4, #44] 3722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8024 .loc 1 3722 5 is_stmt 1 view .LVU2802 3722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8025 .loc 1 3722 23 is_stmt 0 view .LVU2803 8026 0038 1C4B ldr r3, .L529 8027 .LVL551: 3722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8028 .loc 1 3722 23 view .LVU2804 8029 003a 6363 str r3, [r4, #52] 3725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8030 .loc 1 3725 5 is_stmt 1 view .LVU2805 3725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8031 .loc 1 3725 13 is_stmt 0 view .LVU2806 8032 003c 638D ldrh r3, [r4, #42] 8033 003e 9BB2 uxth r3, r3 3725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8034 .loc 1 3725 8 view .LVU2807 8035 0040 FF2B cmp r3, #255 8036 0042 26D9 bls .L520 3727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8037 .loc 1 3727 7 is_stmt 1 view .LVU2808 3727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8038 .loc 1 3727 22 is_stmt 0 view .LVU2809 8039 0044 FF23 movs r3, #255 8040 0046 2385 strh r3, [r4, #40] @ movhi 3728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8041 .loc 1 3728 7 is_stmt 1 view .LVU2810 8042 .LVL552: 3728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8043 .loc 1 3728 16 is_stmt 0 view .LVU2811 8044 0048 4FF08076 mov r6, #16777216 8045 .LVL553: 8046 .L521: 3739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8047 .loc 1 3739 5 is_stmt 1 view .LVU2812 3739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8048 .loc 1 3739 14 is_stmt 0 view .LVU2813 8049 004c 236B ldr r3, [r4, #48] 3739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8050 .loc 1 3739 8 view .LVU2814 8051 004e 122B cmp r3, #18 8052 0050 04D1 bne .L522 ARM GAS /tmp/ccSHpINd.s page 321 3739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8053 .loc 1 3739 59 discriminator 1 view .LVU2815 8054 0052 B1F52A4F cmp r1, #43520 8055 0056 18BF it ne 8056 0058 AA29 cmpne r1, #170 8057 005a 1ED1 bne .L526 8058 .L522: 3747:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8059 .loc 1 3747 7 is_stmt 1 view .LVU2816 8060 005c 2046 mov r0, r4 8061 005e FFF7FEFF bl I2C_ConvertOtherXferOptions 8062 .LVL554: 3750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8063 .loc 1 3750 7 view .LVU2817 3750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8064 .loc 1 3750 15 is_stmt 0 view .LVU2818 8065 0062 638D ldrh r3, [r4, #42] 8066 0064 9BB2 uxth r3, r3 3750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8067 .loc 1 3750 10 view .LVU2819 8068 0066 FF2B cmp r3, #255 8069 0068 19D8 bhi .L527 3752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8070 .loc 1 3752 9 is_stmt 1 view .LVU2820 3752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8071 .loc 1 3752 18 is_stmt 0 view .LVU2821 8072 006a E66A ldr r6, [r4, #44] 8073 .LVL555: 3704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8074 .loc 1 3704 12 view .LVU2822 8075 006c 104B ldr r3, .L529+4 8076 .L523: 8077 .LVL556: 3757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8078 .loc 1 3757 5 is_stmt 1 view .LVU2823 8079 006e 0093 str r3, [sp] 8080 0070 3346 mov r3, r6 8081 .LVL557: 3757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8082 .loc 1 3757 5 is_stmt 0 view .LVU2824 8083 0072 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 8084 0076 2946 mov r1, r5 8085 0078 2046 mov r0, r4 8086 007a FFF7FEFF bl I2C_TransferConfig 8087 .LVL558: 3760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8088 .loc 1 3760 5 is_stmt 1 view .LVU2825 3760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8089 .loc 1 3760 5 view .LVU2826 8090 007e 0025 movs r5, #0 8091 .LVL559: 3760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8092 .loc 1 3760 5 is_stmt 0 view .LVU2827 8093 0080 84F84050 strb r5, [r4, #64] 3760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8094 .loc 1 3760 5 is_stmt 1 view .LVU2828 3765:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 322 8095 .loc 1 3765 5 view .LVU2829 8096 0084 0221 movs r1, #2 8097 0086 2046 mov r0, r4 8098 0088 FFF7FEFF bl I2C_Enable_IRQ 8099 .LVL560: 3767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8100 .loc 1 3767 5 view .LVU2830 3767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8101 .loc 1 3767 12 is_stmt 0 view .LVU2831 8102 008c 2846 mov r0, r5 8103 .LVL561: 8104 .L519: 3773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8105 .loc 1 3773 1 view .LVU2832 8106 008e 02B0 add sp, sp, #8 8107 .LCFI96: 8108 .cfi_remember_state 8109 .cfi_def_cfa_offset 16 8110 @ sp needed 8111 0090 70BD pop {r4, r5, r6, pc} 8112 .LVL562: 8113 .L520: 8114 .LCFI97: 8115 .cfi_restore_state 3732:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8116 .loc 1 3732 7 is_stmt 1 view .LVU2833 3732:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8117 .loc 1 3732 28 is_stmt 0 view .LVU2834 8118 0092 638D ldrh r3, [r4, #42] 3732:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8119 .loc 1 3732 22 view .LVU2835 8120 0094 2385 strh r3, [r4, #40] @ movhi 3733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8121 .loc 1 3733 7 is_stmt 1 view .LVU2836 3733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8122 .loc 1 3733 16 is_stmt 0 view .LVU2837 8123 0096 E66A ldr r6, [r4, #44] 8124 .LVL563: 3733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8125 .loc 1 3733 16 view .LVU2838 8126 0098 D8E7 b .L521 8127 .L526: 3742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8128 .loc 1 3742 19 view .LVU2839 8129 009a 0023 movs r3, #0 8130 009c E7E7 b .L523 8131 .LVL564: 8132 .L527: 3704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8133 .loc 1 3704 12 view .LVU2840 8134 009e 044B ldr r3, .L529+4 8135 00a0 E5E7 b .L523 8136 .LVL565: 8137 .L524: 3771:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8138 .loc 1 3771 12 view .LVU2841 8139 00a2 0220 movs r0, #2 ARM GAS /tmp/ccSHpINd.s page 323 8140 00a4 F3E7 b .L519 8141 .L525: 3712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8142 .loc 1 3712 5 discriminator 1 view .LVU2842 8143 00a6 0220 movs r0, #2 8144 00a8 F1E7 b .L519 8145 .L530: 8146 00aa 00BF .align 2 8147 .L529: 8148 00ac 00000000 .word I2C_Master_ISR_IT 8149 00b0 00240080 .word -2147474432 8150 .cfi_endproc 8151 .LFE166: 8153 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits 8154 .align 1 8155 .global HAL_I2C_Master_Seq_Receive_DMA 8156 .syntax unified 8157 .thumb 8158 .thumb_func 8160 HAL_I2C_Master_Seq_Receive_DMA: 8161 .LVL566: 8162 .LFB167: 3789:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 8163 .loc 1 3789 1 is_stmt 1 view -0 8164 .cfi_startproc 8165 @ args = 4, pretend = 0, frame = 0 8166 @ frame_needed = 0, uses_anonymous_args = 0 3789:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 8167 .loc 1 3789 1 is_stmt 0 view .LVU2844 8168 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 8169 .LCFI98: 8170 .cfi_def_cfa_offset 24 8171 .cfi_offset 4, -24 8172 .cfi_offset 5, -20 8173 .cfi_offset 6, -16 8174 .cfi_offset 7, -12 8175 .cfi_offset 8, -8 8176 .cfi_offset 14, -4 8177 0004 82B0 sub sp, sp, #8 8178 .LCFI99: 8179 .cfi_def_cfa_offset 32 8180 0006 0446 mov r4, r0 8181 0008 1546 mov r5, r2 8182 000a 089A ldr r2, [sp, #32] 8183 .LVL567: 3790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 8184 .loc 1 3790 3 is_stmt 1 view .LVU2845 3791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8185 .loc 1 3791 3 view .LVU2846 3792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8186 .loc 1 3792 3 view .LVU2847 3795:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8187 .loc 1 3795 3 view .LVU2848 3797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8188 .loc 1 3797 3 view .LVU2849 3797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8189 .loc 1 3797 11 is_stmt 0 view .LVU2850 ARM GAS /tmp/ccSHpINd.s page 324 8190 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8191 .LVL568: 3797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8192 .loc 1 3797 11 view .LVU2851 8193 0010 C0B2 uxtb r0, r0 3797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8194 .loc 1 3797 6 view .LVU2852 8195 0012 2028 cmp r0, #32 8196 0014 40F09D80 bne .L542 8197 0018 0E46 mov r6, r1 3800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8198 .loc 1 3800 5 is_stmt 1 view .LVU2853 3800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8199 .loc 1 3800 5 view .LVU2854 8200 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 8201 .LVL569: 3800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8202 .loc 1 3800 5 is_stmt 0 view .LVU2855 8203 001e 0129 cmp r1, #1 8204 0020 00F09B80 beq .L543 3800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8205 .loc 1 3800 5 is_stmt 1 discriminator 2 view .LVU2856 8206 0024 0121 movs r1, #1 8207 0026 84F84010 strb r1, [r4, #64] 3800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8208 .loc 1 3800 5 discriminator 2 view .LVU2857 3802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8209 .loc 1 3802 5 view .LVU2858 3802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8210 .loc 1 3802 21 is_stmt 0 view .LVU2859 8211 002a 2221 movs r1, #34 8212 002c 84F84110 strb r1, [r4, #65] 3803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8213 .loc 1 3803 5 is_stmt 1 view .LVU2860 3803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8214 .loc 1 3803 21 is_stmt 0 view .LVU2861 8215 0030 1021 movs r1, #16 8216 0032 84F84210 strb r1, [r4, #66] 3804:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8217 .loc 1 3804 5 is_stmt 1 view .LVU2862 3804:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8218 .loc 1 3804 21 is_stmt 0 view .LVU2863 8219 0036 0021 movs r1, #0 8220 0038 6164 str r1, [r4, #68] 3807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 8221 .loc 1 3807 5 is_stmt 1 view .LVU2864 3807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 8222 .loc 1 3807 23 is_stmt 0 view .LVU2865 8223 003a 6562 str r5, [r4, #36] 3808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8224 .loc 1 3808 5 is_stmt 1 view .LVU2866 3808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8225 .loc 1 3808 23 is_stmt 0 view .LVU2867 8226 003c 6385 strh r3, [r4, #42] @ movhi 3809:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8227 .loc 1 3809 5 is_stmt 1 view .LVU2868 3809:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; ARM GAS /tmp/ccSHpINd.s page 325 8228 .loc 1 3809 23 is_stmt 0 view .LVU2869 8229 003e E262 str r2, [r4, #44] 3810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8230 .loc 1 3810 5 is_stmt 1 view .LVU2870 3810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8231 .loc 1 3810 23 is_stmt 0 view .LVU2871 8232 0040 474B ldr r3, .L549 8233 .LVL570: 3810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8234 .loc 1 3810 23 view .LVU2872 8235 0042 6363 str r3, [r4, #52] 3813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8236 .loc 1 3813 5 is_stmt 1 view .LVU2873 3813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8237 .loc 1 3813 13 is_stmt 0 view .LVU2874 8238 0044 638D ldrh r3, [r4, #42] 8239 0046 9BB2 uxth r3, r3 3813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8240 .loc 1 3813 8 view .LVU2875 8241 0048 FF2B cmp r3, #255 8242 004a 3AD9 bls .L533 3815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8243 .loc 1 3815 7 is_stmt 1 view .LVU2876 3815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8244 .loc 1 3815 22 is_stmt 0 view .LVU2877 8245 004c FF23 movs r3, #255 8246 004e 2385 strh r3, [r4, #40] @ movhi 3816:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8247 .loc 1 3816 7 is_stmt 1 view .LVU2878 8248 .LVL571: 3816:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8249 .loc 1 3816 16 is_stmt 0 view .LVU2879 8250 0050 4FF08077 mov r7, #16777216 8251 .LVL572: 8252 .L534: 3827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8253 .loc 1 3827 5 is_stmt 1 view .LVU2880 3827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8254 .loc 1 3827 14 is_stmt 0 view .LVU2881 8255 0054 236B ldr r3, [r4, #48] 3827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8256 .loc 1 3827 8 view .LVU2882 8257 0056 122B cmp r3, #18 8258 0058 04D1 bne .L535 3827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8259 .loc 1 3827 59 discriminator 1 view .LVU2883 8260 005a B2F52A4F cmp r2, #43520 8261 005e 18BF it ne 8262 0060 AA2A cmpne r2, #170 8263 0062 32D1 bne .L544 8264 .L535: 3835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8265 .loc 1 3835 7 is_stmt 1 view .LVU2884 8266 0064 2046 mov r0, r4 8267 0066 FFF7FEFF bl I2C_ConvertOtherXferOptions 8268 .LVL573: 3838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 326 8269 .loc 1 3838 7 view .LVU2885 3838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8270 .loc 1 3838 15 is_stmt 0 view .LVU2886 8271 006a 638D ldrh r3, [r4, #42] 8272 006c 9BB2 uxth r3, r3 3838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8273 .loc 1 3838 10 view .LVU2887 8274 006e FF2B cmp r3, #255 8275 0070 2ED8 bhi .L545 3840:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8276 .loc 1 3840 9 is_stmt 1 view .LVU2888 3840:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8277 .loc 1 3840 18 is_stmt 0 view .LVU2889 8278 0072 E76A ldr r7, [r4, #44] 8279 .LVL574: 3791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8280 .loc 1 3791 12 view .LVU2890 8281 0074 DFF8F880 ldr r8, .L549+16 8282 .L536: 8283 .LVL575: 3844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8284 .loc 1 3844 5 is_stmt 1 view .LVU2891 3844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8285 .loc 1 3844 13 is_stmt 0 view .LVU2892 8286 0078 228D ldrh r2, [r4, #40] 3844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8287 .loc 1 3844 8 view .LVU2893 8288 007a 002A cmp r2, #0 8289 007c 55D0 beq .L537 3846:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8290 .loc 1 3846 7 is_stmt 1 view .LVU2894 3846:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8291 .loc 1 3846 15 is_stmt 0 view .LVU2895 8292 007e E36B ldr r3, [r4, #60] 3846:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8293 .loc 1 3846 10 view .LVU2896 8294 0080 4BB3 cbz r3, .L538 3849:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8295 .loc 1 3849 9 is_stmt 1 view .LVU2897 3849:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8296 .loc 1 3849 40 is_stmt 0 view .LVU2898 8297 0082 384A ldr r2, .L549+4 8298 0084 DA63 str r2, [r3, #60] 3852:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8299 .loc 1 3852 9 is_stmt 1 view .LVU2899 3852:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8300 .loc 1 3852 13 is_stmt 0 view .LVU2900 8301 0086 E36B ldr r3, [r4, #60] 3852:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8302 .loc 1 3852 41 view .LVU2901 8303 0088 374A ldr r2, .L549+8 8304 008a DA64 str r2, [r3, #76] 3855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8305 .loc 1 3855 9 is_stmt 1 view .LVU2902 3855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8306 .loc 1 3855 13 is_stmt 0 view .LVU2903 8307 008c E26B ldr r2, [r4, #60] ARM GAS /tmp/ccSHpINd.s page 327 3855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8308 .loc 1 3855 44 view .LVU2904 8309 008e 0023 movs r3, #0 8310 0090 1364 str r3, [r2, #64] 3856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8311 .loc 1 3856 9 is_stmt 1 view .LVU2905 3856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8312 .loc 1 3856 13 is_stmt 0 view .LVU2906 8313 0092 E26B ldr r2, [r4, #60] 3856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8314 .loc 1 3856 41 view .LVU2907 8315 0094 1365 str r3, [r2, #80] 3859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 8316 .loc 1 3859 9 is_stmt 1 view .LVU2908 3859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 8317 .loc 1 3859 71 is_stmt 0 view .LVU2909 8318 0096 2168 ldr r1, [r4] 3859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 8319 .loc 1 3859 25 view .LVU2910 8320 0098 238D ldrh r3, [r4, #40] 8321 009a 2A46 mov r2, r5 8322 009c 2431 adds r1, r1, #36 8323 009e E06B ldr r0, [r4, #60] 8324 00a0 FFF7FEFF bl HAL_DMA_Start_IT 8325 .LVL576: 3877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8326 .loc 1 3877 7 is_stmt 1 view .LVU2911 3877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8327 .loc 1 3877 10 is_stmt 0 view .LVU2912 8328 00a4 28B3 cbz r0, .L548 3900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8329 .loc 1 3900 9 is_stmt 1 view .LVU2913 3900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8330 .loc 1 3900 25 is_stmt 0 view .LVU2914 8331 00a6 2023 movs r3, #32 8332 00a8 84F84130 strb r3, [r4, #65] 3901:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8333 .loc 1 3901 9 is_stmt 1 view .LVU2915 3901:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8334 .loc 1 3901 25 is_stmt 0 view .LVU2916 8335 00ac 0022 movs r2, #0 8336 00ae 84F84220 strb r2, [r4, #66] 3904:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8337 .loc 1 3904 9 is_stmt 1 view .LVU2917 3904:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8338 .loc 1 3904 13 is_stmt 0 view .LVU2918 8339 00b2 636C ldr r3, [r4, #68] 3904:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8340 .loc 1 3904 25 view .LVU2919 8341 00b4 43F01003 orr r3, r3, #16 8342 00b8 6364 str r3, [r4, #68] 3907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8343 .loc 1 3907 9 is_stmt 1 view .LVU2920 3907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8344 .loc 1 3907 9 view .LVU2921 8345 00ba 84F84020 strb r2, [r4, #64] 3907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 328 8346 .loc 1 3907 9 view .LVU2922 3909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8347 .loc 1 3909 9 view .LVU2923 3909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8348 .loc 1 3909 16 is_stmt 0 view .LVU2924 8349 00be 0120 movs r0, #1 8350 .LVL577: 3909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8351 .loc 1 3909 16 view .LVU2925 8352 00c0 48E0 b .L532 8353 .LVL578: 8354 .L533: 3820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8355 .loc 1 3820 7 is_stmt 1 view .LVU2926 3820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8356 .loc 1 3820 28 is_stmt 0 view .LVU2927 8357 00c2 638D ldrh r3, [r4, #42] 3820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8358 .loc 1 3820 22 view .LVU2928 8359 00c4 2385 strh r3, [r4, #40] @ movhi 3821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8360 .loc 1 3821 7 is_stmt 1 view .LVU2929 3821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8361 .loc 1 3821 16 is_stmt 0 view .LVU2930 8362 00c6 E76A ldr r7, [r4, #44] 8363 .LVL579: 3821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8364 .loc 1 3821 16 view .LVU2931 8365 00c8 C4E7 b .L534 8366 .L544: 3830:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8367 .loc 1 3830 19 view .LVU2932 8368 00ca 4FF00008 mov r8, #0 8369 00ce D3E7 b .L536 8370 .L545: 3791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8371 .loc 1 3791 12 view .LVU2933 8372 00d0 DFF89C80 ldr r8, .L549+16 8373 00d4 D0E7 b .L536 8374 .LVL580: 8375 .L538: 3865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8376 .loc 1 3865 9 is_stmt 1 view .LVU2934 3865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8377 .loc 1 3865 25 is_stmt 0 view .LVU2935 8378 00d6 2023 movs r3, #32 8379 00d8 84F84130 strb r3, [r4, #65] 3866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8380 .loc 1 3866 9 is_stmt 1 view .LVU2936 3866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8381 .loc 1 3866 25 is_stmt 0 view .LVU2937 8382 00dc 0022 movs r2, #0 8383 00de 84F84220 strb r2, [r4, #66] 3869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8384 .loc 1 3869 9 is_stmt 1 view .LVU2938 3869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8385 .loc 1 3869 13 is_stmt 0 view .LVU2939 ARM GAS /tmp/ccSHpINd.s page 329 8386 00e2 636C ldr r3, [r4, #68] 3869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8387 .loc 1 3869 25 view .LVU2940 8388 00e4 43F08003 orr r3, r3, #128 8389 00e8 6364 str r3, [r4, #68] 3872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8390 .loc 1 3872 9 is_stmt 1 view .LVU2941 3872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8391 .loc 1 3872 9 view .LVU2942 8392 00ea 84F84020 strb r2, [r4, #64] 3872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8393 .loc 1 3872 9 view .LVU2943 3874:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8394 .loc 1 3874 9 view .LVU2944 3874:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8395 .loc 1 3874 16 is_stmt 0 view .LVU2945 8396 00ee 0120 movs r0, #1 8397 00f0 30E0 b .L532 8398 .LVL581: 8399 .L548: 3880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8400 .loc 1 3880 9 is_stmt 1 view .LVU2946 8401 00f2 CDF80080 str r8, [sp] 8402 00f6 3B46 mov r3, r7 8403 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 8404 00fc 3146 mov r1, r6 8405 00fe 2046 mov r0, r4 8406 .LVL582: 3880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8407 .loc 1 3880 9 is_stmt 0 view .LVU2947 8408 0100 FFF7FEFF bl I2C_TransferConfig 8409 .LVL583: 3883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8410 .loc 1 3883 9 is_stmt 1 view .LVU2948 3883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8411 .loc 1 3883 13 is_stmt 0 view .LVU2949 8412 0104 638D ldrh r3, [r4, #42] 8413 0106 9BB2 uxth r3, r3 3883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8414 .loc 1 3883 32 view .LVU2950 8415 0108 228D ldrh r2, [r4, #40] 3883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8416 .loc 1 3883 25 view .LVU2951 8417 010a 9B1A subs r3, r3, r2 8418 010c 9BB2 uxth r3, r3 8419 010e 6385 strh r3, [r4, #42] @ movhi 3886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8420 .loc 1 3886 9 is_stmt 1 view .LVU2952 3886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8421 .loc 1 3886 9 view .LVU2953 8422 0110 0023 movs r3, #0 8423 0112 84F84030 strb r3, [r4, #64] 3886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8424 .loc 1 3886 9 view .LVU2954 3892:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8425 .loc 1 3892 9 view .LVU2955 8426 0116 1021 movs r1, #16 ARM GAS /tmp/ccSHpINd.s page 330 8427 0118 2046 mov r0, r4 8428 011a FFF7FEFF bl I2C_Enable_IRQ 8429 .LVL584: 3895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8430 .loc 1 3895 9 view .LVU2956 3895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8431 .loc 1 3895 13 is_stmt 0 view .LVU2957 8432 011e 2268 ldr r2, [r4] 3895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8433 .loc 1 3895 23 view .LVU2958 8434 0120 1368 ldr r3, [r2] 3895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8435 .loc 1 3895 29 view .LVU2959 8436 0122 43F40043 orr r3, r3, #32768 8437 0126 1360 str r3, [r2] 8438 0128 11E0 b .L541 8439 .LVL585: 8440 .L537: 3915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8441 .loc 1 3915 7 is_stmt 1 view .LVU2960 3915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8442 .loc 1 3915 21 is_stmt 0 view .LVU2961 8443 012a 104B ldr r3, .L549+12 8444 012c 6363 str r3, [r4, #52] 3919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 8445 .loc 1 3919 7 is_stmt 1 view .LVU2962 8446 012e 104B ldr r3, .L549+16 8447 0130 0093 str r3, [sp] 8448 0132 4FF00073 mov r3, #33554432 8449 0136 D2B2 uxtb r2, r2 8450 0138 3146 mov r1, r6 8451 013a 2046 mov r0, r4 8452 013c FFF7FEFF bl I2C_TransferConfig 8453 .LVL586: 3923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8454 .loc 1 3923 7 view .LVU2963 3923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8455 .loc 1 3923 7 view .LVU2964 8456 0140 0023 movs r3, #0 8457 0142 84F84030 strb r3, [r4, #64] 3923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8458 .loc 1 3923 7 view .LVU2965 3932:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8459 .loc 1 3932 7 view .LVU2966 8460 0146 0221 movs r1, #2 8461 0148 2046 mov r0, r4 8462 014a FFF7FEFF bl I2C_Enable_IRQ 8463 .LVL587: 8464 .L541: 3935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8465 .loc 1 3935 5 view .LVU2967 3935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8466 .loc 1 3935 12 is_stmt 0 view .LVU2968 8467 014e 0020 movs r0, #0 8468 0150 00E0 b .L532 8469 .LVL588: 8470 .L542: ARM GAS /tmp/ccSHpINd.s page 331 3939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8471 .loc 1 3939 12 view .LVU2969 8472 0152 0220 movs r0, #2 8473 .LVL589: 8474 .L532: 3941:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8475 .loc 1 3941 1 view .LVU2970 8476 0154 02B0 add sp, sp, #8 8477 .LCFI100: 8478 .cfi_remember_state 8479 .cfi_def_cfa_offset 24 8480 @ sp needed 8481 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 8482 .LVL590: 8483 .L543: 8484 .LCFI101: 8485 .cfi_restore_state 3800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8486 .loc 1 3800 5 discriminator 1 view .LVU2971 8487 015a 0220 movs r0, #2 8488 015c FAE7 b .L532 8489 .L550: 8490 015e 00BF .align 2 8491 .L549: 8492 0160 00000000 .word I2C_Master_ISR_DMA 8493 0164 00000000 .word I2C_DMAMasterReceiveCplt 8494 0168 00000000 .word I2C_DMAError 8495 016c 00000000 .word I2C_Master_ISR_IT 8496 0170 00240080 .word -2147474432 8497 .cfi_endproc 8498 .LFE167: 8500 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits 8501 .align 1 8502 .global HAL_I2C_Slave_Seq_Transmit_IT 8503 .syntax unified 8504 .thumb 8505 .thumb_func 8507 HAL_I2C_Slave_Seq_Transmit_IT: 8508 .LVL591: 8509 .LFB168: 3955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8510 .loc 1 3955 1 is_stmt 1 view -0 8511 .cfi_startproc 8512 @ args = 0, pretend = 0, frame = 0 8513 @ frame_needed = 0, uses_anonymous_args = 0 3955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8514 .loc 1 3955 1 is_stmt 0 view .LVU2973 8515 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8516 .LCFI102: 8517 .cfi_def_cfa_offset 24 8518 .cfi_offset 3, -24 8519 .cfi_offset 4, -20 8520 .cfi_offset 5, -16 8521 .cfi_offset 6, -12 8522 .cfi_offset 7, -8 8523 .cfi_offset 14, -4 8524 0002 0446 mov r4, r0 ARM GAS /tmp/ccSHpINd.s page 332 3957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8525 .loc 1 3957 3 is_stmt 1 view .LVU2974 3960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8526 .loc 1 3960 3 view .LVU2975 3962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8527 .loc 1 3962 3 view .LVU2976 3962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8528 .loc 1 3962 22 is_stmt 0 view .LVU2977 8529 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8530 .LVL592: 3962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8531 .loc 1 3962 6 view .LVU2978 8532 0008 00F02800 and r0, r0, #40 8533 000c 2828 cmp r0, #40 8534 000e 60D1 bne .L556 8535 0010 0F46 mov r7, r1 8536 0012 1646 mov r6, r2 8537 0014 1D46 mov r5, r3 3964:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8538 .loc 1 3964 5 is_stmt 1 view .LVU2979 3964:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8539 .loc 1 3964 8 is_stmt 0 view .LVU2980 8540 0016 002A cmp r2, #0 8541 0018 18BF it ne 8542 001a 0029 cmpne r1, #0 8543 001c 04D1 bne .L553 3966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 8544 .loc 1 3966 7 is_stmt 1 view .LVU2981 3966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 8545 .loc 1 3966 23 is_stmt 0 view .LVU2982 8546 001e 4FF40073 mov r3, #512 8547 .LVL593: 3966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 8548 .loc 1 3966 23 view .LVU2983 8549 0022 6364 str r3, [r4, #68] 3967:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8550 .loc 1 3967 7 is_stmt 1 view .LVU2984 3967:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8551 .loc 1 3967 15 is_stmt 0 view .LVU2985 8552 0024 0120 movs r0, #1 8553 0026 55E0 b .L552 8554 .LVL594: 8555 .L553: 3971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8556 .loc 1 3971 5 is_stmt 1 view .LVU2986 8557 0028 48F20101 movw r1, #32769 8558 .LVL595: 3971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8559 .loc 1 3971 5 is_stmt 0 view .LVU2987 8560 002c 2046 mov r0, r4 8561 002e FFF7FEFF bl I2C_Disable_IRQ 8562 .LVL596: 3974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8563 .loc 1 3974 5 is_stmt 1 view .LVU2988 3974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8564 .loc 1 3974 5 view .LVU2989 8565 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 ARM GAS /tmp/ccSHpINd.s page 333 8566 0036 012B cmp r3, #1 8567 0038 4DD0 beq .L557 3974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8568 .loc 1 3974 5 discriminator 2 view .LVU2990 8569 003a 0123 movs r3, #1 8570 003c 84F84030 strb r3, [r4, #64] 3974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8571 .loc 1 3974 5 discriminator 2 view .LVU2991 3978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8572 .loc 1 3978 5 view .LVU2992 3978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8573 .loc 1 3978 13 is_stmt 0 view .LVU2993 8574 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8575 0044 DBB2 uxtb r3, r3 3978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8576 .loc 1 3978 8 view .LVU2994 8577 0046 2A2B cmp r3, #42 8578 0048 28D0 beq .L559 8579 .L554: 4004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8580 .loc 1 4004 5 is_stmt 1 view .LVU2995 4004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8581 .loc 1 4004 21 is_stmt 0 view .LVU2996 8582 004a 2923 movs r3, #41 8583 004c 84F84130 strb r3, [r4, #65] 4005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8584 .loc 1 4005 5 is_stmt 1 view .LVU2997 4005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8585 .loc 1 4005 21 is_stmt 0 view .LVU2998 8586 0050 2023 movs r3, #32 8587 0052 84F84230 strb r3, [r4, #66] 4006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8588 .loc 1 4006 5 is_stmt 1 view .LVU2999 4006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8589 .loc 1 4006 21 is_stmt 0 view .LVU3000 8590 0056 0023 movs r3, #0 8591 0058 6364 str r3, [r4, #68] 4009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8592 .loc 1 4009 5 is_stmt 1 view .LVU3001 4009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8593 .loc 1 4009 9 is_stmt 0 view .LVU3002 8594 005a 2268 ldr r2, [r4] 4009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8595 .loc 1 4009 19 view .LVU3003 8596 005c 5368 ldr r3, [r2, #4] 4009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8597 .loc 1 4009 25 view .LVU3004 8598 005e 23F40043 bic r3, r3, #32768 8599 0062 5360 str r3, [r2, #4] 4012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 8600 .loc 1 4012 5 is_stmt 1 view .LVU3005 4012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 8601 .loc 1 4012 23 is_stmt 0 view .LVU3006 8602 0064 6762 str r7, [r4, #36] 4013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8603 .loc 1 4013 5 is_stmt 1 view .LVU3007 4013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; ARM GAS /tmp/ccSHpINd.s page 334 8604 .loc 1 4013 23 is_stmt 0 view .LVU3008 8605 0066 6685 strh r6, [r4, #42] @ movhi 4014:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8606 .loc 1 4014 5 is_stmt 1 view .LVU3009 4014:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8607 .loc 1 4014 29 is_stmt 0 view .LVU3010 8608 0068 638D ldrh r3, [r4, #42] 4014:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8609 .loc 1 4014 23 view .LVU3011 8610 006a 2385 strh r3, [r4, #40] @ movhi 4015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8611 .loc 1 4015 5 is_stmt 1 view .LVU3012 4015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8612 .loc 1 4015 23 is_stmt 0 view .LVU3013 8613 006c E562 str r5, [r4, #44] 4016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8614 .loc 1 4016 5 is_stmt 1 view .LVU3014 4016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8615 .loc 1 4016 23 is_stmt 0 view .LVU3015 8616 006e 1B4B ldr r3, .L560 8617 0070 6363 str r3, [r4, #52] 4018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8618 .loc 1 4018 5 is_stmt 1 view .LVU3016 4018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8619 .loc 1 4018 11 is_stmt 0 view .LVU3017 8620 0072 2268 ldr r2, [r4] 8621 0074 9369 ldr r3, [r2, #24] 8622 0076 03F00803 and r3, r3, #8 8623 .LVL597: 4019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8624 .loc 1 4019 5 is_stmt 1 view .LVU3018 4019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8625 .loc 1 4019 10 is_stmt 0 view .LVU3019 8626 007a 9169 ldr r1, [r2, #24] 4019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8627 .loc 1 4019 8 view .LVU3020 8628 007c 11F4803F tst r1, #65536 8629 0080 02D0 beq .L555 4019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8630 .loc 1 4019 54 discriminator 1 view .LVU3021 8631 0082 0BB1 cbz r3, .L555 4023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8632 .loc 1 4023 7 is_stmt 1 view .LVU3022 8633 0084 0823 movs r3, #8 8634 .LVL598: 4023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8635 .loc 1 4023 7 is_stmt 0 view .LVU3023 8636 0086 D361 str r3, [r2, #28] 8637 .L555: 4027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8638 .loc 1 4027 5 is_stmt 1 view .LVU3024 4027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8639 .loc 1 4027 5 view .LVU3025 8640 0088 0025 movs r5, #0 8641 .LVL599: 4027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8642 .loc 1 4027 5 is_stmt 0 view .LVU3026 ARM GAS /tmp/ccSHpINd.s page 335 8643 008a 84F84050 strb r5, [r4, #64] 4027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8644 .loc 1 4027 5 is_stmt 1 view .LVU3027 4033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8645 .loc 1 4033 5 view .LVU3028 8646 008e 48F20101 movw r1, #32769 8647 0092 2046 mov r0, r4 8648 0094 FFF7FEFF bl I2C_Enable_IRQ 8649 .LVL600: 4035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8650 .loc 1 4035 5 view .LVU3029 4035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8651 .loc 1 4035 12 is_stmt 0 view .LVU3030 8652 0098 2846 mov r0, r5 8653 009a 1BE0 b .L552 8654 .LVL601: 8655 .L559: 3981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8656 .loc 1 3981 7 is_stmt 1 view .LVU3031 8657 009c 0221 movs r1, #2 8658 009e 2046 mov r0, r4 8659 00a0 FFF7FEFF bl I2C_Disable_IRQ 8660 .LVL602: 3984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8661 .loc 1 3984 7 view .LVU3032 3984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8662 .loc 1 3984 16 is_stmt 0 view .LVU3033 8663 00a4 2368 ldr r3, [r4] 3984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8664 .loc 1 3984 26 view .LVU3034 8665 00a6 1A68 ldr r2, [r3] 3984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8666 .loc 1 3984 10 view .LVU3035 8667 00a8 12F4004F tst r2, #32768 8668 00ac CDD0 beq .L554 3986:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8669 .loc 1 3986 9 is_stmt 1 view .LVU3036 3986:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8670 .loc 1 3986 23 is_stmt 0 view .LVU3037 8671 00ae 1A68 ldr r2, [r3] 3986:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8672 .loc 1 3986 29 view .LVU3038 8673 00b0 22F40042 bic r2, r2, #32768 8674 00b4 1A60 str r2, [r3] 3988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8675 .loc 1 3988 9 is_stmt 1 view .LVU3039 3988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8676 .loc 1 3988 17 is_stmt 0 view .LVU3040 8677 00b6 E36B ldr r3, [r4, #60] 3988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8678 .loc 1 3988 12 view .LVU3041 8679 00b8 002B cmp r3, #0 8680 00ba C6D0 beq .L554 3992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8681 .loc 1 3992 11 is_stmt 1 view .LVU3042 3992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8682 .loc 1 3992 43 is_stmt 0 view .LVU3043 ARM GAS /tmp/ccSHpINd.s page 336 8683 00bc 084A ldr r2, .L560+4 8684 00be 1A65 str r2, [r3, #80] 3995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8685 .loc 1 3995 11 is_stmt 1 view .LVU3044 3995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8686 .loc 1 3995 15 is_stmt 0 view .LVU3045 8687 00c0 E06B ldr r0, [r4, #60] 8688 00c2 FFF7FEFF bl HAL_DMA_Abort_IT 8689 .LVL603: 3995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8690 .loc 1 3995 14 discriminator 1 view .LVU3046 8691 00c6 0028 cmp r0, #0 8692 00c8 BFD0 beq .L554 3998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8693 .loc 1 3998 13 is_stmt 1 view .LVU3047 3998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8694 .loc 1 3998 17 is_stmt 0 view .LVU3048 8695 00ca E06B ldr r0, [r4, #60] 3998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8696 .loc 1 3998 25 view .LVU3049 8697 00cc 036D ldr r3, [r0, #80] 3998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8698 .loc 1 3998 13 view .LVU3050 8699 00ce 9847 blx r3 8700 .LVL604: 8701 00d0 BBE7 b .L554 8702 .LVL605: 8703 .L556: 4039:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8704 .loc 1 4039 12 view .LVU3051 8705 00d2 0120 movs r0, #1 8706 .LVL606: 8707 .L552: 4041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8708 .loc 1 4041 1 view .LVU3052 8709 00d4 F8BD pop {r3, r4, r5, r6, r7, pc} 8710 .LVL607: 8711 .L557: 3974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8712 .loc 1 3974 5 discriminator 1 view .LVU3053 8713 00d6 0220 movs r0, #2 8714 00d8 FCE7 b .L552 8715 .L561: 8716 00da 00BF .align 2 8717 .L560: 8718 00dc 00000000 .word I2C_Slave_ISR_IT 8719 00e0 00000000 .word I2C_DMAAbort 8720 .cfi_endproc 8721 .LFE168: 8723 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits 8724 .align 1 8725 .global HAL_I2C_Slave_Seq_Transmit_DMA 8726 .syntax unified 8727 .thumb 8728 .thumb_func 8730 HAL_I2C_Slave_Seq_Transmit_DMA: 8731 .LVL608: ARM GAS /tmp/ccSHpINd.s page 337 8732 .LFB169: 4055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8733 .loc 1 4055 1 is_stmt 1 view -0 8734 .cfi_startproc 8735 @ args = 0, pretend = 0, frame = 0 8736 @ frame_needed = 0, uses_anonymous_args = 0 4055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8737 .loc 1 4055 1 is_stmt 0 view .LVU3055 8738 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8739 .LCFI103: 8740 .cfi_def_cfa_offset 24 8741 .cfi_offset 3, -24 8742 .cfi_offset 4, -20 8743 .cfi_offset 5, -16 8744 .cfi_offset 6, -12 8745 .cfi_offset 7, -8 8746 .cfi_offset 14, -4 8747 0002 0446 mov r4, r0 4057:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8748 .loc 1 4057 3 is_stmt 1 view .LVU3056 4058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8749 .loc 1 4058 3 view .LVU3057 4061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8750 .loc 1 4061 3 view .LVU3058 4063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8751 .loc 1 4063 3 view .LVU3059 4063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8752 .loc 1 4063 22 is_stmt 0 view .LVU3060 8753 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8754 .LVL609: 4063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8755 .loc 1 4063 6 view .LVU3061 8756 0008 00F02800 and r0, r0, #40 8757 000c 2828 cmp r0, #40 8758 000e 40F0C080 bne .L572 8759 0012 0F46 mov r7, r1 8760 0014 1646 mov r6, r2 8761 0016 1D46 mov r5, r3 4065:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8762 .loc 1 4065 5 is_stmt 1 view .LVU3062 4065:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8763 .loc 1 4065 8 is_stmt 0 view .LVU3063 8764 0018 002A cmp r2, #0 8765 001a 18BF it ne 8766 001c 0029 cmpne r1, #0 8767 001e 4FD0 beq .L576 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8768 .loc 1 4072 5 is_stmt 1 view .LVU3064 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8769 .loc 1 4072 5 view .LVU3065 8770 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8771 .LVL610: 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8772 .loc 1 4072 5 is_stmt 0 view .LVU3066 8773 0024 012B cmp r3, #1 8774 0026 00F0B780 beq .L573 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 338 8775 .loc 1 4072 5 is_stmt 1 discriminator 2 view .LVU3067 8776 002a 0123 movs r3, #1 8777 002c 84F84030 strb r3, [r4, #64] 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8778 .loc 1 4072 5 discriminator 2 view .LVU3068 4075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8779 .loc 1 4075 5 view .LVU3069 8780 0030 48F20101 movw r1, #32769 8781 .LVL611: 4075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8782 .loc 1 4075 5 is_stmt 0 view .LVU3070 8783 0034 2046 mov r0, r4 8784 0036 FFF7FEFF bl I2C_Disable_IRQ 8785 .LVL612: 4079:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8786 .loc 1 4079 5 is_stmt 1 view .LVU3071 4079:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8787 .loc 1 4079 13 is_stmt 0 view .LVU3072 8788 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8789 003e DBB2 uxtb r3, r3 4079:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8790 .loc 1 4079 8 view .LVU3073 8791 0040 2A2B cmp r3, #42 8792 0042 42D0 beq .L577 4104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8793 .loc 1 4104 10 is_stmt 1 view .LVU3074 4104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8794 .loc 1 4104 18 is_stmt 0 view .LVU3075 8795 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8796 0048 DBB2 uxtb r3, r3 4104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8797 .loc 1 4104 13 view .LVU3076 8798 004a 292B cmp r3, #41 8799 004c 59D0 beq .L578 8800 .L566: 4129:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8801 .loc 1 4129 5 is_stmt 1 view .LVU3077 4131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8802 .loc 1 4131 5 view .LVU3078 4131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8803 .loc 1 4131 21 is_stmt 0 view .LVU3079 8804 004e 2923 movs r3, #41 8805 0050 84F84130 strb r3, [r4, #65] 4132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8806 .loc 1 4132 5 is_stmt 1 view .LVU3080 4132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8807 .loc 1 4132 21 is_stmt 0 view .LVU3081 8808 0054 2023 movs r3, #32 8809 0056 84F84230 strb r3, [r4, #66] 4133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8810 .loc 1 4133 5 is_stmt 1 view .LVU3082 4133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8811 .loc 1 4133 21 is_stmt 0 view .LVU3083 8812 005a 0023 movs r3, #0 8813 005c 6364 str r3, [r4, #68] 4136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8814 .loc 1 4136 5 is_stmt 1 view .LVU3084 ARM GAS /tmp/ccSHpINd.s page 339 4136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8815 .loc 1 4136 9 is_stmt 0 view .LVU3085 8816 005e 2268 ldr r2, [r4] 4136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8817 .loc 1 4136 19 view .LVU3086 8818 0060 5368 ldr r3, [r2, #4] 4136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8819 .loc 1 4136 25 view .LVU3087 8820 0062 23F40043 bic r3, r3, #32768 8821 0066 5360 str r3, [r2, #4] 4139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 8822 .loc 1 4139 5 is_stmt 1 view .LVU3088 4139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 8823 .loc 1 4139 23 is_stmt 0 view .LVU3089 8824 0068 6762 str r7, [r4, #36] 4140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8825 .loc 1 4140 5 is_stmt 1 view .LVU3090 4140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8826 .loc 1 4140 23 is_stmt 0 view .LVU3091 8827 006a 6685 strh r6, [r4, #42] @ movhi 4141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8828 .loc 1 4141 5 is_stmt 1 view .LVU3092 4141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8829 .loc 1 4141 29 is_stmt 0 view .LVU3093 8830 006c 638D ldrh r3, [r4, #42] 4141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8831 .loc 1 4141 23 view .LVU3094 8832 006e 2385 strh r3, [r4, #40] @ movhi 4142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8833 .loc 1 4142 5 is_stmt 1 view .LVU3095 4142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8834 .loc 1 4142 23 is_stmt 0 view .LVU3096 8835 0070 E562 str r5, [r4, #44] 4143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8836 .loc 1 4143 5 is_stmt 1 view .LVU3097 4143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8837 .loc 1 4143 23 is_stmt 0 view .LVU3098 8838 0072 4A4B ldr r3, .L579 8839 0074 6363 str r3, [r4, #52] 4145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8840 .loc 1 4145 5 is_stmt 1 view .LVU3099 4145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8841 .loc 1 4145 13 is_stmt 0 view .LVU3100 8842 0076 A36B ldr r3, [r4, #56] 4145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8843 .loc 1 4145 8 view .LVU3101 8844 0078 002B cmp r3, #0 8845 007a 59D0 beq .L567 4148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8846 .loc 1 4148 7 is_stmt 1 view .LVU3102 4148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8847 .loc 1 4148 38 is_stmt 0 view .LVU3103 8848 007c 484A ldr r2, .L579+4 8849 007e DA63 str r2, [r3, #60] 4151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8850 .loc 1 4151 7 is_stmt 1 view .LVU3104 4151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 340 8851 .loc 1 4151 11 is_stmt 0 view .LVU3105 8852 0080 A36B ldr r3, [r4, #56] 4151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8853 .loc 1 4151 39 view .LVU3106 8854 0082 484A ldr r2, .L579+8 8855 0084 DA64 str r2, [r3, #76] 4154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8856 .loc 1 4154 7 is_stmt 1 view .LVU3107 4154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8857 .loc 1 4154 11 is_stmt 0 view .LVU3108 8858 0086 A26B ldr r2, [r4, #56] 4154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8859 .loc 1 4154 42 view .LVU3109 8860 0088 0023 movs r3, #0 8861 008a 1364 str r3, [r2, #64] 4155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8862 .loc 1 4155 7 is_stmt 1 view .LVU3110 4155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8863 .loc 1 4155 11 is_stmt 0 view .LVU3111 8864 008c A26B ldr r2, [r4, #56] 4155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8865 .loc 1 4155 39 view .LVU3112 8866 008e 1365 str r3, [r2, #80] 4158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 8867 .loc 1 4158 7 is_stmt 1 view .LVU3113 4158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 8868 .loc 1 4158 86 is_stmt 0 view .LVU3114 8869 0090 2268 ldr r2, [r4] 4158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 8870 .loc 1 4158 23 view .LVU3115 8871 0092 238D ldrh r3, [r4, #40] 8872 0094 2832 adds r2, r2, #40 8873 0096 3946 mov r1, r7 8874 0098 A06B ldr r0, [r4, #56] 8875 009a FFF7FEFF bl HAL_DMA_Start_IT 8876 .LVL613: 4176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8877 .loc 1 4176 5 is_stmt 1 view .LVU3116 4176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8878 .loc 1 4176 8 is_stmt 0 view .LVU3117 8879 009e 0546 mov r5, r0 8880 .LVL614: 4176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8881 .loc 1 4176 8 view .LVU3118 8882 00a0 0028 cmp r0, #0 8883 00a2 53D0 beq .L568 4187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8884 .loc 1 4187 7 is_stmt 1 view .LVU3119 4187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8885 .loc 1 4187 23 is_stmt 0 view .LVU3120 8886 00a4 2823 movs r3, #40 8887 00a6 84F84130 strb r3, [r4, #65] 4188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8888 .loc 1 4188 7 is_stmt 1 view .LVU3121 4188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8889 .loc 1 4188 23 is_stmt 0 view .LVU3122 8890 00aa 0022 movs r2, #0 ARM GAS /tmp/ccSHpINd.s page 341 8891 00ac 84F84220 strb r2, [r4, #66] 4191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8892 .loc 1 4191 7 is_stmt 1 view .LVU3123 4191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8893 .loc 1 4191 11 is_stmt 0 view .LVU3124 8894 00b0 636C ldr r3, [r4, #68] 4191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8895 .loc 1 4191 23 view .LVU3125 8896 00b2 43F01003 orr r3, r3, #16 8897 00b6 6364 str r3, [r4, #68] 4194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8898 .loc 1 4194 7 is_stmt 1 view .LVU3126 4194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8899 .loc 1 4194 7 view .LVU3127 8900 00b8 84F84020 strb r2, [r4, #64] 4194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8901 .loc 1 4194 7 view .LVU3128 4196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8902 .loc 1 4196 7 view .LVU3129 4196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8903 .loc 1 4196 14 is_stmt 0 view .LVU3130 8904 00bc 0125 movs r5, #1 8905 00be 69E0 b .L563 8906 .LVL615: 8907 .L576: 4067:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 8908 .loc 1 4067 7 is_stmt 1 view .LVU3131 4067:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 8909 .loc 1 4067 23 is_stmt 0 view .LVU3132 8910 00c0 4FF40073 mov r3, #512 8911 .LVL616: 4067:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 8912 .loc 1 4067 23 view .LVU3133 8913 00c4 6364 str r3, [r4, #68] 4068:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8914 .loc 1 4068 7 is_stmt 1 view .LVU3134 4068:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8915 .loc 1 4068 15 is_stmt 0 view .LVU3135 8916 00c6 0125 movs r5, #1 8917 .LVL617: 4068:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8918 .loc 1 4068 15 view .LVU3136 8919 00c8 64E0 b .L563 8920 .LVL618: 8921 .L577: 4082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8922 .loc 1 4082 7 is_stmt 1 view .LVU3137 8923 00ca 0221 movs r1, #2 8924 00cc 2046 mov r0, r4 8925 00ce FFF7FEFF bl I2C_Disable_IRQ 8926 .LVL619: 4084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8927 .loc 1 4084 7 view .LVU3138 4084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8928 .loc 1 4084 16 is_stmt 0 view .LVU3139 8929 00d2 2368 ldr r3, [r4] 4084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 342 8930 .loc 1 4084 26 view .LVU3140 8931 00d4 1A68 ldr r2, [r3] 4084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8932 .loc 1 4084 10 view .LVU3141 8933 00d6 12F4004F tst r2, #32768 8934 00da B8D0 beq .L566 4087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8935 .loc 1 4087 9 is_stmt 1 view .LVU3142 4087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8936 .loc 1 4087 17 is_stmt 0 view .LVU3143 8937 00dc E26B ldr r2, [r4, #60] 4087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8938 .loc 1 4087 12 view .LVU3144 8939 00de 002A cmp r2, #0 8940 00e0 B5D0 beq .L566 4089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8941 .loc 1 4089 11 is_stmt 1 view .LVU3145 4089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8942 .loc 1 4089 25 is_stmt 0 view .LVU3146 8943 00e2 1A68 ldr r2, [r3] 4089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8944 .loc 1 4089 31 view .LVU3147 8945 00e4 22F40042 bic r2, r2, #32768 8946 00e8 1A60 str r2, [r3] 4093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8947 .loc 1 4093 11 is_stmt 1 view .LVU3148 4093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8948 .loc 1 4093 15 is_stmt 0 view .LVU3149 8949 00ea E36B ldr r3, [r4, #60] 4093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8950 .loc 1 4093 43 view .LVU3150 8951 00ec 2E4A ldr r2, .L579+12 8952 00ee 1A65 str r2, [r3, #80] 4096:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8953 .loc 1 4096 11 is_stmt 1 view .LVU3151 4096:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8954 .loc 1 4096 15 is_stmt 0 view .LVU3152 8955 00f0 E06B ldr r0, [r4, #60] 8956 00f2 FFF7FEFF bl HAL_DMA_Abort_IT 8957 .LVL620: 4096:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8958 .loc 1 4096 14 discriminator 1 view .LVU3153 8959 00f6 0028 cmp r0, #0 8960 00f8 A9D0 beq .L566 4099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8961 .loc 1 4099 13 is_stmt 1 view .LVU3154 4099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8962 .loc 1 4099 17 is_stmt 0 view .LVU3155 8963 00fa E06B ldr r0, [r4, #60] 4099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8964 .loc 1 4099 25 view .LVU3156 8965 00fc 036D ldr r3, [r0, #80] 4099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8966 .loc 1 4099 13 view .LVU3157 8967 00fe 9847 blx r3 8968 .LVL621: 8969 0100 A5E7 b .L566 ARM GAS /tmp/ccSHpINd.s page 343 8970 .L578: 4106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8971 .loc 1 4106 7 is_stmt 1 view .LVU3158 4106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8972 .loc 1 4106 16 is_stmt 0 view .LVU3159 8973 0102 2368 ldr r3, [r4] 4106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8974 .loc 1 4106 26 view .LVU3160 8975 0104 1A68 ldr r2, [r3] 4106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8976 .loc 1 4106 10 view .LVU3161 8977 0106 12F4804F tst r2, #16384 8978 010a A0D0 beq .L566 4108:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8979 .loc 1 4108 9 is_stmt 1 view .LVU3162 4108:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8980 .loc 1 4108 23 is_stmt 0 view .LVU3163 8981 010c 1A68 ldr r2, [r3] 4108:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8982 .loc 1 4108 29 view .LVU3164 8983 010e 22F48042 bic r2, r2, #16384 8984 0112 1A60 str r2, [r3] 4111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8985 .loc 1 4111 9 is_stmt 1 view .LVU3165 4111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8986 .loc 1 4111 17 is_stmt 0 view .LVU3166 8987 0114 A36B ldr r3, [r4, #56] 4111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8988 .loc 1 4111 12 view .LVU3167 8989 0116 002B cmp r3, #0 8990 0118 99D0 beq .L566 4115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8991 .loc 1 4115 11 is_stmt 1 view .LVU3168 4115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8992 .loc 1 4115 43 is_stmt 0 view .LVU3169 8993 011a 234A ldr r2, .L579+12 8994 011c 1A65 str r2, [r3, #80] 4118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8995 .loc 1 4118 11 is_stmt 1 view .LVU3170 4118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8996 .loc 1 4118 15 is_stmt 0 view .LVU3171 8997 011e A06B ldr r0, [r4, #56] 8998 0120 FFF7FEFF bl HAL_DMA_Abort_IT 8999 .LVL622: 4118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9000 .loc 1 4118 14 discriminator 1 view .LVU3172 9001 0124 0028 cmp r0, #0 9002 0126 92D0 beq .L566 4121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9003 .loc 1 4121 13 is_stmt 1 view .LVU3173 4121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9004 .loc 1 4121 17 is_stmt 0 view .LVU3174 9005 0128 A06B ldr r0, [r4, #56] 4121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9006 .loc 1 4121 25 view .LVU3175 9007 012a 036D ldr r3, [r0, #80] 4121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 344 9008 .loc 1 4121 13 view .LVU3176 9009 012c 9847 blx r3 9010 .LVL623: 9011 012e 8EE7 b .L566 9012 .L567: 4164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9013 .loc 1 4164 7 is_stmt 1 view .LVU3177 4164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9014 .loc 1 4164 23 is_stmt 0 view .LVU3178 9015 0130 2823 movs r3, #40 9016 0132 84F84130 strb r3, [r4, #65] 4165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9017 .loc 1 4165 7 is_stmt 1 view .LVU3179 4165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9018 .loc 1 4165 23 is_stmt 0 view .LVU3180 9019 0136 0022 movs r2, #0 9020 0138 84F84220 strb r2, [r4, #66] 4168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9021 .loc 1 4168 7 is_stmt 1 view .LVU3181 4168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9022 .loc 1 4168 11 is_stmt 0 view .LVU3182 9023 013c 636C ldr r3, [r4, #68] 4168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9024 .loc 1 4168 23 view .LVU3183 9025 013e 43F08003 orr r3, r3, #128 9026 0142 6364 str r3, [r4, #68] 4171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9027 .loc 1 4171 7 is_stmt 1 view .LVU3184 4171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9028 .loc 1 4171 7 view .LVU3185 9029 0144 84F84020 strb r2, [r4, #64] 4171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9030 .loc 1 4171 7 view .LVU3186 4173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9031 .loc 1 4173 7 view .LVU3187 4173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9032 .loc 1 4173 14 is_stmt 0 view .LVU3188 9033 0148 0125 movs r5, #1 9034 .LVL624: 4173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9035 .loc 1 4173 14 view .LVU3189 9036 014a 23E0 b .L563 9037 .LVL625: 9038 .L568: 4179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9039 .loc 1 4179 7 is_stmt 1 view .LVU3190 4179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9040 .loc 1 4179 11 is_stmt 0 view .LVU3191 9041 014c 638D ldrh r3, [r4, #42] 9042 014e 9BB2 uxth r3, r3 4179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9043 .loc 1 4179 30 view .LVU3192 9044 0150 228D ldrh r2, [r4, #40] 4179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9045 .loc 1 4179 23 view .LVU3193 9046 0152 9B1A subs r3, r3, r2 9047 0154 9BB2 uxth r3, r3 ARM GAS /tmp/ccSHpINd.s page 345 9048 0156 6385 strh r3, [r4, #42] @ movhi 4182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9049 .loc 1 4182 7 is_stmt 1 view .LVU3194 4182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9050 .loc 1 4182 22 is_stmt 0 view .LVU3195 9051 0158 0023 movs r3, #0 9052 015a 2385 strh r3, [r4, #40] @ movhi 4199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 9053 .loc 1 4199 5 is_stmt 1 view .LVU3196 4199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 9054 .loc 1 4199 11 is_stmt 0 view .LVU3197 9055 015c 2268 ldr r2, [r4] 9056 015e 9369 ldr r3, [r2, #24] 9057 0160 03F00803 and r3, r3, #8 9058 .LVL626: 4200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9059 .loc 1 4200 5 is_stmt 1 view .LVU3198 4200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9060 .loc 1 4200 10 is_stmt 0 view .LVU3199 9061 0164 9169 ldr r1, [r2, #24] 4200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9062 .loc 1 4200 8 view .LVU3200 9063 0166 11F4803F tst r1, #65536 9064 016a 0DD1 bne .L570 9065 .LVL627: 9066 .L571: 4208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9067 .loc 1 4208 5 is_stmt 1 view .LVU3201 4208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9068 .loc 1 4208 5 view .LVU3202 9069 016c 0023 movs r3, #0 9070 016e 84F84030 strb r3, [r4, #64] 4208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9071 .loc 1 4208 5 view .LVU3203 4211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9072 .loc 1 4211 5 view .LVU3204 4211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9073 .loc 1 4211 9 is_stmt 0 view .LVU3205 9074 0172 2268 ldr r2, [r4] 4211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9075 .loc 1 4211 19 view .LVU3206 9076 0174 1368 ldr r3, [r2] 4211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9077 .loc 1 4211 25 view .LVU3207 9078 0176 43F48043 orr r3, r3, #16384 9079 017a 1360 str r3, [r2] 4217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9080 .loc 1 4217 5 is_stmt 1 view .LVU3208 9081 017c 4FF40041 mov r1, #32768 9082 0180 2046 mov r0, r4 9083 .LVL628: 4217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9084 .loc 1 4217 5 is_stmt 0 view .LVU3209 9085 0182 FFF7FEFF bl I2C_Enable_IRQ 9086 .LVL629: 4219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9087 .loc 1 4219 5 is_stmt 1 view .LVU3210 ARM GAS /tmp/ccSHpINd.s page 346 4219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9088 .loc 1 4219 12 is_stmt 0 view .LVU3211 9089 0186 05E0 b .L563 9090 .LVL630: 9091 .L570: 4200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9092 .loc 1 4200 54 discriminator 1 view .LVU3212 9093 0188 002B cmp r3, #0 9094 018a EFD0 beq .L571 4204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9095 .loc 1 4204 7 is_stmt 1 view .LVU3213 9096 018c 0823 movs r3, #8 9097 .LVL631: 4204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9098 .loc 1 4204 7 is_stmt 0 view .LVU3214 9099 018e D361 str r3, [r2, #28] 9100 0190 ECE7 b .L571 9101 .LVL632: 9102 .L572: 4223:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9103 .loc 1 4223 12 view .LVU3215 9104 0192 0125 movs r5, #1 9105 .LVL633: 9106 .L563: 4225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9107 .loc 1 4225 1 view .LVU3216 9108 0194 2846 mov r0, r5 9109 0196 F8BD pop {r3, r4, r5, r6, r7, pc} 9110 .LVL634: 9111 .L573: 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9112 .loc 1 4072 5 discriminator 1 view .LVU3217 9113 0198 0225 movs r5, #2 9114 .LVL635: 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9115 .loc 1 4072 5 discriminator 1 view .LVU3218 9116 019a FBE7 b .L563 9117 .L580: 9118 .align 2 9119 .L579: 9120 019c 00000000 .word I2C_Slave_ISR_DMA 9121 01a0 00000000 .word I2C_DMASlaveTransmitCplt 9122 01a4 00000000 .word I2C_DMAError 9123 01a8 00000000 .word I2C_DMAAbort 9124 .cfi_endproc 9125 .LFE169: 9127 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits 9128 .align 1 9129 .global HAL_I2C_Slave_Seq_Receive_IT 9130 .syntax unified 9131 .thumb 9132 .thumb_func 9134 HAL_I2C_Slave_Seq_Receive_IT: 9135 .LVL636: 9136 .LFB170: 4239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9137 .loc 1 4239 1 is_stmt 1 view -0 ARM GAS /tmp/ccSHpINd.s page 347 9138 .cfi_startproc 9139 @ args = 0, pretend = 0, frame = 0 9140 @ frame_needed = 0, uses_anonymous_args = 0 4239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9141 .loc 1 4239 1 is_stmt 0 view .LVU3220 9142 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9143 .LCFI104: 9144 .cfi_def_cfa_offset 24 9145 .cfi_offset 3, -24 9146 .cfi_offset 4, -20 9147 .cfi_offset 5, -16 9148 .cfi_offset 6, -12 9149 .cfi_offset 7, -8 9150 .cfi_offset 14, -4 9151 0002 0446 mov r4, r0 4241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9152 .loc 1 4241 3 is_stmt 1 view .LVU3221 4244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9153 .loc 1 4244 3 view .LVU3222 4246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9154 .loc 1 4246 3 view .LVU3223 4246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9155 .loc 1 4246 22 is_stmt 0 view .LVU3224 9156 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 9157 .LVL637: 4246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9158 .loc 1 4246 6 view .LVU3225 9159 0008 00F02800 and r0, r0, #40 9160 000c 2828 cmp r0, #40 9161 000e 60D1 bne .L586 9162 0010 0F46 mov r7, r1 9163 0012 1646 mov r6, r2 9164 0014 1D46 mov r5, r3 4248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9165 .loc 1 4248 5 is_stmt 1 view .LVU3226 4248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9166 .loc 1 4248 8 is_stmt 0 view .LVU3227 9167 0016 002A cmp r2, #0 9168 0018 18BF it ne 9169 001a 0029 cmpne r1, #0 9170 001c 04D1 bne .L583 4250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 9171 .loc 1 4250 7 is_stmt 1 view .LVU3228 4250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 9172 .loc 1 4250 23 is_stmt 0 view .LVU3229 9173 001e 4FF40073 mov r3, #512 9174 .LVL638: 4250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 9175 .loc 1 4250 23 view .LVU3230 9176 0022 6364 str r3, [r4, #68] 4251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9177 .loc 1 4251 7 is_stmt 1 view .LVU3231 4251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9178 .loc 1 4251 15 is_stmt 0 view .LVU3232 9179 0024 0120 movs r0, #1 9180 0026 55E0 b .L582 9181 .LVL639: ARM GAS /tmp/ccSHpINd.s page 348 9182 .L583: 4255:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9183 .loc 1 4255 5 is_stmt 1 view .LVU3233 9184 0028 48F20201 movw r1, #32770 9185 .LVL640: 4255:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9186 .loc 1 4255 5 is_stmt 0 view .LVU3234 9187 002c 2046 mov r0, r4 9188 002e FFF7FEFF bl I2C_Disable_IRQ 9189 .LVL641: 4258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9190 .loc 1 4258 5 is_stmt 1 view .LVU3235 4258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9191 .loc 1 4258 5 view .LVU3236 9192 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9193 0036 012B cmp r3, #1 9194 0038 4DD0 beq .L587 4258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9195 .loc 1 4258 5 discriminator 2 view .LVU3237 9196 003a 0123 movs r3, #1 9197 003c 84F84030 strb r3, [r4, #64] 4258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9198 .loc 1 4258 5 discriminator 2 view .LVU3238 4262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9199 .loc 1 4262 5 view .LVU3239 4262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9200 .loc 1 4262 13 is_stmt 0 view .LVU3240 9201 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9202 0044 DBB2 uxtb r3, r3 4262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9203 .loc 1 4262 8 view .LVU3241 9204 0046 292B cmp r3, #41 9205 0048 28D0 beq .L589 9206 .L584: 4288:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9207 .loc 1 4288 5 is_stmt 1 view .LVU3242 4288:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9208 .loc 1 4288 21 is_stmt 0 view .LVU3243 9209 004a 2A23 movs r3, #42 9210 004c 84F84130 strb r3, [r4, #65] 4289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9211 .loc 1 4289 5 is_stmt 1 view .LVU3244 4289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9212 .loc 1 4289 21 is_stmt 0 view .LVU3245 9213 0050 2023 movs r3, #32 9214 0052 84F84230 strb r3, [r4, #66] 4290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9215 .loc 1 4290 5 is_stmt 1 view .LVU3246 4290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9216 .loc 1 4290 21 is_stmt 0 view .LVU3247 9217 0056 0023 movs r3, #0 9218 0058 6364 str r3, [r4, #68] 4293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9219 .loc 1 4293 5 is_stmt 1 view .LVU3248 4293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9220 .loc 1 4293 9 is_stmt 0 view .LVU3249 9221 005a 2268 ldr r2, [r4] ARM GAS /tmp/ccSHpINd.s page 349 4293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9222 .loc 1 4293 19 view .LVU3250 9223 005c 5368 ldr r3, [r2, #4] 4293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9224 .loc 1 4293 25 view .LVU3251 9225 005e 23F40043 bic r3, r3, #32768 9226 0062 5360 str r3, [r2, #4] 4296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 9227 .loc 1 4296 5 is_stmt 1 view .LVU3252 4296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 9228 .loc 1 4296 23 is_stmt 0 view .LVU3253 9229 0064 6762 str r7, [r4, #36] 4297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9230 .loc 1 4297 5 is_stmt 1 view .LVU3254 4297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9231 .loc 1 4297 23 is_stmt 0 view .LVU3255 9232 0066 6685 strh r6, [r4, #42] @ movhi 4298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9233 .loc 1 4298 5 is_stmt 1 view .LVU3256 4298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9234 .loc 1 4298 29 is_stmt 0 view .LVU3257 9235 0068 638D ldrh r3, [r4, #42] 4298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9236 .loc 1 4298 23 view .LVU3258 9237 006a 2385 strh r3, [r4, #40] @ movhi 4299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9238 .loc 1 4299 5 is_stmt 1 view .LVU3259 4299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9239 .loc 1 4299 23 is_stmt 0 view .LVU3260 9240 006c E562 str r5, [r4, #44] 4300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9241 .loc 1 4300 5 is_stmt 1 view .LVU3261 4300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9242 .loc 1 4300 23 is_stmt 0 view .LVU3262 9243 006e 1B4B ldr r3, .L590 9244 0070 6363 str r3, [r4, #52] 4302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9245 .loc 1 4302 5 is_stmt 1 view .LVU3263 4302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9246 .loc 1 4302 11 is_stmt 0 view .LVU3264 9247 0072 2268 ldr r2, [r4] 9248 0074 9369 ldr r3, [r2, #24] 9249 0076 03F00803 and r3, r3, #8 9250 .LVL642: 4303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9251 .loc 1 4303 5 is_stmt 1 view .LVU3265 4303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9252 .loc 1 4303 10 is_stmt 0 view .LVU3266 9253 007a 9169 ldr r1, [r2, #24] 4303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9254 .loc 1 4303 8 view .LVU3267 9255 007c 11F4803F tst r1, #65536 9256 0080 02D1 bne .L585 4303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9257 .loc 1 4303 55 discriminator 1 view .LVU3268 9258 0082 0BB1 cbz r3, .L585 4307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 350 9259 .loc 1 4307 7 is_stmt 1 view .LVU3269 9260 0084 0823 movs r3, #8 9261 .LVL643: 4307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9262 .loc 1 4307 7 is_stmt 0 view .LVU3270 9263 0086 D361 str r3, [r2, #28] 9264 .L585: 4311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9265 .loc 1 4311 5 is_stmt 1 view .LVU3271 4311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9266 .loc 1 4311 5 view .LVU3272 9267 0088 0025 movs r5, #0 9268 .LVL644: 4311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9269 .loc 1 4311 5 is_stmt 0 view .LVU3273 9270 008a 84F84050 strb r5, [r4, #64] 4311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9271 .loc 1 4311 5 is_stmt 1 view .LVU3274 4317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9272 .loc 1 4317 5 view .LVU3275 9273 008e 48F20201 movw r1, #32770 9274 0092 2046 mov r0, r4 9275 0094 FFF7FEFF bl I2C_Enable_IRQ 9276 .LVL645: 4319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9277 .loc 1 4319 5 view .LVU3276 4319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9278 .loc 1 4319 12 is_stmt 0 view .LVU3277 9279 0098 2846 mov r0, r5 9280 009a 1BE0 b .L582 9281 .LVL646: 9282 .L589: 4265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9283 .loc 1 4265 7 is_stmt 1 view .LVU3278 9284 009c 0121 movs r1, #1 9285 009e 2046 mov r0, r4 9286 00a0 FFF7FEFF bl I2C_Disable_IRQ 9287 .LVL647: 4267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9288 .loc 1 4267 7 view .LVU3279 4267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9289 .loc 1 4267 16 is_stmt 0 view .LVU3280 9290 00a4 2368 ldr r3, [r4] 4267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9291 .loc 1 4267 26 view .LVU3281 9292 00a6 1A68 ldr r2, [r3] 4267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9293 .loc 1 4267 10 view .LVU3282 9294 00a8 12F4804F tst r2, #16384 9295 00ac CDD0 beq .L584 4269:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9296 .loc 1 4269 9 is_stmt 1 view .LVU3283 4269:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9297 .loc 1 4269 23 is_stmt 0 view .LVU3284 9298 00ae 1A68 ldr r2, [r3] 4269:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9299 .loc 1 4269 29 view .LVU3285 ARM GAS /tmp/ccSHpINd.s page 351 9300 00b0 22F48042 bic r2, r2, #16384 9301 00b4 1A60 str r2, [r3] 4272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9302 .loc 1 4272 9 is_stmt 1 view .LVU3286 4272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9303 .loc 1 4272 17 is_stmt 0 view .LVU3287 9304 00b6 A36B ldr r3, [r4, #56] 4272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9305 .loc 1 4272 12 view .LVU3288 9306 00b8 002B cmp r3, #0 9307 00ba C6D0 beq .L584 4276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9308 .loc 1 4276 11 is_stmt 1 view .LVU3289 4276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9309 .loc 1 4276 43 is_stmt 0 view .LVU3290 9310 00bc 084A ldr r2, .L590+4 9311 00be 1A65 str r2, [r3, #80] 4279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9312 .loc 1 4279 11 is_stmt 1 view .LVU3291 4279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9313 .loc 1 4279 15 is_stmt 0 view .LVU3292 9314 00c0 A06B ldr r0, [r4, #56] 9315 00c2 FFF7FEFF bl HAL_DMA_Abort_IT 9316 .LVL648: 4279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9317 .loc 1 4279 14 discriminator 1 view .LVU3293 9318 00c6 0028 cmp r0, #0 9319 00c8 BFD0 beq .L584 4282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9320 .loc 1 4282 13 is_stmt 1 view .LVU3294 4282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9321 .loc 1 4282 17 is_stmt 0 view .LVU3295 9322 00ca A06B ldr r0, [r4, #56] 4282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9323 .loc 1 4282 25 view .LVU3296 9324 00cc 036D ldr r3, [r0, #80] 4282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9325 .loc 1 4282 13 view .LVU3297 9326 00ce 9847 blx r3 9327 .LVL649: 9328 00d0 BBE7 b .L584 9329 .LVL650: 9330 .L586: 4323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9331 .loc 1 4323 12 view .LVU3298 9332 00d2 0120 movs r0, #1 9333 .LVL651: 9334 .L582: 4325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9335 .loc 1 4325 1 view .LVU3299 9336 00d4 F8BD pop {r3, r4, r5, r6, r7, pc} 9337 .LVL652: 9338 .L587: 4258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9339 .loc 1 4258 5 discriminator 1 view .LVU3300 9340 00d6 0220 movs r0, #2 9341 00d8 FCE7 b .L582 ARM GAS /tmp/ccSHpINd.s page 352 9342 .L591: 9343 00da 00BF .align 2 9344 .L590: 9345 00dc 00000000 .word I2C_Slave_ISR_IT 9346 00e0 00000000 .word I2C_DMAAbort 9347 .cfi_endproc 9348 .LFE170: 9350 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits 9351 .align 1 9352 .global HAL_I2C_Slave_Seq_Receive_DMA 9353 .syntax unified 9354 .thumb 9355 .thumb_func 9357 HAL_I2C_Slave_Seq_Receive_DMA: 9358 .LVL653: 9359 .LFB171: 4339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9360 .loc 1 4339 1 is_stmt 1 view -0 9361 .cfi_startproc 9362 @ args = 0, pretend = 0, frame = 0 9363 @ frame_needed = 0, uses_anonymous_args = 0 4339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9364 .loc 1 4339 1 is_stmt 0 view .LVU3302 9365 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9366 .LCFI105: 9367 .cfi_def_cfa_offset 24 9368 .cfi_offset 3, -24 9369 .cfi_offset 4, -20 9370 .cfi_offset 5, -16 9371 .cfi_offset 6, -12 9372 .cfi_offset 7, -8 9373 .cfi_offset 14, -4 9374 0002 0446 mov r4, r0 4341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 9375 .loc 1 4341 3 is_stmt 1 view .LVU3303 4342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9376 .loc 1 4342 3 view .LVU3304 4345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9377 .loc 1 4345 3 view .LVU3305 4347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9378 .loc 1 4347 3 view .LVU3306 4347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9379 .loc 1 4347 22 is_stmt 0 view .LVU3307 9380 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 9381 .LVL654: 4347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9382 .loc 1 4347 6 view .LVU3308 9383 0008 00F02800 and r0, r0, #40 9384 000c 2828 cmp r0, #40 9385 000e 40F0C080 bne .L602 9386 0012 0F46 mov r7, r1 9387 0014 1646 mov r6, r2 9388 0016 1D46 mov r5, r3 4349:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9389 .loc 1 4349 5 is_stmt 1 view .LVU3309 4349:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9390 .loc 1 4349 8 is_stmt 0 view .LVU3310 ARM GAS /tmp/ccSHpINd.s page 353 9391 0018 002A cmp r2, #0 9392 001a 18BF it ne 9393 001c 0029 cmpne r1, #0 9394 001e 04D1 bne .L594 4351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 9395 .loc 1 4351 7 is_stmt 1 view .LVU3311 4351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 9396 .loc 1 4351 23 is_stmt 0 view .LVU3312 9397 0020 4FF40073 mov r3, #512 9398 .LVL655: 4351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 9399 .loc 1 4351 23 view .LVU3313 9400 0024 6364 str r3, [r4, #68] 4352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9401 .loc 1 4352 7 is_stmt 1 view .LVU3314 4352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9402 .loc 1 4352 15 is_stmt 0 view .LVU3315 9403 0026 0125 movs r5, #1 9404 .LVL656: 4352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9405 .loc 1 4352 15 view .LVU3316 9406 0028 B4E0 b .L593 9407 .LVL657: 9408 .L594: 4356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9409 .loc 1 4356 5 is_stmt 1 view .LVU3317 9410 002a 48F20201 movw r1, #32770 9411 .LVL658: 4356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9412 .loc 1 4356 5 is_stmt 0 view .LVU3318 9413 002e 2046 mov r0, r4 9414 0030 FFF7FEFF bl I2C_Disable_IRQ 9415 .LVL659: 4359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9416 .loc 1 4359 5 is_stmt 1 view .LVU3319 4359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9417 .loc 1 4359 5 view .LVU3320 9418 0034 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9419 0038 012B cmp r3, #1 9420 003a 00F0AD80 beq .L603 4359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9421 .loc 1 4359 5 discriminator 2 view .LVU3321 9422 003e 0123 movs r3, #1 9423 0040 84F84030 strb r3, [r4, #64] 4359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9424 .loc 1 4359 5 discriminator 2 view .LVU3322 4363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9425 .loc 1 4363 5 view .LVU3323 4363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9426 .loc 1 4363 13 is_stmt 0 view .LVU3324 9427 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9428 0048 DBB2 uxtb r3, r3 4363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9429 .loc 1 4363 8 view .LVU3325 9430 004a 292B cmp r3, #41 9431 004c 3DD0 beq .L606 4388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 354 9432 .loc 1 4388 10 is_stmt 1 view .LVU3326 4388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9433 .loc 1 4388 18 is_stmt 0 view .LVU3327 9434 004e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9435 0052 DBB2 uxtb r3, r3 4388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9436 .loc 1 4388 13 view .LVU3328 9437 0054 2A2B cmp r3, #42 9438 0056 54D0 beq .L607 9439 .L596: 4413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9440 .loc 1 4413 5 is_stmt 1 view .LVU3329 4415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9441 .loc 1 4415 5 view .LVU3330 4415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9442 .loc 1 4415 21 is_stmt 0 view .LVU3331 9443 0058 2A23 movs r3, #42 9444 005a 84F84130 strb r3, [r4, #65] 4416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9445 .loc 1 4416 5 is_stmt 1 view .LVU3332 4416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9446 .loc 1 4416 21 is_stmt 0 view .LVU3333 9447 005e 2023 movs r3, #32 9448 0060 84F84230 strb r3, [r4, #66] 4417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9449 .loc 1 4417 5 is_stmt 1 view .LVU3334 4417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9450 .loc 1 4417 21 is_stmt 0 view .LVU3335 9451 0064 0023 movs r3, #0 9452 0066 6364 str r3, [r4, #68] 4420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9453 .loc 1 4420 5 is_stmt 1 view .LVU3336 4420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9454 .loc 1 4420 9 is_stmt 0 view .LVU3337 9455 0068 2268 ldr r2, [r4] 4420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9456 .loc 1 4420 19 view .LVU3338 9457 006a 5368 ldr r3, [r2, #4] 4420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9458 .loc 1 4420 25 view .LVU3339 9459 006c 23F40043 bic r3, r3, #32768 9460 0070 5360 str r3, [r2, #4] 4423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 9461 .loc 1 4423 5 is_stmt 1 view .LVU3340 4423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 9462 .loc 1 4423 23 is_stmt 0 view .LVU3341 9463 0072 6762 str r7, [r4, #36] 4424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9464 .loc 1 4424 5 is_stmt 1 view .LVU3342 4424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9465 .loc 1 4424 23 is_stmt 0 view .LVU3343 9466 0074 6685 strh r6, [r4, #42] @ movhi 4425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9467 .loc 1 4425 5 is_stmt 1 view .LVU3344 4425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9468 .loc 1 4425 29 is_stmt 0 view .LVU3345 9469 0076 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccSHpINd.s page 355 4425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9470 .loc 1 4425 23 view .LVU3346 9471 0078 2385 strh r3, [r4, #40] @ movhi 4426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9472 .loc 1 4426 5 is_stmt 1 view .LVU3347 4426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9473 .loc 1 4426 23 is_stmt 0 view .LVU3348 9474 007a E562 str r5, [r4, #44] 4427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9475 .loc 1 4427 5 is_stmt 1 view .LVU3349 4427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9476 .loc 1 4427 23 is_stmt 0 view .LVU3350 9477 007c 474B ldr r3, .L608 9478 007e 6363 str r3, [r4, #52] 4429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9479 .loc 1 4429 5 is_stmt 1 view .LVU3351 4429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9480 .loc 1 4429 13 is_stmt 0 view .LVU3352 9481 0080 E36B ldr r3, [r4, #60] 4429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9482 .loc 1 4429 8 view .LVU3353 9483 0082 002B cmp r3, #0 9484 0084 54D0 beq .L597 4432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9485 .loc 1 4432 7 is_stmt 1 view .LVU3354 4432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9486 .loc 1 4432 38 is_stmt 0 view .LVU3355 9487 0086 464A ldr r2, .L608+4 9488 0088 DA63 str r2, [r3, #60] 4435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9489 .loc 1 4435 7 is_stmt 1 view .LVU3356 4435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9490 .loc 1 4435 11 is_stmt 0 view .LVU3357 9491 008a E36B ldr r3, [r4, #60] 4435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9492 .loc 1 4435 39 view .LVU3358 9493 008c 454A ldr r2, .L608+8 9494 008e DA64 str r2, [r3, #76] 4438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9495 .loc 1 4438 7 is_stmt 1 view .LVU3359 4438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9496 .loc 1 4438 11 is_stmt 0 view .LVU3360 9497 0090 E26B ldr r2, [r4, #60] 4438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9498 .loc 1 4438 42 view .LVU3361 9499 0092 0023 movs r3, #0 9500 0094 1364 str r3, [r2, #64] 4439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9501 .loc 1 4439 7 is_stmt 1 view .LVU3362 4439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9502 .loc 1 4439 11 is_stmt 0 view .LVU3363 9503 0096 E26B ldr r2, [r4, #60] 4439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9504 .loc 1 4439 39 view .LVU3364 9505 0098 1365 str r3, [r2, #80] 4442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9506 .loc 1 4442 7 is_stmt 1 view .LVU3365 ARM GAS /tmp/ccSHpINd.s page 356 4442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9507 .loc 1 4442 69 is_stmt 0 view .LVU3366 9508 009a 2168 ldr r1, [r4] 4442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9509 .loc 1 4442 23 view .LVU3367 9510 009c 238D ldrh r3, [r4, #40] 9511 009e 3A46 mov r2, r7 9512 00a0 2431 adds r1, r1, #36 9513 00a2 E06B ldr r0, [r4, #60] 9514 00a4 FFF7FEFF bl HAL_DMA_Start_IT 9515 .LVL660: 4460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9516 .loc 1 4460 5 is_stmt 1 view .LVU3368 4460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9517 .loc 1 4460 8 is_stmt 0 view .LVU3369 9518 00a8 0546 mov r5, r0 9519 .LVL661: 4460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9520 .loc 1 4460 8 view .LVU3370 9521 00aa 0028 cmp r0, #0 9522 00ac 4ED0 beq .L598 4471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9523 .loc 1 4471 7 is_stmt 1 view .LVU3371 4471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9524 .loc 1 4471 23 is_stmt 0 view .LVU3372 9525 00ae 2823 movs r3, #40 9526 00b0 84F84130 strb r3, [r4, #65] 4472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9527 .loc 1 4472 7 is_stmt 1 view .LVU3373 4472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9528 .loc 1 4472 23 is_stmt 0 view .LVU3374 9529 00b4 0022 movs r2, #0 9530 00b6 84F84220 strb r2, [r4, #66] 4475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9531 .loc 1 4475 7 is_stmt 1 view .LVU3375 4475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9532 .loc 1 4475 11 is_stmt 0 view .LVU3376 9533 00ba 636C ldr r3, [r4, #68] 4475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9534 .loc 1 4475 23 view .LVU3377 9535 00bc 43F01003 orr r3, r3, #16 9536 00c0 6364 str r3, [r4, #68] 4478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9537 .loc 1 4478 7 is_stmt 1 view .LVU3378 4478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9538 .loc 1 4478 7 view .LVU3379 9539 00c2 84F84020 strb r2, [r4, #64] 4478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9540 .loc 1 4478 7 view .LVU3380 4480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9541 .loc 1 4480 7 view .LVU3381 4480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9542 .loc 1 4480 14 is_stmt 0 view .LVU3382 9543 00c6 0125 movs r5, #1 9544 00c8 64E0 b .L593 9545 .LVL662: 9546 .L606: ARM GAS /tmp/ccSHpINd.s page 357 4366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9547 .loc 1 4366 7 is_stmt 1 view .LVU3383 9548 00ca 0121 movs r1, #1 9549 00cc 2046 mov r0, r4 9550 00ce FFF7FEFF bl I2C_Disable_IRQ 9551 .LVL663: 4368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9552 .loc 1 4368 7 view .LVU3384 4368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9553 .loc 1 4368 16 is_stmt 0 view .LVU3385 9554 00d2 2368 ldr r3, [r4] 4368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9555 .loc 1 4368 26 view .LVU3386 9556 00d4 1A68 ldr r2, [r3] 4368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9557 .loc 1 4368 10 view .LVU3387 9558 00d6 12F4804F tst r2, #16384 9559 00da BDD0 beq .L596 4371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9560 .loc 1 4371 9 is_stmt 1 view .LVU3388 4371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9561 .loc 1 4371 17 is_stmt 0 view .LVU3389 9562 00dc A26B ldr r2, [r4, #56] 4371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9563 .loc 1 4371 12 view .LVU3390 9564 00de 002A cmp r2, #0 9565 00e0 BAD0 beq .L596 4373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9566 .loc 1 4373 11 is_stmt 1 view .LVU3391 4373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9567 .loc 1 4373 25 is_stmt 0 view .LVU3392 9568 00e2 1A68 ldr r2, [r3] 4373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9569 .loc 1 4373 31 view .LVU3393 9570 00e4 22F48042 bic r2, r2, #16384 9571 00e8 1A60 str r2, [r3] 4377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9572 .loc 1 4377 11 is_stmt 1 view .LVU3394 4377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9573 .loc 1 4377 15 is_stmt 0 view .LVU3395 9574 00ea A36B ldr r3, [r4, #56] 4377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9575 .loc 1 4377 43 view .LVU3396 9576 00ec 2E4A ldr r2, .L608+12 9577 00ee 1A65 str r2, [r3, #80] 4380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9578 .loc 1 4380 11 is_stmt 1 view .LVU3397 4380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9579 .loc 1 4380 15 is_stmt 0 view .LVU3398 9580 00f0 A06B ldr r0, [r4, #56] 9581 00f2 FFF7FEFF bl HAL_DMA_Abort_IT 9582 .LVL664: 4380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9583 .loc 1 4380 14 discriminator 1 view .LVU3399 9584 00f6 0028 cmp r0, #0 9585 00f8 AED0 beq .L596 4383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 358 9586 .loc 1 4383 13 is_stmt 1 view .LVU3400 4383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9587 .loc 1 4383 17 is_stmt 0 view .LVU3401 9588 00fa A06B ldr r0, [r4, #56] 4383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9589 .loc 1 4383 25 view .LVU3402 9590 00fc 036D ldr r3, [r0, #80] 4383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9591 .loc 1 4383 13 view .LVU3403 9592 00fe 9847 blx r3 9593 .LVL665: 9594 0100 AAE7 b .L596 9595 .L607: 4390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9596 .loc 1 4390 7 is_stmt 1 view .LVU3404 4390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9597 .loc 1 4390 16 is_stmt 0 view .LVU3405 9598 0102 2368 ldr r3, [r4] 4390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9599 .loc 1 4390 26 view .LVU3406 9600 0104 1A68 ldr r2, [r3] 4390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9601 .loc 1 4390 10 view .LVU3407 9602 0106 12F4004F tst r2, #32768 9603 010a A5D0 beq .L596 4392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9604 .loc 1 4392 9 is_stmt 1 view .LVU3408 4392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9605 .loc 1 4392 23 is_stmt 0 view .LVU3409 9606 010c 1A68 ldr r2, [r3] 4392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9607 .loc 1 4392 29 view .LVU3410 9608 010e 22F40042 bic r2, r2, #32768 9609 0112 1A60 str r2, [r3] 4395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9610 .loc 1 4395 9 is_stmt 1 view .LVU3411 4395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9611 .loc 1 4395 17 is_stmt 0 view .LVU3412 9612 0114 E36B ldr r3, [r4, #60] 4395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9613 .loc 1 4395 12 view .LVU3413 9614 0116 002B cmp r3, #0 9615 0118 9ED0 beq .L596 4399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9616 .loc 1 4399 11 is_stmt 1 view .LVU3414 4399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9617 .loc 1 4399 43 is_stmt 0 view .LVU3415 9618 011a 234A ldr r2, .L608+12 9619 011c 1A65 str r2, [r3, #80] 4402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9620 .loc 1 4402 11 is_stmt 1 view .LVU3416 4402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9621 .loc 1 4402 15 is_stmt 0 view .LVU3417 9622 011e E06B ldr r0, [r4, #60] 9623 0120 FFF7FEFF bl HAL_DMA_Abort_IT 9624 .LVL666: 4402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 359 9625 .loc 1 4402 14 discriminator 1 view .LVU3418 9626 0124 0028 cmp r0, #0 9627 0126 97D0 beq .L596 4405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9628 .loc 1 4405 13 is_stmt 1 view .LVU3419 4405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9629 .loc 1 4405 17 is_stmt 0 view .LVU3420 9630 0128 E06B ldr r0, [r4, #60] 4405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9631 .loc 1 4405 25 view .LVU3421 9632 012a 036D ldr r3, [r0, #80] 4405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9633 .loc 1 4405 13 view .LVU3422 9634 012c 9847 blx r3 9635 .LVL667: 9636 012e 93E7 b .L596 9637 .L597: 4448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9638 .loc 1 4448 7 is_stmt 1 view .LVU3423 4448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9639 .loc 1 4448 23 is_stmt 0 view .LVU3424 9640 0130 2823 movs r3, #40 9641 0132 84F84130 strb r3, [r4, #65] 4449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9642 .loc 1 4449 7 is_stmt 1 view .LVU3425 4449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9643 .loc 1 4449 23 is_stmt 0 view .LVU3426 9644 0136 0022 movs r2, #0 9645 0138 84F84220 strb r2, [r4, #66] 4452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9646 .loc 1 4452 7 is_stmt 1 view .LVU3427 4452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9647 .loc 1 4452 11 is_stmt 0 view .LVU3428 9648 013c 636C ldr r3, [r4, #68] 4452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9649 .loc 1 4452 23 view .LVU3429 9650 013e 43F08003 orr r3, r3, #128 9651 0142 6364 str r3, [r4, #68] 4455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9652 .loc 1 4455 7 is_stmt 1 view .LVU3430 4455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9653 .loc 1 4455 7 view .LVU3431 9654 0144 84F84020 strb r2, [r4, #64] 4455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9655 .loc 1 4455 7 view .LVU3432 4457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9656 .loc 1 4457 7 view .LVU3433 4457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9657 .loc 1 4457 14 is_stmt 0 view .LVU3434 9658 0148 0125 movs r5, #1 9659 .LVL668: 4457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9660 .loc 1 4457 14 view .LVU3435 9661 014a 23E0 b .L593 9662 .LVL669: 9663 .L598: 4463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 360 9664 .loc 1 4463 7 is_stmt 1 view .LVU3436 4463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9665 .loc 1 4463 11 is_stmt 0 view .LVU3437 9666 014c 638D ldrh r3, [r4, #42] 9667 014e 9BB2 uxth r3, r3 4463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9668 .loc 1 4463 30 view .LVU3438 9669 0150 228D ldrh r2, [r4, #40] 4463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9670 .loc 1 4463 23 view .LVU3439 9671 0152 9B1A subs r3, r3, r2 9672 0154 9BB2 uxth r3, r3 9673 0156 6385 strh r3, [r4, #42] @ movhi 4466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9674 .loc 1 4466 7 is_stmt 1 view .LVU3440 4466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9675 .loc 1 4466 22 is_stmt 0 view .LVU3441 9676 0158 0023 movs r3, #0 9677 015a 2385 strh r3, [r4, #40] @ movhi 4483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9678 .loc 1 4483 5 is_stmt 1 view .LVU3442 4483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9679 .loc 1 4483 11 is_stmt 0 view .LVU3443 9680 015c 2268 ldr r2, [r4] 9681 015e 9369 ldr r3, [r2, #24] 9682 0160 03F00803 and r3, r3, #8 9683 .LVL670: 4484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9684 .loc 1 4484 5 is_stmt 1 view .LVU3444 4484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9685 .loc 1 4484 10 is_stmt 0 view .LVU3445 9686 0164 9169 ldr r1, [r2, #24] 4484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9687 .loc 1 4484 8 view .LVU3446 9688 0166 11F4803F tst r1, #65536 9689 016a 0DD0 beq .L600 9690 .LVL671: 9691 .L601: 4492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9692 .loc 1 4492 5 is_stmt 1 view .LVU3447 4492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9693 .loc 1 4492 5 view .LVU3448 9694 016c 0023 movs r3, #0 9695 016e 84F84030 strb r3, [r4, #64] 4492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9696 .loc 1 4492 5 view .LVU3449 4495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9697 .loc 1 4495 5 view .LVU3450 4495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9698 .loc 1 4495 9 is_stmt 0 view .LVU3451 9699 0172 2268 ldr r2, [r4] 4495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9700 .loc 1 4495 19 view .LVU3452 9701 0174 1368 ldr r3, [r2] 4495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9702 .loc 1 4495 25 view .LVU3453 9703 0176 43F40043 orr r3, r3, #32768 ARM GAS /tmp/ccSHpINd.s page 361 9704 017a 1360 str r3, [r2] 4501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9705 .loc 1 4501 5 is_stmt 1 view .LVU3454 9706 017c 48F20201 movw r1, #32770 9707 0180 2046 mov r0, r4 9708 .LVL672: 4501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9709 .loc 1 4501 5 is_stmt 0 view .LVU3455 9710 0182 FFF7FEFF bl I2C_Enable_IRQ 9711 .LVL673: 4503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9712 .loc 1 4503 5 is_stmt 1 view .LVU3456 4503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9713 .loc 1 4503 12 is_stmt 0 view .LVU3457 9714 0186 05E0 b .L593 9715 .LVL674: 9716 .L600: 4484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9717 .loc 1 4484 55 discriminator 1 view .LVU3458 9718 0188 002B cmp r3, #0 9719 018a EFD0 beq .L601 4488:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9720 .loc 1 4488 7 is_stmt 1 view .LVU3459 9721 018c 0823 movs r3, #8 9722 .LVL675: 4488:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9723 .loc 1 4488 7 is_stmt 0 view .LVU3460 9724 018e D361 str r3, [r2, #28] 9725 0190 ECE7 b .L601 9726 .LVL676: 9727 .L602: 4507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9728 .loc 1 4507 12 view .LVU3461 9729 0192 0125 movs r5, #1 9730 .LVL677: 9731 .L593: 4509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9732 .loc 1 4509 1 view .LVU3462 9733 0194 2846 mov r0, r5 9734 0196 F8BD pop {r3, r4, r5, r6, r7, pc} 9735 .LVL678: 9736 .L603: 4359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9737 .loc 1 4359 5 discriminator 1 view .LVU3463 9738 0198 0225 movs r5, #2 9739 .LVL679: 4359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9740 .loc 1 4359 5 discriminator 1 view .LVU3464 9741 019a FBE7 b .L593 9742 .L609: 9743 .align 2 9744 .L608: 9745 019c 00000000 .word I2C_Slave_ISR_DMA 9746 01a0 00000000 .word I2C_DMASlaveReceiveCplt 9747 01a4 00000000 .word I2C_DMAError 9748 01a8 00000000 .word I2C_DMAAbort 9749 .cfi_endproc ARM GAS /tmp/ccSHpINd.s page 362 9750 .LFE171: 9752 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits 9753 .align 1 9754 .global HAL_I2C_EnableListen_IT 9755 .syntax unified 9756 .thumb 9757 .thumb_func 9759 HAL_I2C_EnableListen_IT: 9760 .LVL680: 9761 .LFB172: 4518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9762 .loc 1 4518 1 is_stmt 1 view -0 9763 .cfi_startproc 9764 @ args = 0, pretend = 0, frame = 0 9765 @ frame_needed = 0, uses_anonymous_args = 0 4518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9766 .loc 1 4518 1 is_stmt 0 view .LVU3466 9767 0000 08B5 push {r3, lr} 9768 .LCFI106: 9769 .cfi_def_cfa_offset 8 9770 .cfi_offset 3, -8 9771 .cfi_offset 14, -4 4519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9772 .loc 1 4519 3 is_stmt 1 view .LVU3467 4519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9773 .loc 1 4519 11 is_stmt 0 view .LVU3468 9774 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9775 0006 DBB2 uxtb r3, r3 4519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9776 .loc 1 4519 6 view .LVU3469 9777 0008 202B cmp r3, #32 9778 000a 01D0 beq .L614 4531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9779 .loc 1 4531 12 view .LVU3470 9780 000c 0220 movs r0, #2 9781 .LVL681: 9782 .L611: 4533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9783 .loc 1 4533 1 view .LVU3471 9784 000e 08BD pop {r3, pc} 9785 .LVL682: 9786 .L614: 4521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9787 .loc 1 4521 5 is_stmt 1 view .LVU3472 4521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9788 .loc 1 4521 17 is_stmt 0 view .LVU3473 9789 0010 2823 movs r3, #40 9790 0012 80F84130 strb r3, [r0, #65] 4522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9791 .loc 1 4522 5 is_stmt 1 view .LVU3474 4522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9792 .loc 1 4522 19 is_stmt 0 view .LVU3475 9793 0016 044B ldr r3, .L615 9794 0018 4363 str r3, [r0, #52] 4525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9795 .loc 1 4525 5 is_stmt 1 view .LVU3476 9796 001a 4FF40041 mov r1, #32768 ARM GAS /tmp/ccSHpINd.s page 363 9797 001e FFF7FEFF bl I2C_Enable_IRQ 9798 .LVL683: 4527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9799 .loc 1 4527 5 view .LVU3477 4527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9800 .loc 1 4527 12 is_stmt 0 view .LVU3478 9801 0022 0020 movs r0, #0 9802 0024 F3E7 b .L611 9803 .L616: 9804 0026 00BF .align 2 9805 .L615: 9806 0028 00000000 .word I2C_Slave_ISR_IT 9807 .cfi_endproc 9808 .LFE172: 9810 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits 9811 .align 1 9812 .global HAL_I2C_DisableListen_IT 9813 .syntax unified 9814 .thumb 9815 .thumb_func 9817 HAL_I2C_DisableListen_IT: 9818 .LVL684: 9819 .LFB173: 4542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9820 .loc 1 4542 1 is_stmt 1 view -0 9821 .cfi_startproc 9822 @ args = 0, pretend = 0, frame = 0 9823 @ frame_needed = 0, uses_anonymous_args = 0 4544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9824 .loc 1 4544 3 view .LVU3480 4547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9825 .loc 1 4547 3 view .LVU3481 4547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9826 .loc 1 4547 11 is_stmt 0 view .LVU3482 9827 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9828 0004 DBB2 uxtb r3, r3 4547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9829 .loc 1 4547 6 view .LVU3483 9830 0006 282B cmp r3, #40 9831 0008 01D0 beq .L624 4562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9832 .loc 1 4562 12 view .LVU3484 9833 000a 0220 movs r0, #2 9834 .LVL685: 4564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9835 .loc 1 4564 1 view .LVU3485 9836 000c 7047 bx lr 9837 .LVL686: 9838 .L624: 4542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9839 .loc 1 4542 1 view .LVU3486 9840 000e 10B5 push {r4, lr} 9841 .LCFI107: 9842 .cfi_def_cfa_offset 8 9843 .cfi_offset 4, -8 9844 .cfi_offset 14, -4 4549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); ARM GAS /tmp/ccSHpINd.s page 364 9845 .loc 1 4549 5 is_stmt 1 view .LVU3487 4549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9846 .loc 1 4549 26 is_stmt 0 view .LVU3488 9847 0010 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 9848 .LVL687: 4550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9849 .loc 1 4550 5 is_stmt 1 view .LVU3489 4550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9850 .loc 1 4550 48 is_stmt 0 view .LVU3490 9851 0014 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 4550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9852 .loc 1 4550 31 view .LVU3491 9853 0018 02F00302 and r2, r2, #3 9854 .LVL688: 4550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9855 .loc 1 4550 31 view .LVU3492 9856 001c 1343 orrs r3, r3, r2 4550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9857 .loc 1 4550 25 view .LVU3493 9858 001e 0363 str r3, [r0, #48] 4551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9859 .loc 1 4551 5 is_stmt 1 view .LVU3494 4551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9860 .loc 1 4551 17 is_stmt 0 view .LVU3495 9861 0020 2023 movs r3, #32 9862 0022 80F84130 strb r3, [r0, #65] 4552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9863 .loc 1 4552 5 is_stmt 1 view .LVU3496 4552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9864 .loc 1 4552 16 is_stmt 0 view .LVU3497 9865 0026 0024 movs r4, #0 9866 0028 80F84240 strb r4, [r0, #66] 4553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9867 .loc 1 4553 5 is_stmt 1 view .LVU3498 4553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9868 .loc 1 4553 19 is_stmt 0 view .LVU3499 9869 002c 4463 str r4, [r0, #52] 4556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9870 .loc 1 4556 5 is_stmt 1 view .LVU3500 9871 002e 4FF40041 mov r1, #32768 9872 0032 FFF7FEFF bl I2C_Disable_IRQ 9873 .LVL689: 4558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9874 .loc 1 4558 5 view .LVU3501 4558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9875 .loc 1 4558 12 is_stmt 0 view .LVU3502 9876 0036 2046 mov r0, r4 4564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9877 .loc 1 4564 1 view .LVU3503 9878 0038 10BD pop {r4, pc} 9879 .cfi_endproc 9880 .LFE173: 9882 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits 9883 .align 1 9884 .global HAL_I2C_Master_Abort_IT 9885 .syntax unified 9886 .thumb ARM GAS /tmp/ccSHpINd.s page 365 9887 .thumb_func 9889 HAL_I2C_Master_Abort_IT: 9890 .LVL690: 9891 .LFB174: 4575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 9892 .loc 1 4575 1 is_stmt 1 view -0 9893 .cfi_startproc 9894 @ args = 0, pretend = 0, frame = 0 9895 @ frame_needed = 0, uses_anonymous_args = 0 4576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9896 .loc 1 4576 3 view .LVU3505 4576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9897 .loc 1 4576 23 is_stmt 0 view .LVU3506 9898 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 9899 0004 DBB2 uxtb r3, r3 9900 .LVL691: 4578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9901 .loc 1 4578 3 is_stmt 1 view .LVU3507 4578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9902 .loc 1 4578 6 is_stmt 0 view .LVU3508 9903 0006 402B cmp r3, #64 9904 0008 18BF it ne 9905 000a 102B cmpne r3, #16 9906 000c 36D1 bne .L629 4575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 9907 .loc 1 4575 1 view .LVU3509 9908 000e 30B5 push {r4, r5, lr} 9909 .LCFI108: 9910 .cfi_def_cfa_offset 12 9911 .cfi_offset 4, -12 9912 .cfi_offset 5, -8 9913 .cfi_offset 14, -4 9914 0010 83B0 sub sp, sp, #12 9915 .LCFI109: 9916 .cfi_def_cfa_offset 24 9917 0012 0446 mov r4, r0 9918 0014 0D46 mov r5, r1 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9919 .loc 1 4581 5 is_stmt 1 view .LVU3510 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9920 .loc 1 4581 5 view .LVU3511 9921 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 9922 .LVL692: 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9923 .loc 1 4581 5 is_stmt 0 view .LVU3512 9924 001a 012B cmp r3, #1 9925 001c 30D0 beq .L630 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9926 .loc 1 4581 5 is_stmt 1 discriminator 2 view .LVU3513 9927 001e 0123 movs r3, #1 9928 0020 80F84030 strb r3, [r0, #64] 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9929 .loc 1 4581 5 discriminator 2 view .LVU3514 4584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9930 .loc 1 4584 5 view .LVU3515 4584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9931 .loc 1 4584 13 is_stmt 0 view .LVU3516 ARM GAS /tmp/ccSHpINd.s page 366 9932 0024 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9933 0028 DBB2 uxtb r3, r3 4584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9934 .loc 1 4584 8 view .LVU3517 9935 002a 212B cmp r3, #33 9936 002c 1AD0 beq .L635 4589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9937 .loc 1 4589 10 is_stmt 1 view .LVU3518 4589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9938 .loc 1 4589 18 is_stmt 0 view .LVU3519 9939 002e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9940 0032 DBB2 uxtb r3, r3 4589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9941 .loc 1 4589 13 view .LVU3520 9942 0034 222B cmp r3, #34 9943 0036 1BD0 beq .L636 9944 .LVL693: 9945 .L628: 4597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9946 .loc 1 4597 5 is_stmt 1 view .LVU3521 4600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9947 .loc 1 4600 5 view .LVU3522 4600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9948 .loc 1 4600 17 is_stmt 0 view .LVU3523 9949 0038 6023 movs r3, #96 9950 003a 84F84130 strb r3, [r4, #65] 4604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9951 .loc 1 4604 5 is_stmt 1 view .LVU3524 9952 003e 114B ldr r3, .L637 9953 0040 0093 str r3, [sp] 9954 0042 4FF00073 mov r3, #33554432 9955 0046 0122 movs r2, #1 9956 0048 2946 mov r1, r5 9957 004a 2046 mov r0, r4 9958 004c FFF7FEFF bl I2C_TransferConfig 9959 .LVL694: 4607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9960 .loc 1 4607 5 view .LVU3525 4607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9961 .loc 1 4607 5 view .LVU3526 9962 0050 0025 movs r5, #0 9963 .LVL695: 4607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9964 .loc 1 4607 5 is_stmt 0 view .LVU3527 9965 0052 84F84050 strb r5, [r4, #64] 4607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9966 .loc 1 4607 5 is_stmt 1 view .LVU3528 4612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9967 .loc 1 4612 5 view .LVU3529 9968 0056 2021 movs r1, #32 9969 0058 2046 mov r0, r4 9970 005a FFF7FEFF bl I2C_Enable_IRQ 9971 .LVL696: 4614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9972 .loc 1 4614 5 view .LVU3530 4614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9973 .loc 1 4614 12 is_stmt 0 view .LVU3531 ARM GAS /tmp/ccSHpINd.s page 367 9974 005e 2846 mov r0, r5 9975 .L626: 4622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9976 .loc 1 4622 1 view .LVU3532 9977 0060 03B0 add sp, sp, #12 9978 .LCFI110: 9979 .cfi_remember_state 9980 .cfi_def_cfa_offset 12 9981 @ sp needed 9982 0062 30BD pop {r4, r5, pc} 9983 .LVL697: 9984 .L635: 9985 .LCFI111: 9986 .cfi_restore_state 4586:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9987 .loc 1 4586 7 is_stmt 1 view .LVU3533 9988 0064 0121 movs r1, #1 9989 .LVL698: 4586:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9990 .loc 1 4586 7 is_stmt 0 view .LVU3534 9991 0066 FFF7FEFF bl I2C_Disable_IRQ 9992 .LVL699: 4587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9993 .loc 1 4587 7 is_stmt 1 view .LVU3535 4587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9994 .loc 1 4587 27 is_stmt 0 view .LVU3536 9995 006a 1123 movs r3, #17 9996 006c 2363 str r3, [r4, #48] 9997 006e E3E7 b .L628 9998 .LVL700: 9999 .L636: 4591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10000 .loc 1 4591 7 is_stmt 1 view .LVU3537 10001 0070 0221 movs r1, #2 10002 .LVL701: 4591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10003 .loc 1 4591 7 is_stmt 0 view .LVU3538 10004 0072 FFF7FEFF bl I2C_Disable_IRQ 10005 .LVL702: 4592:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10006 .loc 1 4592 7 is_stmt 1 view .LVU3539 4592:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10007 .loc 1 4592 27 is_stmt 0 view .LVU3540 10008 0076 1223 movs r3, #18 10009 0078 2363 str r3, [r4, #48] 10010 007a DDE7 b .L628 10011 .LVL703: 10012 .L629: 10013 .LCFI112: 10014 .cfi_def_cfa_offset 0 10015 .cfi_restore 4 10016 .cfi_restore 5 10017 .cfi_restore 14 4620:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10018 .loc 1 4620 12 view .LVU3541 10019 007c 0120 movs r0, #1 10020 .LVL704: ARM GAS /tmp/ccSHpINd.s page 368 4622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10021 .loc 1 4622 1 view .LVU3542 10022 007e 7047 bx lr 10023 .LVL705: 10024 .L630: 10025 .LCFI113: 10026 .cfi_def_cfa_offset 24 10027 .cfi_offset 4, -12 10028 .cfi_offset 5, -8 10029 .cfi_offset 14, -4 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10030 .loc 1 4581 5 discriminator 1 view .LVU3543 10031 0080 0220 movs r0, #2 10032 .LVL706: 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10033 .loc 1 4581 5 discriminator 1 view .LVU3544 10034 0082 EDE7 b .L626 10035 .L638: 10036 .align 2 10037 .L637: 10038 0084 00400080 .word -2147467264 10039 .cfi_endproc 10040 .LFE174: 10042 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits 10043 .align 1 10044 .global HAL_I2C_EV_IRQHandler 10045 .syntax unified 10046 .thumb 10047 .thumb_func 10049 HAL_I2C_EV_IRQHandler: 10050 .LVL707: 10051 .LFB175: 4639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 10052 .loc 1 4639 1 is_stmt 1 view -0 10053 .cfi_startproc 10054 @ args = 0, pretend = 0, frame = 0 10055 @ frame_needed = 0, uses_anonymous_args = 0 4639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 10056 .loc 1 4639 1 is_stmt 0 view .LVU3546 10057 0000 08B5 push {r3, lr} 10058 .LCFI114: 10059 .cfi_def_cfa_offset 8 10060 .cfi_offset 3, -8 10061 .cfi_offset 14, -4 4641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10062 .loc 1 4641 3 is_stmt 1 view .LVU3547 4641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10063 .loc 1 4641 24 is_stmt 0 view .LVU3548 10064 0002 0368 ldr r3, [r0] 4641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10065 .loc 1 4641 12 view .LVU3549 10066 0004 9969 ldr r1, [r3, #24] 10067 .LVL708: 4642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10068 .loc 1 4642 3 is_stmt 1 view .LVU3550 4642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10069 .loc 1 4642 12 is_stmt 0 view .LVU3551 ARM GAS /tmp/ccSHpINd.s page 369 10070 0006 1A68 ldr r2, [r3] 10071 .LVL709: 4645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10072 .loc 1 4645 3 is_stmt 1 view .LVU3552 4645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10073 .loc 1 4645 11 is_stmt 0 view .LVU3553 10074 0008 436B ldr r3, [r0, #52] 4645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10075 .loc 1 4645 6 view .LVU3554 10076 000a 03B1 cbz r3, .L639 4647:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10077 .loc 1 4647 5 is_stmt 1 view .LVU3555 10078 000c 9847 blx r3 10079 .LVL710: 10080 .L639: 4649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10081 .loc 1 4649 1 is_stmt 0 view .LVU3556 10082 000e 08BD pop {r3, pc} 10083 .cfi_endproc 10084 .LFE175: 10086 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits 10087 .align 1 10088 .weak HAL_I2C_MasterTxCpltCallback 10089 .syntax unified 10090 .thumb 10091 .thumb_func 10093 HAL_I2C_MasterTxCpltCallback: 10094 .LVL711: 10095 .LFB177: 4710:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10096 .loc 1 4710 1 is_stmt 1 view -0 10097 .cfi_startproc 10098 @ args = 0, pretend = 0, frame = 0 10099 @ frame_needed = 0, uses_anonymous_args = 0 10100 @ link register save eliminated. 4712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10101 .loc 1 4712 3 view .LVU3558 4717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10102 .loc 1 4717 1 is_stmt 0 view .LVU3559 10103 0000 7047 bx lr 10104 .cfi_endproc 10105 .LFE177: 10107 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits 10108 .align 1 10109 .weak HAL_I2C_MasterRxCpltCallback 10110 .syntax unified 10111 .thumb 10112 .thumb_func 10114 HAL_I2C_MasterRxCpltCallback: 10115 .LVL712: 10116 .LFB178: 4726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10117 .loc 1 4726 1 is_stmt 1 view -0 10118 .cfi_startproc 10119 @ args = 0, pretend = 0, frame = 0 10120 @ frame_needed = 0, uses_anonymous_args = 0 10121 @ link register save eliminated. ARM GAS /tmp/ccSHpINd.s page 370 4728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10122 .loc 1 4728 3 view .LVU3561 4733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10123 .loc 1 4733 1 is_stmt 0 view .LVU3562 10124 0000 7047 bx lr 10125 .cfi_endproc 10126 .LFE178: 10128 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits 10129 .align 1 10130 .syntax unified 10131 .thumb 10132 .thumb_func 10134 I2C_ITMasterSeqCplt: 10135 .LVL713: 10136 .LFB199: 6053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset I2C handle mode */ 10137 .loc 1 6053 1 is_stmt 1 view -0 10138 .cfi_startproc 10139 @ args = 0, pretend = 0, frame = 0 10140 @ frame_needed = 0, uses_anonymous_args = 0 6053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset I2C handle mode */ 10141 .loc 1 6053 1 is_stmt 0 view .LVU3564 10142 0000 38B5 push {r3, r4, r5, lr} 10143 .LCFI115: 10144 .cfi_def_cfa_offset 16 10145 .cfi_offset 3, -16 10146 .cfi_offset 4, -12 10147 .cfi_offset 5, -8 10148 .cfi_offset 14, -4 10149 0002 0446 mov r4, r0 6055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10150 .loc 1 6055 3 is_stmt 1 view .LVU3565 6055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10151 .loc 1 6055 14 is_stmt 0 view .LVU3566 10152 0004 0023 movs r3, #0 10153 0006 80F84230 strb r3, [r0, #66] 6059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10154 .loc 1 6059 3 is_stmt 1 view .LVU3567 6059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10155 .loc 1 6059 11 is_stmt 0 view .LVU3568 10156 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10157 000e DBB2 uxtb r3, r3 6059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10158 .loc 1 6059 6 view .LVU3569 10159 0010 212B cmp r3, #33 10160 0012 0FD0 beq .L648 6081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10161 .loc 1 6081 5 is_stmt 1 view .LVU3570 6081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10162 .loc 1 6081 25 is_stmt 0 view .LVU3571 10163 0014 2023 movs r3, #32 10164 0016 80F84130 strb r3, [r0, #65] 6082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10165 .loc 1 6082 5 is_stmt 1 view .LVU3572 6082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10166 .loc 1 6082 25 is_stmt 0 view .LVU3573 10167 001a 1223 movs r3, #18 ARM GAS /tmp/ccSHpINd.s page 371 10168 001c 0363 str r3, [r0, #48] 6083:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10169 .loc 1 6083 5 is_stmt 1 view .LVU3574 6083:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10170 .loc 1 6083 25 is_stmt 0 view .LVU3575 10171 001e 0025 movs r5, #0 10172 0020 4563 str r5, [r0, #52] 6086:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10173 .loc 1 6086 5 is_stmt 1 view .LVU3576 10174 0022 0221 movs r1, #2 10175 0024 FFF7FEFF bl I2C_Disable_IRQ 10176 .LVL714: 6089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10177 .loc 1 6089 5 view .LVU3577 6089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10178 .loc 1 6089 5 view .LVU3578 10179 0028 84F84050 strb r5, [r4, #64] 6089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10180 .loc 1 6089 5 view .LVU3579 6095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10181 .loc 1 6095 5 view .LVU3580 10182 002c 2046 mov r0, r4 10183 002e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 10184 .LVL715: 10185 .L644: 6098:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10186 .loc 1 6098 1 is_stmt 0 view .LVU3581 10187 0032 38BD pop {r3, r4, r5, pc} 10188 .LVL716: 10189 .L648: 6061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10190 .loc 1 6061 5 is_stmt 1 view .LVU3582 6061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10191 .loc 1 6061 25 is_stmt 0 view .LVU3583 10192 0034 2023 movs r3, #32 10193 0036 80F84130 strb r3, [r0, #65] 6062:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10194 .loc 1 6062 5 is_stmt 1 view .LVU3584 6062:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10195 .loc 1 6062 25 is_stmt 0 view .LVU3585 10196 003a 1123 movs r3, #17 10197 003c 0363 str r3, [r0, #48] 6063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10198 .loc 1 6063 5 is_stmt 1 view .LVU3586 6063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10199 .loc 1 6063 25 is_stmt 0 view .LVU3587 10200 003e 0025 movs r5, #0 10201 0040 4563 str r5, [r0, #52] 6066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10202 .loc 1 6066 5 is_stmt 1 view .LVU3588 10203 0042 0121 movs r1, #1 10204 0044 FFF7FEFF bl I2C_Disable_IRQ 10205 .LVL717: 6069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10206 .loc 1 6069 5 view .LVU3589 6069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10207 .loc 1 6069 5 view .LVU3590 ARM GAS /tmp/ccSHpINd.s page 372 10208 0048 84F84050 strb r5, [r4, #64] 6069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10209 .loc 1 6069 5 view .LVU3591 6075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10210 .loc 1 6075 5 view .LVU3592 10211 004c 2046 mov r0, r4 10212 004e FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 10213 .LVL718: 10214 0052 EEE7 b .L644 10215 .cfi_endproc 10216 .LFE199: 10218 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits 10219 .align 1 10220 .weak HAL_I2C_SlaveTxCpltCallback 10221 .syntax unified 10222 .thumb 10223 .thumb_func 10225 HAL_I2C_SlaveTxCpltCallback: 10226 .LVL719: 10227 .LFB179: 4741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10228 .loc 1 4741 1 view -0 10229 .cfi_startproc 10230 @ args = 0, pretend = 0, frame = 0 10231 @ frame_needed = 0, uses_anonymous_args = 0 10232 @ link register save eliminated. 4743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10233 .loc 1 4743 3 view .LVU3594 4748:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10234 .loc 1 4748 1 is_stmt 0 view .LVU3595 10235 0000 7047 bx lr 10236 .cfi_endproc 10237 .LFE179: 10239 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits 10240 .align 1 10241 .weak HAL_I2C_SlaveRxCpltCallback 10242 .syntax unified 10243 .thumb 10244 .thumb_func 10246 HAL_I2C_SlaveRxCpltCallback: 10247 .LVL720: 10248 .LFB180: 4757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10249 .loc 1 4757 1 is_stmt 1 view -0 10250 .cfi_startproc 10251 @ args = 0, pretend = 0, frame = 0 10252 @ frame_needed = 0, uses_anonymous_args = 0 10253 @ link register save eliminated. 4759:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10254 .loc 1 4759 3 view .LVU3597 4764:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10255 .loc 1 4764 1 is_stmt 0 view .LVU3598 10256 0000 7047 bx lr 10257 .cfi_endproc 10258 .LFE180: 10260 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits 10261 .align 1 ARM GAS /tmp/ccSHpINd.s page 373 10262 .syntax unified 10263 .thumb 10264 .thumb_func 10266 I2C_ITSlaveSeqCplt: 10267 .LVL721: 10268 .LFB200: 6106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10269 .loc 1 6106 1 is_stmt 1 view -0 10270 .cfi_startproc 10271 @ args = 0, pretend = 0, frame = 0 10272 @ frame_needed = 0, uses_anonymous_args = 0 6106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10273 .loc 1 6106 1 is_stmt 0 view .LVU3600 10274 0000 10B5 push {r4, lr} 10275 .LCFI116: 10276 .cfi_def_cfa_offset 8 10277 .cfi_offset 4, -8 10278 .cfi_offset 14, -4 10279 0002 0446 mov r4, r0 6107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10280 .loc 1 6107 3 is_stmt 1 view .LVU3601 6107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10281 .loc 1 6107 26 is_stmt 0 view .LVU3602 10282 0004 0368 ldr r3, [r0] 6107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10283 .loc 1 6107 12 view .LVU3603 10284 0006 1A68 ldr r2, [r3] 10285 .LVL722: 6110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10286 .loc 1 6110 3 is_stmt 1 view .LVU3604 6110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10287 .loc 1 6110 14 is_stmt 0 view .LVU3605 10288 0008 0021 movs r1, #0 10289 000a 80F84210 strb r1, [r0, #66] 6113:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10290 .loc 1 6113 3 is_stmt 1 view .LVU3606 6113:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10291 .loc 1 6113 6 is_stmt 0 view .LVU3607 10292 000e 12F4804F tst r2, #16384 10293 0012 0ED0 beq .L652 6116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10294 .loc 1 6116 5 is_stmt 1 view .LVU3608 6116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10295 .loc 1 6116 19 is_stmt 0 view .LVU3609 10296 0014 1A68 ldr r2, [r3] 10297 .LVL723: 6116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10298 .loc 1 6116 25 view .LVU3610 10299 0016 22F48042 bic r2, r2, #16384 10300 001a 1A60 str r2, [r3] 10301 .L653: 6126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10302 .loc 1 6126 3 is_stmt 1 view .LVU3611 6128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10303 .loc 1 6128 3 view .LVU3612 6128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10304 .loc 1 6128 11 is_stmt 0 view .LVU3613 ARM GAS /tmp/ccSHpINd.s page 374 10305 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10306 0020 DBB2 uxtb r3, r3 6128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10307 .loc 1 6128 6 view .LVU3614 10308 0022 292B cmp r3, #41 10309 0024 0DD0 beq .L657 6148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10310 .loc 1 6148 8 is_stmt 1 view .LVU3615 6148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10311 .loc 1 6148 16 is_stmt 0 view .LVU3616 10312 0026 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10313 002a DBB2 uxtb r3, r3 6148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10314 .loc 1 6148 11 view .LVU3617 10315 002c 2A2B cmp r3, #42 10316 002e 18D0 beq .L658 10317 .LVL724: 10318 .L651: 6171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10319 .loc 1 6171 1 view .LVU3618 10320 0030 10BD pop {r4, pc} 10321 .LVL725: 10322 .L652: 6118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10323 .loc 1 6118 8 is_stmt 1 view .LVU3619 6118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10324 .loc 1 6118 11 is_stmt 0 view .LVU3620 10325 0032 12F4004F tst r2, #32768 10326 0036 F1D0 beq .L653 6121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10327 .loc 1 6121 5 is_stmt 1 view .LVU3621 6121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10328 .loc 1 6121 19 is_stmt 0 view .LVU3622 10329 0038 1A68 ldr r2, [r3] 10330 .LVL726: 6121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10331 .loc 1 6121 25 view .LVU3623 10332 003a 22F40042 bic r2, r2, #32768 10333 003e 1A60 str r2, [r3] 10334 0040 ECE7 b .L653 10335 .L657: 6131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10336 .loc 1 6131 5 is_stmt 1 view .LVU3624 6131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10337 .loc 1 6131 25 is_stmt 0 view .LVU3625 10338 0042 2823 movs r3, #40 10339 0044 84F84130 strb r3, [r4, #65] 6132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10340 .loc 1 6132 5 is_stmt 1 view .LVU3626 6132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10341 .loc 1 6132 25 is_stmt 0 view .LVU3627 10342 0048 2123 movs r3, #33 10343 004a 2363 str r3, [r4, #48] 6135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10344 .loc 1 6135 5 is_stmt 1 view .LVU3628 10345 004c 0121 movs r1, #1 10346 004e 2046 mov r0, r4 ARM GAS /tmp/ccSHpINd.s page 375 10347 .LVL727: 6135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10348 .loc 1 6135 5 is_stmt 0 view .LVU3629 10349 0050 FFF7FEFF bl I2C_Disable_IRQ 10350 .LVL728: 6138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10351 .loc 1 6138 5 is_stmt 1 view .LVU3630 6138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10352 .loc 1 6138 5 view .LVU3631 10353 0054 0023 movs r3, #0 10354 0056 84F84030 strb r3, [r4, #64] 6138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10355 .loc 1 6138 5 view .LVU3632 6144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10356 .loc 1 6144 5 view .LVU3633 10357 005a 2046 mov r0, r4 10358 005c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 10359 .LVL729: 10360 0060 E6E7 b .L651 10361 .LVL730: 10362 .L658: 6151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10363 .loc 1 6151 5 view .LVU3634 6151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10364 .loc 1 6151 25 is_stmt 0 view .LVU3635 10365 0062 2823 movs r3, #40 10366 0064 84F84130 strb r3, [r4, #65] 6152:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10367 .loc 1 6152 5 is_stmt 1 view .LVU3636 6152:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10368 .loc 1 6152 25 is_stmt 0 view .LVU3637 10369 0068 2223 movs r3, #34 10370 006a 2363 str r3, [r4, #48] 6155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10371 .loc 1 6155 5 is_stmt 1 view .LVU3638 10372 006c 0221 movs r1, #2 10373 006e 2046 mov r0, r4 10374 .LVL731: 6155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10375 .loc 1 6155 5 is_stmt 0 view .LVU3639 10376 0070 FFF7FEFF bl I2C_Disable_IRQ 10377 .LVL732: 6158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10378 .loc 1 6158 5 is_stmt 1 view .LVU3640 6158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10379 .loc 1 6158 5 view .LVU3641 10380 0074 0023 movs r3, #0 10381 0076 84F84030 strb r3, [r4, #64] 6158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10382 .loc 1 6158 5 view .LVU3642 6164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10383 .loc 1 6164 5 view .LVU3643 10384 007a 2046 mov r0, r4 10385 007c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 10386 .LVL733: 6170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10387 .loc 1 6170 3 view .LVU3644 ARM GAS /tmp/ccSHpINd.s page 376 6171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10388 .loc 1 6171 1 is_stmt 0 view .LVU3645 10389 0080 D6E7 b .L651 10390 .cfi_endproc 10391 .LFE200: 10393 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits 10394 .align 1 10395 .syntax unified 10396 .thumb 10397 .thumb_func 10399 I2C_DMASlaveTransmitCplt: 10400 .LVL734: 10401 .LFB208: 6831:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10402 .loc 1 6831 1 is_stmt 1 view -0 10403 .cfi_startproc 10404 @ args = 0, pretend = 0, frame = 0 10405 @ frame_needed = 0, uses_anonymous_args = 0 6831:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10406 .loc 1 6831 1 is_stmt 0 view .LVU3647 10407 0000 08B5 push {r3, lr} 10408 .LCFI117: 10409 .cfi_def_cfa_offset 8 10410 .cfi_offset 3, -8 10411 .cfi_offset 14, -4 6833:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10412 .loc 1 6833 3 is_stmt 1 view .LVU3648 6833:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10413 .loc 1 6833 22 is_stmt 0 view .LVU3649 10414 0002 806B ldr r0, [r0, #56] 10415 .LVL735: 6834:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10416 .loc 1 6834 3 is_stmt 1 view .LVU3650 6834:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10417 .loc 1 6834 12 is_stmt 0 view .LVU3651 10418 0004 C36A ldr r3, [r0, #44] 10419 .LVL736: 6836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10420 .loc 1 6836 3 is_stmt 1 view .LVU3652 6836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10421 .loc 1 6836 6 is_stmt 0 view .LVU3653 10422 0006 002B cmp r3, #0 10423 0008 18BF it ne 10424 000a B3F1807F cmpne r3, #16777216 10425 000e 00D0 beq .L662 10426 .LVL737: 10427 .L659: 6851:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10428 .loc 1 6851 1 view .LVU3654 10429 0010 08BD pop {r3, pc} 10430 .LVL738: 10431 .L662: 6839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10432 .loc 1 6839 5 is_stmt 1 view .LVU3655 6839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10433 .loc 1 6839 9 is_stmt 0 view .LVU3656 10434 0012 0268 ldr r2, [r0] ARM GAS /tmp/ccSHpINd.s page 377 6839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10435 .loc 1 6839 19 view .LVU3657 10436 0014 1368 ldr r3, [r2] 10437 .LVL739: 6839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10438 .loc 1 6839 25 view .LVU3658 10439 0016 23F48043 bic r3, r3, #16384 10440 001a 1360 str r3, [r2] 6843:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10441 .loc 1 6843 5 is_stmt 1 view .LVU3659 10442 001c FFF7FEFF bl I2C_ITSlaveSeqCplt 10443 .LVL740: 6850:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10444 .loc 1 6850 3 view .LVU3660 6851:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10445 .loc 1 6851 1 is_stmt 0 view .LVU3661 10446 0020 F6E7 b .L659 10447 .cfi_endproc 10448 .LFE208: 10450 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits 10451 .align 1 10452 .syntax unified 10453 .thumb 10454 .thumb_func 10456 I2C_DMASlaveReceiveCplt: 10457 .LVL741: 10458 .LFB210: 6919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10459 .loc 1 6919 1 is_stmt 1 view -0 10460 .cfi_startproc 10461 @ args = 0, pretend = 0, frame = 0 10462 @ frame_needed = 0, uses_anonymous_args = 0 6919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10463 .loc 1 6919 1 is_stmt 0 view .LVU3663 10464 0000 08B5 push {r3, lr} 10465 .LCFI118: 10466 .cfi_def_cfa_offset 8 10467 .cfi_offset 3, -8 10468 .cfi_offset 14, -4 6921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10469 .loc 1 6921 3 is_stmt 1 view .LVU3664 6921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10470 .loc 1 6921 22 is_stmt 0 view .LVU3665 10471 0002 806B ldr r0, [r0, #56] 10472 .LVL742: 6922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10473 .loc 1 6922 3 is_stmt 1 view .LVU3666 6922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10474 .loc 1 6922 12 is_stmt 0 view .LVU3667 10475 0004 C26A ldr r2, [r0, #44] 10476 .LVL743: 6924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10477 .loc 1 6924 3 is_stmt 1 view .LVU3668 6924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10478 .loc 1 6924 8 is_stmt 0 view .LVU3669 10479 0006 C36B ldr r3, [r0, #60] 10480 0008 1B68 ldr r3, [r3] ARM GAS /tmp/ccSHpINd.s page 378 10481 000a 5B68 ldr r3, [r3, #4] 6924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10482 .loc 1 6924 6 view .LVU3670 10483 000c 13B9 cbnz r3, .L663 6924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10484 .loc 1 6924 53 discriminator 1 view .LVU3671 10485 000e 12F5803F cmn r2, #65536 10486 0012 00D1 bne .L666 10487 .LVL744: 10488 .L663: 6939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10489 .loc 1 6939 1 view .LVU3672 10490 0014 08BD pop {r3, pc} 10491 .LVL745: 10492 .L666: 6928:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10493 .loc 1 6928 5 is_stmt 1 view .LVU3673 6928:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10494 .loc 1 6928 9 is_stmt 0 view .LVU3674 10495 0016 0268 ldr r2, [r0] 10496 .LVL746: 6928:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10497 .loc 1 6928 19 view .LVU3675 10498 0018 1368 ldr r3, [r2] 6928:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10499 .loc 1 6928 25 view .LVU3676 10500 001a 23F40043 bic r3, r3, #32768 10501 001e 1360 str r3, [r2] 6931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10502 .loc 1 6931 5 is_stmt 1 view .LVU3677 10503 0020 FFF7FEFF bl I2C_ITSlaveSeqCplt 10504 .LVL747: 6938:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10505 .loc 1 6938 3 view .LVU3678 6939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10506 .loc 1 6939 1 is_stmt 0 view .LVU3679 10507 0024 F6E7 b .L663 10508 .cfi_endproc 10509 .LFE210: 10511 .section .text.HAL_I2C_AddrCallback,"ax",%progbits 10512 .align 1 10513 .weak HAL_I2C_AddrCallback 10514 .syntax unified 10515 .thumb 10516 .thumb_func 10518 HAL_I2C_AddrCallback: 10519 .LVL748: 10520 .LFB181: 4775:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10521 .loc 1 4775 1 is_stmt 1 view -0 10522 .cfi_startproc 10523 @ args = 0, pretend = 0, frame = 0 10524 @ frame_needed = 0, uses_anonymous_args = 0 10525 @ link register save eliminated. 4777:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(TransferDirection); 10526 .loc 1 4777 3 view .LVU3681 4778:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(AddrMatchCode); ARM GAS /tmp/ccSHpINd.s page 379 10527 .loc 1 4778 3 view .LVU3682 4779:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10528 .loc 1 4779 3 view .LVU3683 4784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10529 .loc 1 4784 1 is_stmt 0 view .LVU3684 10530 0000 7047 bx lr 10531 .cfi_endproc 10532 .LFE181: 10534 .section .text.I2C_ITAddrCplt,"ax",%progbits 10535 .align 1 10536 .syntax unified 10537 .thumb 10538 .thumb_func 10540 I2C_ITAddrCplt: 10541 .LVL749: 10542 .LFB198: 5958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint8_t transferdirection; 10543 .loc 1 5958 1 is_stmt 1 view -0 10544 .cfi_startproc 10545 @ args = 0, pretend = 0, frame = 0 10546 @ frame_needed = 0, uses_anonymous_args = 0 5958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint8_t transferdirection; 10547 .loc 1 5958 1 is_stmt 0 view .LVU3686 10548 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 10549 .LCFI119: 10550 .cfi_def_cfa_offset 24 10551 .cfi_offset 3, -24 10552 .cfi_offset 4, -20 10553 .cfi_offset 5, -16 10554 .cfi_offset 6, -12 10555 .cfi_offset 7, -8 10556 .cfi_offset 14, -4 10557 0002 0446 mov r4, r0 5959:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t slaveaddrcode; 10558 .loc 1 5959 3 is_stmt 1 view .LVU3687 5960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t ownadd1code; 10559 .loc 1 5960 3 view .LVU3688 5961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t ownadd2code; 10560 .loc 1 5961 3 view .LVU3689 5962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10561 .loc 1 5962 3 view .LVU3690 5965:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10562 .loc 1 5965 3 view .LVU3691 5968:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10563 .loc 1 5968 3 view .LVU3692 5968:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10564 .loc 1 5968 22 is_stmt 0 view .LVU3693 10565 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 5968:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10566 .loc 1 5968 6 view .LVU3694 10567 0008 03F02803 and r3, r3, #40 10568 000c 282B cmp r3, #40 10569 000e 06D0 beq .L674 6040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10570 .loc 1 6040 5 is_stmt 1 view .LVU3695 10571 0010 0368 ldr r3, [r0] 10572 0012 0822 movs r2, #8 ARM GAS /tmp/ccSHpINd.s page 380 10573 0014 DA61 str r2, [r3, #28] 6043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10574 .loc 1 6043 5 view .LVU3696 6043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10575 .loc 1 6043 5 view .LVU3697 10576 0016 0023 movs r3, #0 10577 0018 80F84030 strb r3, [r0, #64] 6043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10578 .loc 1 6043 5 discriminator 1 view .LVU3698 10579 .LVL750: 10580 .L668: 6045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10581 .loc 1 6045 1 is_stmt 0 view .LVU3699 10582 001c F8BD pop {r3, r4, r5, r6, r7, pc} 10583 .LVL751: 10584 .L674: 5970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10585 .loc 1 5970 5 is_stmt 1 view .LVU3700 5970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10586 .loc 1 5970 25 is_stmt 0 view .LVU3701 10587 001e 0368 ldr r3, [r0] 10588 0020 9E69 ldr r6, [r3, #24] 5970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10589 .loc 1 5970 23 view .LVU3702 10590 0022 C6F30046 ubfx r6, r6, #16, #1 10591 .LVL752: 5971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10592 .loc 1 5971 5 is_stmt 1 view .LVU3703 5971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10593 .loc 1 5971 25 is_stmt 0 view .LVU3704 10594 0026 9A69 ldr r2, [r3, #24] 10595 0028 120C lsrs r2, r2, #16 5971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10596 .loc 1 5971 23 view .LVU3705 10597 002a 02F0FE05 and r5, r2, #254 10598 .LVL753: 5972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10599 .loc 1 5972 5 is_stmt 1 view .LVU3706 5972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10600 .loc 1 5972 25 is_stmt 0 view .LVU3707 10601 002e 9A68 ldr r2, [r3, #8] 5972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10602 .loc 1 5972 23 view .LVU3708 10603 0030 C2F30902 ubfx r2, r2, #0, #10 10604 .LVL754: 5973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10605 .loc 1 5973 5 is_stmt 1 view .LVU3709 5973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10606 .loc 1 5973 25 is_stmt 0 view .LVU3710 10607 0034 DF68 ldr r7, [r3, #12] 5973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10608 .loc 1 5973 23 view .LVU3711 10609 0036 07F0FE07 and r7, r7, #254 10610 .LVL755: 5976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10611 .loc 1 5976 5 is_stmt 1 view .LVU3712 5976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 381 10612 .loc 1 5976 19 is_stmt 0 view .LVU3713 10613 003a C168 ldr r1, [r0, #12] 10614 .LVL756: 5976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10615 .loc 1 5976 8 view .LVU3714 10616 003c 0229 cmp r1, #2 10617 003e 22D1 bne .L670 5978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10618 .loc 1 5978 7 is_stmt 1 view .LVU3715 5978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10619 .loc 1 5978 44 is_stmt 0 view .LVU3716 10620 0040 85EAD215 eor r5, r5, r2, lsr #7 10621 .LVL757: 5978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10622 .loc 1 5978 10 view .LVU3717 10623 0044 15F0060F tst r5, #6 10624 0048 10D1 bne .L671 5980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->AddrEventCount++; 10625 .loc 1 5980 9 is_stmt 1 view .LVU3718 10626 .LVL758: 5981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10627 .loc 1 5981 9 view .LVU3719 5981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10628 .loc 1 5981 13 is_stmt 0 view .LVU3720 10629 004a 816C ldr r1, [r0, #72] 5981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10630 .loc 1 5981 29 view .LVU3721 10631 004c 0131 adds r1, r1, #1 10632 004e 8164 str r1, [r0, #72] 5982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10633 .loc 1 5982 9 is_stmt 1 view .LVU3722 5982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10634 .loc 1 5982 17 is_stmt 0 view .LVU3723 10635 0050 816C ldr r1, [r0, #72] 5982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10636 .loc 1 5982 12 view .LVU3724 10637 0052 0229 cmp r1, #2 10638 0054 E2D1 bne .L668 5985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10639 .loc 1 5985 11 is_stmt 1 view .LVU3725 5985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10640 .loc 1 5985 32 is_stmt 0 view .LVU3726 10641 0056 0021 movs r1, #0 10642 0058 8164 str r1, [r0, #72] 5988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10643 .loc 1 5988 11 is_stmt 1 view .LVU3727 10644 005a 0820 movs r0, #8 10645 .LVL759: 5988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10646 .loc 1 5988 11 is_stmt 0 view .LVU3728 10647 005c D861 str r0, [r3, #28] 5991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10648 .loc 1 5991 11 is_stmt 1 view .LVU3729 5991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10649 .loc 1 5991 11 view .LVU3730 10650 005e 84F84010 strb r1, [r4, #64] 5991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 382 10651 .loc 1 5991 11 view .LVU3731 5997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10652 .loc 1 5997 11 view .LVU3732 10653 0062 3146 mov r1, r6 10654 0064 2046 mov r0, r4 10655 0066 FFF7FEFF bl HAL_I2C_AddrCallback 10656 .LVL760: 5997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10657 .loc 1 5997 11 is_stmt 0 view .LVU3733 10658 006a D7E7 b .L668 10659 .LVL761: 10660 .L671: 6003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10661 .loc 1 6003 9 is_stmt 1 view .LVU3734 6006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10662 .loc 1 6006 9 view .LVU3735 10663 006c 4FF40041 mov r1, #32768 10664 0070 FFF7FEFF bl I2C_Disable_IRQ 10665 .LVL762: 6009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10666 .loc 1 6009 9 view .LVU3736 6009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10667 .loc 1 6009 9 view .LVU3737 10668 0074 0023 movs r3, #0 10669 0076 84F84030 strb r3, [r4, #64] 6009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10670 .loc 1 6009 9 view .LVU3738 6015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10671 .loc 1 6015 9 view .LVU3739 10672 007a 3A46 mov r2, r7 10673 007c 3146 mov r1, r6 10674 007e 2046 mov r0, r4 10675 0080 FFF7FEFF bl HAL_I2C_AddrCallback 10676 .LVL763: 10677 0084 CAE7 b .L668 10678 .LVL764: 10679 .L670: 6023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10680 .loc 1 6023 7 view .LVU3740 10681 0086 4FF40041 mov r1, #32768 10682 008a FFF7FEFF bl I2C_Disable_IRQ 10683 .LVL765: 6026:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10684 .loc 1 6026 7 view .LVU3741 6026:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10685 .loc 1 6026 7 view .LVU3742 10686 008e 0023 movs r3, #0 10687 0090 84F84030 strb r3, [r4, #64] 6026:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10688 .loc 1 6026 7 view .LVU3743 6032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10689 .loc 1 6032 7 view .LVU3744 10690 0094 2A46 mov r2, r5 10691 0096 3146 mov r1, r6 10692 0098 2046 mov r0, r4 10693 009a FFF7FEFF bl HAL_I2C_AddrCallback 10694 .LVL766: ARM GAS /tmp/ccSHpINd.s page 383 10695 009e BDE7 b .L668 10696 .cfi_endproc 10697 .LFE198: 10699 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits 10700 .align 1 10701 .weak HAL_I2C_ListenCpltCallback 10702 .syntax unified 10703 .thumb 10704 .thumb_func 10706 HAL_I2C_ListenCpltCallback: 10707 .LVL767: 10708 .LFB182: 4793:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10709 .loc 1 4793 1 view -0 10710 .cfi_startproc 10711 @ args = 0, pretend = 0, frame = 0 10712 @ frame_needed = 0, uses_anonymous_args = 0 10713 @ link register save eliminated. 4795:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10714 .loc 1 4795 3 view .LVU3746 4800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10715 .loc 1 4800 1 is_stmt 0 view .LVU3747 10716 0000 7047 bx lr 10717 .cfi_endproc 10718 .LFE182: 10720 .section .text.I2C_ITListenCplt,"ax",%progbits 10721 .align 1 10722 .syntax unified 10723 .thumb 10724 .thumb_func 10726 I2C_ITListenCplt: 10727 .LVL768: 10728 .LFB203: 6539:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset handle parameters */ 10729 .loc 1 6539 1 is_stmt 1 view -0 10730 .cfi_startproc 10731 @ args = 0, pretend = 0, frame = 0 10732 @ frame_needed = 0, uses_anonymous_args = 0 6539:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset handle parameters */ 10733 .loc 1 6539 1 is_stmt 0 view .LVU3749 10734 0000 10B5 push {r4, lr} 10735 .LCFI120: 10736 .cfi_def_cfa_offset 8 10737 .cfi_offset 4, -8 10738 .cfi_offset 14, -4 10739 0002 0446 mov r4, r0 6541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10740 .loc 1 6541 3 is_stmt 1 view .LVU3750 6541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10741 .loc 1 6541 21 is_stmt 0 view .LVU3751 10742 0004 174B ldr r3, .L679 10743 0006 C362 str r3, [r0, #44] 6542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10744 .loc 1 6542 3 is_stmt 1 view .LVU3752 6542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10745 .loc 1 6542 23 is_stmt 0 view .LVU3753 10746 0008 0023 movs r3, #0 ARM GAS /tmp/ccSHpINd.s page 384 10747 000a 0363 str r3, [r0, #48] 6543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10748 .loc 1 6543 3 is_stmt 1 view .LVU3754 6543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10749 .loc 1 6543 15 is_stmt 0 view .LVU3755 10750 000c 2022 movs r2, #32 10751 000e 80F84120 strb r2, [r0, #65] 6544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10752 .loc 1 6544 3 is_stmt 1 view .LVU3756 6544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10753 .loc 1 6544 14 is_stmt 0 view .LVU3757 10754 0012 80F84230 strb r3, [r0, #66] 6545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10755 .loc 1 6545 3 is_stmt 1 view .LVU3758 6545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10756 .loc 1 6545 17 is_stmt 0 view .LVU3759 10757 0016 4363 str r3, [r0, #52] 6548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10758 .loc 1 6548 3 is_stmt 1 view .LVU3760 6548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10759 .loc 1 6548 6 is_stmt 0 view .LVU3761 10760 0018 11F0040F tst r1, #4 10761 001c 13D0 beq .L677 6551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10762 .loc 1 6551 5 is_stmt 1 view .LVU3762 6551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10763 .loc 1 6551 36 is_stmt 0 view .LVU3763 10764 001e 0368 ldr r3, [r0] 6551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10765 .loc 1 6551 46 view .LVU3764 10766 0020 5A6A ldr r2, [r3, #36] 6551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10767 .loc 1 6551 10 view .LVU3765 10768 0022 436A ldr r3, [r0, #36] 6551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10769 .loc 1 6551 21 view .LVU3766 10770 0024 1A70 strb r2, [r3] 6554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10771 .loc 1 6554 5 is_stmt 1 view .LVU3767 6554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10772 .loc 1 6554 9 is_stmt 0 view .LVU3768 10773 0026 436A ldr r3, [r0, #36] 6554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10774 .loc 1 6554 19 view .LVU3769 10775 0028 0133 adds r3, r3, #1 10776 002a 4362 str r3, [r0, #36] 6556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10777 .loc 1 6556 5 is_stmt 1 view .LVU3770 6556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10778 .loc 1 6556 14 is_stmt 0 view .LVU3771 10779 002c 038D ldrh r3, [r0, #40] 6556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10780 .loc 1 6556 8 view .LVU3772 10781 002e 53B1 cbz r3, .L677 6558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 10782 .loc 1 6558 7 is_stmt 1 view .LVU3773 6558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; ARM GAS /tmp/ccSHpINd.s page 385 10783 .loc 1 6558 21 is_stmt 0 view .LVU3774 10784 0030 013B subs r3, r3, #1 10785 0032 0385 strh r3, [r0, #40] @ movhi 6559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10786 .loc 1 6559 7 is_stmt 1 view .LVU3775 6559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10787 .loc 1 6559 11 is_stmt 0 view .LVU3776 10788 0034 438D ldrh r3, [r0, #42] 10789 0036 9BB2 uxth r3, r3 6559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10790 .loc 1 6559 22 view .LVU3777 10791 0038 013B subs r3, r3, #1 10792 003a 9BB2 uxth r3, r3 10793 003c 4385 strh r3, [r0, #42] @ movhi 6562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10794 .loc 1 6562 7 is_stmt 1 view .LVU3778 6562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10795 .loc 1 6562 11 is_stmt 0 view .LVU3779 10796 003e 436C ldr r3, [r0, #68] 6562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10797 .loc 1 6562 23 view .LVU3780 10798 0040 43F00403 orr r3, r3, #4 10799 0044 4364 str r3, [r0, #68] 10800 .L677: 6567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10801 .loc 1 6567 3 is_stmt 1 view .LVU3781 10802 0046 48F20301 movw r1, #32771 10803 .LVL769: 6567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10804 .loc 1 6567 3 is_stmt 0 view .LVU3782 10805 004a 2046 mov r0, r4 10806 .LVL770: 6567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10807 .loc 1 6567 3 view .LVU3783 10808 004c FFF7FEFF bl I2C_Disable_IRQ 10809 .LVL771: 6570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10810 .loc 1 6570 3 is_stmt 1 view .LVU3784 10811 0050 2368 ldr r3, [r4] 10812 0052 1022 movs r2, #16 10813 0054 DA61 str r2, [r3, #28] 6573:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10814 .loc 1 6573 3 view .LVU3785 6573:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10815 .loc 1 6573 3 view .LVU3786 10816 0056 0023 movs r3, #0 10817 0058 84F84030 strb r3, [r4, #64] 6573:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10818 .loc 1 6573 3 view .LVU3787 6579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10819 .loc 1 6579 3 view .LVU3788 10820 005c 2046 mov r0, r4 10821 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback 10822 .LVL772: 6581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10823 .loc 1 6581 1 is_stmt 0 view .LVU3789 10824 0062 10BD pop {r4, pc} ARM GAS /tmp/ccSHpINd.s page 386 10825 .LVL773: 10826 .L680: 6581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10827 .loc 1 6581 1 view .LVU3790 10828 .align 2 10829 .L679: 10830 0064 0000FFFF .word -65536 10831 .cfi_endproc 10832 .LFE203: 10834 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits 10835 .align 1 10836 .weak HAL_I2C_MemTxCpltCallback 10837 .syntax unified 10838 .thumb 10839 .thumb_func 10841 HAL_I2C_MemTxCpltCallback: 10842 .LVL774: 10843 .LFB183: 4809:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10844 .loc 1 4809 1 is_stmt 1 view -0 10845 .cfi_startproc 10846 @ args = 0, pretend = 0, frame = 0 10847 @ frame_needed = 0, uses_anonymous_args = 0 10848 @ link register save eliminated. 4811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10849 .loc 1 4811 3 view .LVU3792 4816:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10850 .loc 1 4816 1 is_stmt 0 view .LVU3793 10851 0000 7047 bx lr 10852 .cfi_endproc 10853 .LFE183: 10855 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits 10856 .align 1 10857 .weak HAL_I2C_MemRxCpltCallback 10858 .syntax unified 10859 .thumb 10860 .thumb_func 10862 HAL_I2C_MemRxCpltCallback: 10863 .LVL775: 10864 .LFB184: 4825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10865 .loc 1 4825 1 is_stmt 1 view -0 10866 .cfi_startproc 10867 @ args = 0, pretend = 0, frame = 0 10868 @ frame_needed = 0, uses_anonymous_args = 0 10869 @ link register save eliminated. 4827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10870 .loc 1 4827 3 view .LVU3795 4832:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10871 .loc 1 4832 1 is_stmt 0 view .LVU3796 10872 0000 7047 bx lr 10873 .cfi_endproc 10874 .LFE184: 10876 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits 10877 .align 1 10878 .weak HAL_I2C_ErrorCallback 10879 .syntax unified ARM GAS /tmp/ccSHpINd.s page 387 10880 .thumb 10881 .thumb_func 10883 HAL_I2C_ErrorCallback: 10884 .LVL776: 10885 .LFB185: 4841:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10886 .loc 1 4841 1 is_stmt 1 view -0 10887 .cfi_startproc 10888 @ args = 0, pretend = 0, frame = 0 10889 @ frame_needed = 0, uses_anonymous_args = 0 10890 @ link register save eliminated. 4843:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10891 .loc 1 4843 3 view .LVU3798 4848:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10892 .loc 1 4848 1 is_stmt 0 view .LVU3799 10893 0000 7047 bx lr 10894 .cfi_endproc 10895 .LFE185: 10897 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits 10898 .align 1 10899 .weak HAL_I2C_AbortCpltCallback 10900 .syntax unified 10901 .thumb 10902 .thumb_func 10904 HAL_I2C_AbortCpltCallback: 10905 .LVL777: 10906 .LFB186: 4857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10907 .loc 1 4857 1 is_stmt 1 view -0 10908 .cfi_startproc 10909 @ args = 0, pretend = 0, frame = 0 10910 @ frame_needed = 0, uses_anonymous_args = 0 10911 @ link register save eliminated. 4859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10912 .loc 1 4859 3 view .LVU3801 4864:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10913 .loc 1 4864 1 is_stmt 0 view .LVU3802 10914 0000 7047 bx lr 10915 .cfi_endproc 10916 .LFE186: 10918 .section .text.I2C_TreatErrorCallback,"ax",%progbits 10919 .align 1 10920 .syntax unified 10921 .thumb 10922 .thumb_func 10924 I2C_TreatErrorCallback: 10925 .LVL778: 10926 .LFB205: 6721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10927 .loc 1 6721 1 is_stmt 1 view -0 10928 .cfi_startproc 10929 @ args = 0, pretend = 0, frame = 0 10930 @ frame_needed = 0, uses_anonymous_args = 0 6721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10931 .loc 1 6721 1 is_stmt 0 view .LVU3804 10932 0000 08B5 push {r3, lr} 10933 .LCFI121: ARM GAS /tmp/ccSHpINd.s page 388 10934 .cfi_def_cfa_offset 8 10935 .cfi_offset 3, -8 10936 .cfi_offset 14, -4 6722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10937 .loc 1 6722 3 is_stmt 1 view .LVU3805 6722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10938 .loc 1 6722 11 is_stmt 0 view .LVU3806 10939 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10940 0006 DBB2 uxtb r3, r3 6722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10941 .loc 1 6722 6 view .LVU3807 10942 0008 602B cmp r3, #96 10943 000a 06D0 beq .L689 6739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10944 .loc 1 6739 5 is_stmt 1 view .LVU3808 6739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10945 .loc 1 6739 25 is_stmt 0 view .LVU3809 10946 000c 0023 movs r3, #0 10947 000e 0363 str r3, [r0, #48] 6742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10948 .loc 1 6742 5 is_stmt 1 view .LVU3810 6742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10949 .loc 1 6742 5 view .LVU3811 10950 0010 80F84030 strb r3, [r0, #64] 6742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10951 .loc 1 6742 5 view .LVU3812 6748:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10952 .loc 1 6748 5 view .LVU3813 10953 0014 FFF7FEFF bl HAL_I2C_ErrorCallback 10954 .LVL779: 10955 .L685: 6751:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10956 .loc 1 6751 1 is_stmt 0 view .LVU3814 10957 0018 08BD pop {r3, pc} 10958 .LVL780: 10959 .L689: 6724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10960 .loc 1 6724 5 is_stmt 1 view .LVU3815 6724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10961 .loc 1 6724 17 is_stmt 0 view .LVU3816 10962 001a 2023 movs r3, #32 10963 001c 80F84130 strb r3, [r0, #65] 6725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10964 .loc 1 6725 5 is_stmt 1 view .LVU3817 6725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10965 .loc 1 6725 25 is_stmt 0 view .LVU3818 10966 0020 0023 movs r3, #0 10967 0022 0363 str r3, [r0, #48] 6728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10968 .loc 1 6728 5 is_stmt 1 view .LVU3819 6728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10969 .loc 1 6728 5 view .LVU3820 10970 0024 80F84030 strb r3, [r0, #64] 6728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10971 .loc 1 6728 5 view .LVU3821 6734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10972 .loc 1 6734 5 view .LVU3822 ARM GAS /tmp/ccSHpINd.s page 389 10973 0028 FFF7FEFF bl HAL_I2C_AbortCpltCallback 10974 .LVL781: 6734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10975 .loc 1 6734 5 is_stmt 0 view .LVU3823 10976 002c F4E7 b .L685 10977 .cfi_endproc 10978 .LFE205: 10980 .section .text.I2C_ITError,"ax",%progbits 10981 .align 1 10982 .syntax unified 10983 .thumb 10984 .thumb_func 10986 I2C_ITError: 10987 .LVL782: 10988 .LFB204: 6590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10989 .loc 1 6590 1 is_stmt 1 view -0 10990 .cfi_startproc 10991 @ args = 0, pretend = 0, frame = 0 10992 @ frame_needed = 0, uses_anonymous_args = 0 6590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10993 .loc 1 6590 1 is_stmt 0 view .LVU3825 10994 0000 10B5 push {r4, lr} 10995 .LCFI122: 10996 .cfi_def_cfa_offset 8 10997 .cfi_offset 4, -8 10998 .cfi_offset 14, -4 10999 0002 0446 mov r4, r0 6591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11000 .loc 1 6591 3 is_stmt 1 view .LVU3826 6591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11001 .loc 1 6591 24 is_stmt 0 view .LVU3827 11002 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11003 .LVL783: 6593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11004 .loc 1 6593 3 is_stmt 1 view .LVU3828 6596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11005 .loc 1 6596 3 view .LVU3829 6596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 11006 .loc 1 6596 23 is_stmt 0 view .LVU3830 11007 0008 0022 movs r2, #0 11008 000a 80F84220 strb r2, [r0, #66] 6597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = 0U; 11009 .loc 1 6597 3 is_stmt 1 view .LVU3831 6597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = 0U; 11010 .loc 1 6597 23 is_stmt 0 view .LVU3832 11011 000e 4548 ldr r0, .L703 11012 .LVL784: 6597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = 0U; 11013 .loc 1 6597 23 view .LVU3833 11014 0010 E062 str r0, [r4, #44] 6598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11015 .loc 1 6598 3 is_stmt 1 view .LVU3834 6598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11016 .loc 1 6598 23 is_stmt 0 view .LVU3835 11017 0012 6285 strh r2, [r4, #42] @ movhi 6601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 390 11018 .loc 1 6601 3 is_stmt 1 view .LVU3836 6601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11019 .loc 1 6601 7 is_stmt 0 view .LVU3837 11020 0014 626C ldr r2, [r4, #68] 6601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11021 .loc 1 6601 19 view .LVU3838 11022 0016 0A43 orrs r2, r2, r1 11023 0018 6264 str r2, [r4, #68] 6604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 11024 .loc 1 6604 3 is_stmt 1 view .LVU3839 6605:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 11025 .loc 1 6605 50 is_stmt 0 view .LVU3840 11026 001a 283B subs r3, r3, #40 11027 .LVL785: 6605:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 11028 .loc 1 6605 50 view .LVU3841 11029 001c DBB2 uxtb r3, r3 11030 .LVL786: 6604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 11031 .loc 1 6604 6 view .LVU3842 11032 001e 022B cmp r3, #2 11033 0020 2DD8 bhi .L691 6609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11034 .loc 1 6609 5 is_stmt 1 view .LVU3843 11035 0022 0321 movs r1, #3 11036 .LVL787: 6609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11037 .loc 1 6609 5 is_stmt 0 view .LVU3844 11038 0024 2046 mov r0, r4 11039 0026 FFF7FEFF bl I2C_Disable_IRQ 11040 .LVL788: 6612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 11041 .loc 1 6612 5 is_stmt 1 view .LVU3845 6612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 11042 .loc 1 6612 25 is_stmt 0 view .LVU3846 11043 002a 2823 movs r3, #40 11044 002c 84F84130 strb r3, [r4, #65] 6613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11045 .loc 1 6613 5 is_stmt 1 view .LVU3847 6613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11046 .loc 1 6613 25 is_stmt 0 view .LVU3848 11047 0030 3D4B ldr r3, .L703+4 11048 0032 6363 str r3, [r4, #52] 11049 .L692: 6648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11050 .loc 1 6648 3 is_stmt 1 view .LVU3849 6648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11051 .loc 1 6648 20 is_stmt 0 view .LVU3850 11052 0034 236B ldr r3, [r4, #48] 11053 .LVL789: 6650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11054 .loc 1 6650 3 is_stmt 1 view .LVU3851 6650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11055 .loc 1 6650 12 is_stmt 0 view .LVU3852 11056 0036 A26B ldr r2, [r4, #56] 6650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11057 .loc 1 6650 6 view .LVU3853 ARM GAS /tmp/ccSHpINd.s page 391 11058 0038 002A cmp r2, #0 11059 003a 49D0 beq .L695 6650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11060 .loc 1 6650 30 discriminator 1 view .LVU3854 11061 003c 212B cmp r3, #33 11062 003e 18BF it ne 11063 0040 112B cmpne r3, #17 11064 0042 45D1 bne .L695 6653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11065 .loc 1 6653 5 is_stmt 1 view .LVU3855 6653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11066 .loc 1 6653 14 is_stmt 0 view .LVU3856 11067 0044 2368 ldr r3, [r4] 11068 .LVL790: 6653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11069 .loc 1 6653 24 view .LVU3857 11070 0046 1A68 ldr r2, [r3] 6653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11071 .loc 1 6653 8 view .LVU3858 11072 0048 12F4804F tst r2, #16384 11073 004c 03D0 beq .L696 6655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11074 .loc 1 6655 7 is_stmt 1 view .LVU3859 6655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11075 .loc 1 6655 21 is_stmt 0 view .LVU3860 11076 004e 1A68 ldr r2, [r3] 6655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11077 .loc 1 6655 27 view .LVU3861 11078 0050 22F48042 bic r2, r2, #16384 11079 0054 1A60 str r2, [r3] 11080 .L696: 6658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11081 .loc 1 6658 5 is_stmt 1 view .LVU3862 6658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11082 .loc 1 6658 9 is_stmt 0 view .LVU3863 11083 0056 A06B ldr r0, [r4, #56] 11084 0058 FFF7FEFF bl HAL_DMA_GetState 11085 .LVL791: 6658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11086 .loc 1 6658 8 discriminator 1 view .LVU3864 11087 005c 0128 cmp r0, #1 11088 005e 33D0 beq .L697 6662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11089 .loc 1 6662 7 is_stmt 1 view .LVU3865 6662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11090 .loc 1 6662 11 is_stmt 0 view .LVU3866 11091 0060 A36B ldr r3, [r4, #56] 6662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11092 .loc 1 6662 39 view .LVU3867 11093 0062 324A ldr r2, .L703+8 11094 0064 1A65 str r2, [r3, #80] 6665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11095 .loc 1 6665 7 is_stmt 1 view .LVU3868 6665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11096 .loc 1 6665 7 view .LVU3869 11097 0066 0023 movs r3, #0 11098 0068 84F84030 strb r3, [r4, #64] ARM GAS /tmp/ccSHpINd.s page 392 6665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11099 .loc 1 6665 7 view .LVU3870 6668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11100 .loc 1 6668 7 view .LVU3871 6668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11101 .loc 1 6668 11 is_stmt 0 view .LVU3872 11102 006c A06B ldr r0, [r4, #56] 11103 006e FFF7FEFF bl HAL_DMA_Abort_IT 11104 .LVL792: 6668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11105 .loc 1 6668 10 discriminator 1 view .LVU3873 11106 0072 0028 cmp r0, #0 11107 0074 55D0 beq .L690 6671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11108 .loc 1 6671 9 is_stmt 1 view .LVU3874 6671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11109 .loc 1 6671 13 is_stmt 0 view .LVU3875 11110 0076 A06B ldr r0, [r4, #56] 6671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11111 .loc 1 6671 21 view .LVU3876 11112 0078 036D ldr r3, [r0, #80] 6671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11113 .loc 1 6671 9 view .LVU3877 11114 007a 9847 blx r3 11115 .LVL793: 11116 007c 51E0 b .L690 11117 .LVL794: 11118 .L691: 6618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11119 .loc 1 6618 5 is_stmt 1 view .LVU3878 11120 007e 48F20301 movw r1, #32771 11121 .LVL795: 6618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11122 .loc 1 6618 5 is_stmt 0 view .LVU3879 11123 0082 2046 mov r0, r4 11124 0084 FFF7FEFF bl I2C_Disable_IRQ 11125 .LVL796: 6621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11126 .loc 1 6621 5 is_stmt 1 view .LVU3880 11127 0088 2046 mov r0, r4 11128 008a FFF7FEFF bl I2C_Flush_TXDR 11129 .LVL797: 6625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11130 .loc 1 6625 5 view .LVU3881 6625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11131 .loc 1 6625 13 is_stmt 0 view .LVU3882 11132 008e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11133 0092 DBB2 uxtb r3, r3 6625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11134 .loc 1 6625 8 view .LVU3883 11135 0094 602B cmp r3, #96 11136 0096 14D0 beq .L693 6628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11137 .loc 1 6628 7 is_stmt 1 view .LVU3884 6628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11138 .loc 1 6628 27 is_stmt 0 view .LVU3885 11139 0098 2023 movs r3, #32 ARM GAS /tmp/ccSHpINd.s page 393 11140 009a 84F84130 strb r3, [r4, #65] 6631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11141 .loc 1 6631 7 is_stmt 1 view .LVU3886 6631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11142 .loc 1 6631 11 is_stmt 0 view .LVU3887 11143 009e 2368 ldr r3, [r4] 11144 00a0 9A69 ldr r2, [r3, #24] 6631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11145 .loc 1 6631 10 view .LVU3888 11146 00a2 12F0200F tst r2, #32 11147 00a6 0CD0 beq .L693 6633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11148 .loc 1 6633 9 is_stmt 1 view .LVU3889 6633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11149 .loc 1 6633 13 is_stmt 0 view .LVU3890 11150 00a8 9A69 ldr r2, [r3, #24] 6633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11151 .loc 1 6633 12 view .LVU3891 11152 00aa 12F0100F tst r2, #16 11153 00ae 05D0 beq .L694 6635:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 11154 .loc 1 6635 11 is_stmt 1 view .LVU3892 11155 00b0 1022 movs r2, #16 11156 00b2 DA61 str r2, [r3, #28] 6636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11157 .loc 1 6636 11 view .LVU3893 6636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11158 .loc 1 6636 15 is_stmt 0 view .LVU3894 11159 00b4 636C ldr r3, [r4, #68] 6636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11160 .loc 1 6636 27 view .LVU3895 11161 00b6 43F00403 orr r3, r3, #4 11162 00ba 6364 str r3, [r4, #68] 11163 .L694: 6640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11164 .loc 1 6640 9 is_stmt 1 view .LVU3896 11165 00bc 2368 ldr r3, [r4] 11166 00be 2022 movs r2, #32 11167 00c0 DA61 str r2, [r3, #28] 11168 .L693: 6644:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11169 .loc 1 6644 5 view .LVU3897 6644:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11170 .loc 1 6644 25 is_stmt 0 view .LVU3898 11171 00c2 0023 movs r3, #0 11172 00c4 6363 str r3, [r4, #52] 11173 00c6 B5E7 b .L692 11174 .LVL798: 11175 .L697: 6676:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11176 .loc 1 6676 7 is_stmt 1 view .LVU3899 11177 00c8 2046 mov r0, r4 11178 00ca FFF7FEFF bl I2C_TreatErrorCallback 11179 .LVL799: 11180 00ce 28E0 b .L690 11181 .LVL800: 11182 .L695: ARM GAS /tmp/ccSHpINd.s page 394 6680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11183 .loc 1 6680 8 view .LVU3900 6680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11184 .loc 1 6680 17 is_stmt 0 view .LVU3901 11185 00d0 E26B ldr r2, [r4, #60] 6680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11186 .loc 1 6680 11 view .LVU3902 11187 00d2 1AB3 cbz r2, .L699 6680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11188 .loc 1 6680 35 discriminator 1 view .LVU3903 11189 00d4 222B cmp r3, #34 11190 00d6 18BF it ne 11191 00d8 122B cmpne r3, #18 11192 00da 1FD1 bne .L699 6683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11193 .loc 1 6683 5 is_stmt 1 view .LVU3904 6683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11194 .loc 1 6683 14 is_stmt 0 view .LVU3905 11195 00dc 2368 ldr r3, [r4] 11196 .LVL801: 6683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11197 .loc 1 6683 24 view .LVU3906 11198 00de 1A68 ldr r2, [r3] 6683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11199 .loc 1 6683 8 view .LVU3907 11200 00e0 12F4004F tst r2, #32768 11201 00e4 03D0 beq .L700 6685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11202 .loc 1 6685 7 is_stmt 1 view .LVU3908 6685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11203 .loc 1 6685 21 is_stmt 0 view .LVU3909 11204 00e6 1A68 ldr r2, [r3] 6685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11205 .loc 1 6685 27 view .LVU3910 11206 00e8 22F40042 bic r2, r2, #32768 11207 00ec 1A60 str r2, [r3] 11208 .L700: 6688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11209 .loc 1 6688 5 is_stmt 1 view .LVU3911 6688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11210 .loc 1 6688 9 is_stmt 0 view .LVU3912 11211 00ee E06B ldr r0, [r4, #60] 11212 00f0 FFF7FEFF bl HAL_DMA_GetState 11213 .LVL802: 6688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11214 .loc 1 6688 8 discriminator 1 view .LVU3913 11215 00f4 0128 cmp r0, #1 11216 00f6 0DD0 beq .L701 6692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11217 .loc 1 6692 7 is_stmt 1 view .LVU3914 6692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11218 .loc 1 6692 11 is_stmt 0 view .LVU3915 11219 00f8 E36B ldr r3, [r4, #60] 6692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11220 .loc 1 6692 39 view .LVU3916 11221 00fa 0C4A ldr r2, .L703+8 11222 00fc 1A65 str r2, [r3, #80] ARM GAS /tmp/ccSHpINd.s page 395 6695:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11223 .loc 1 6695 7 is_stmt 1 view .LVU3917 6695:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11224 .loc 1 6695 7 view .LVU3918 11225 00fe 0023 movs r3, #0 11226 0100 84F84030 strb r3, [r4, #64] 6695:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11227 .loc 1 6695 7 view .LVU3919 6698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11228 .loc 1 6698 7 view .LVU3920 6698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11229 .loc 1 6698 11 is_stmt 0 view .LVU3921 11230 0104 E06B ldr r0, [r4, #60] 11231 0106 FFF7FEFF bl HAL_DMA_Abort_IT 11232 .LVL803: 6698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11233 .loc 1 6698 10 discriminator 1 view .LVU3922 11234 010a 50B1 cbz r0, .L690 6701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11235 .loc 1 6701 9 is_stmt 1 view .LVU3923 6701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11236 .loc 1 6701 13 is_stmt 0 view .LVU3924 11237 010c E06B ldr r0, [r4, #60] 6701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11238 .loc 1 6701 21 view .LVU3925 11239 010e 036D ldr r3, [r0, #80] 6701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11240 .loc 1 6701 9 view .LVU3926 11241 0110 9847 blx r3 11242 .LVL804: 11243 0112 06E0 b .L690 11244 .L701: 6706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11245 .loc 1 6706 7 is_stmt 1 view .LVU3927 11246 0114 2046 mov r0, r4 11247 0116 FFF7FEFF bl I2C_TreatErrorCallback 11248 .LVL805: 11249 011a 02E0 b .L690 11250 .LVL806: 11251 .L699: 6711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11252 .loc 1 6711 5 view .LVU3928 11253 011c 2046 mov r0, r4 11254 011e FFF7FEFF bl I2C_TreatErrorCallback 11255 .LVL807: 11256 .L690: 6713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11257 .loc 1 6713 1 is_stmt 0 view .LVU3929 11258 0122 10BD pop {r4, pc} 11259 .LVL808: 11260 .L704: 6713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11261 .loc 1 6713 1 view .LVU3930 11262 .align 2 11263 .L703: 11264 0124 0000FFFF .word -65536 11265 0128 00000000 .word I2C_Slave_ISR_IT ARM GAS /tmp/ccSHpINd.s page 396 11266 012c 00000000 .word I2C_DMAAbort 11267 .cfi_endproc 11268 .LFE204: 11270 .section .text.I2C_ITSlaveCplt,"ax",%progbits 11271 .align 1 11272 .syntax unified 11273 .thumb 11274 .thumb_func 11276 I2C_ITSlaveCplt: 11277 .LVL809: 11278 .LFB202: 6323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11279 .loc 1 6323 1 is_stmt 1 view -0 11280 .cfi_startproc 11281 @ args = 0, pretend = 0, frame = 0 11282 @ frame_needed = 0, uses_anonymous_args = 0 6323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11283 .loc 1 6323 1 is_stmt 0 view .LVU3932 11284 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 11285 .LCFI123: 11286 .cfi_def_cfa_offset 24 11287 .cfi_offset 3, -24 11288 .cfi_offset 4, -20 11289 .cfi_offset 5, -16 11290 .cfi_offset 6, -12 11291 .cfi_offset 7, -8 11292 .cfi_offset 14, -4 11293 0002 0446 mov r4, r0 11294 0004 0D46 mov r5, r1 6324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11295 .loc 1 6324 3 is_stmt 1 view .LVU3933 6324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11296 .loc 1 6324 26 is_stmt 0 view .LVU3934 11297 0006 0268 ldr r2, [r0] 6324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11298 .loc 1 6324 12 view .LVU3935 11299 0008 1668 ldr r6, [r2] 11300 .LVL810: 6325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11301 .loc 1 6325 3 is_stmt 1 view .LVU3936 6326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11302 .loc 1 6326 3 view .LVU3937 6326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11303 .loc 1 6326 12 is_stmt 0 view .LVU3938 11304 000a C76A ldr r7, [r0, #44] 11305 .LVL811: 6327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11306 .loc 1 6327 3 is_stmt 1 view .LVU3939 6327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11307 .loc 1 6327 24 is_stmt 0 view .LVU3940 11308 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11309 .LVL812: 6330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11310 .loc 1 6330 3 is_stmt 1 view .LVU3941 11311 0010 2021 movs r1, #32 11312 .LVL813: 6330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 397 11313 .loc 1 6330 3 is_stmt 0 view .LVU3942 11314 0012 D161 str r1, [r2, #28] 6333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11315 .loc 1 6333 3 is_stmt 1 view .LVU3943 11316 0014 213B subs r3, r3, #33 11317 .LVL814: 6333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11318 .loc 1 6333 3 is_stmt 0 view .LVU3944 11319 0016 092B cmp r3, #9 11320 0018 0CD8 bhi .L706 11321 001a DFE803F0 tbb [pc, r3] 11322 .L708: 11323 001e 05 .byte (.L709-.L708)/2 11324 001f 7A .byte (.L707-.L708)/2 11325 0020 0B .byte (.L706-.L708)/2 11326 0021 0B .byte (.L706-.L708)/2 11327 0022 0B .byte (.L706-.L708)/2 11328 0023 0B .byte (.L706-.L708)/2 11329 0024 0B .byte (.L706-.L708)/2 11330 0025 81 .byte (.L710-.L708)/2 11331 0026 05 .byte (.L709-.L708)/2 11332 0027 7A .byte (.L707-.L708)/2 11333 .p2align 1 11334 .L709: 6335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 11335 .loc 1 6335 5 is_stmt 1 view .LVU3945 11336 0028 48F20101 movw r1, #32769 11337 002c FFF7FEFF bl I2C_Disable_IRQ 11338 .LVL815: 6336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11339 .loc 1 6336 5 view .LVU3946 6336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11340 .loc 1 6336 25 is_stmt 0 view .LVU3947 11341 0030 2123 movs r3, #33 11342 0032 2363 str r3, [r4, #48] 11343 .L706: 6351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11344 .loc 1 6351 3 is_stmt 1 view .LVU3948 6354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11345 .loc 1 6354 3 view .LVU3949 6354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11346 .loc 1 6354 7 is_stmt 0 view .LVU3950 11347 0034 2268 ldr r2, [r4] 6354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11348 .loc 1 6354 17 view .LVU3951 11349 0036 5368 ldr r3, [r2, #4] 6354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11350 .loc 1 6354 23 view .LVU3952 11351 0038 43F40043 orr r3, r3, #32768 11352 003c 5360 str r3, [r2, #4] 6357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11353 .loc 1 6357 3 is_stmt 1 view .LVU3953 11354 003e 2268 ldr r2, [r4] 11355 0040 5368 ldr r3, [r2, #4] 11356 0042 23F0FF73 bic r3, r3, #33423360 11357 0046 23F48B33 bic r3, r3, #71168 11358 004a 23F4FF73 bic r3, r3, #510 ARM GAS /tmp/ccSHpINd.s page 398 11359 004e 23F00103 bic r3, r3, #1 11360 0052 5360 str r3, [r2, #4] 6360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11361 .loc 1 6360 3 view .LVU3954 11362 0054 2046 mov r0, r4 11363 0056 FFF7FEFF bl I2C_Flush_TXDR 11364 .LVL816: 6363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11365 .loc 1 6363 3 view .LVU3955 6363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11366 .loc 1 6363 6 is_stmt 0 view .LVU3956 11367 005a 16F4804F tst r6, #16384 11368 005e 66D0 beq .L711 6366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11369 .loc 1 6366 5 is_stmt 1 view .LVU3957 6366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11370 .loc 1 6366 9 is_stmt 0 view .LVU3958 11371 0060 2268 ldr r2, [r4] 6366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11372 .loc 1 6366 19 view .LVU3959 11373 0062 1368 ldr r3, [r2] 6366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11374 .loc 1 6366 25 view .LVU3960 11375 0064 23F48043 bic r3, r3, #16384 11376 0068 1360 str r3, [r2] 6368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11377 .loc 1 6368 5 is_stmt 1 view .LVU3961 6368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11378 .loc 1 6368 13 is_stmt 0 view .LVU3962 11379 006a A36B ldr r3, [r4, #56] 6368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11380 .loc 1 6368 8 view .LVU3963 11381 006c 1BB1 cbz r3, .L712 6370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11382 .loc 1 6370 7 is_stmt 1 view .LVU3964 6370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11383 .loc 1 6370 35 is_stmt 0 view .LVU3965 11384 006e 1B68 ldr r3, [r3] 11385 0070 5B68 ldr r3, [r3, #4] 6370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11386 .loc 1 6370 25 view .LVU3966 11387 0072 9BB2 uxth r3, r3 6370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11388 .loc 1 6370 23 view .LVU3967 11389 0074 6385 strh r3, [r4, #42] @ movhi 11390 .L712: 6386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11391 .loc 1 6386 3 is_stmt 1 view .LVU3968 6389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11392 .loc 1 6389 3 view .LVU3969 6389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11393 .loc 1 6389 6 is_stmt 0 view .LVU3970 11394 0076 15F0040F tst r5, #4 11395 007a 11D0 beq .L713 6392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11396 .loc 1 6392 5 is_stmt 1 view .LVU3971 6392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 399 11397 .loc 1 6392 16 is_stmt 0 view .LVU3972 11398 007c 25F00405 bic r5, r5, #4 11399 .LVL817: 6395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11400 .loc 1 6395 5 is_stmt 1 view .LVU3973 6395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11401 .loc 1 6395 36 is_stmt 0 view .LVU3974 11402 0080 2368 ldr r3, [r4] 6395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11403 .loc 1 6395 46 view .LVU3975 11404 0082 5A6A ldr r2, [r3, #36] 6395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11405 .loc 1 6395 10 view .LVU3976 11406 0084 636A ldr r3, [r4, #36] 6395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11407 .loc 1 6395 21 view .LVU3977 11408 0086 1A70 strb r2, [r3] 6398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11409 .loc 1 6398 5 is_stmt 1 view .LVU3978 6398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11410 .loc 1 6398 9 is_stmt 0 view .LVU3979 11411 0088 636A ldr r3, [r4, #36] 6398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11412 .loc 1 6398 19 view .LVU3980 11413 008a 0133 adds r3, r3, #1 11414 008c 6362 str r3, [r4, #36] 6400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11415 .loc 1 6400 5 is_stmt 1 view .LVU3981 6400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11416 .loc 1 6400 14 is_stmt 0 view .LVU3982 11417 008e 238D ldrh r3, [r4, #40] 6400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11418 .loc 1 6400 8 view .LVU3983 11419 0090 33B1 cbz r3, .L713 6402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 11420 .loc 1 6402 7 is_stmt 1 view .LVU3984 6402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 11421 .loc 1 6402 21 is_stmt 0 view .LVU3985 11422 0092 013B subs r3, r3, #1 11423 0094 2385 strh r3, [r4, #40] @ movhi 6403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11424 .loc 1 6403 7 is_stmt 1 view .LVU3986 6403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11425 .loc 1 6403 11 is_stmt 0 view .LVU3987 11426 0096 638D ldrh r3, [r4, #42] 11427 0098 9BB2 uxth r3, r3 6403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11428 .loc 1 6403 22 view .LVU3988 11429 009a 013B subs r3, r3, #1 11430 009c 9BB2 uxth r3, r3 11431 009e 6385 strh r3, [r4, #42] @ movhi 11432 .L713: 6408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11433 .loc 1 6408 3 is_stmt 1 view .LVU3989 6408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11434 .loc 1 6408 11 is_stmt 0 view .LVU3990 11435 00a0 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccSHpINd.s page 400 11436 00a2 9BB2 uxth r3, r3 6408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11437 .loc 1 6408 6 view .LVU3991 11438 00a4 1BB1 cbz r3, .L714 6411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11439 .loc 1 6411 5 is_stmt 1 view .LVU3992 6411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11440 .loc 1 6411 9 is_stmt 0 view .LVU3993 11441 00a6 636C ldr r3, [r4, #68] 6411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11442 .loc 1 6411 21 view .LVU3994 11443 00a8 43F00403 orr r3, r3, #4 11444 00ac 6364 str r3, [r4, #68] 11445 .L714: 6414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11446 .loc 1 6414 3 is_stmt 1 view .LVU3995 6414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11447 .loc 1 6414 6 is_stmt 0 view .LVU3996 11448 00ae 15F0100F tst r5, #16 11449 00b2 13D0 beq .L715 6414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11450 .loc 1 6414 58 discriminator 1 view .LVU3997 11451 00b4 16F0100F tst r6, #16 11452 00b8 10D0 beq .L715 6421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11453 .loc 1 6421 5 is_stmt 1 view .LVU3998 6421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11454 .loc 1 6421 13 is_stmt 0 view .LVU3999 11455 00ba 638D ldrh r3, [r4, #42] 11456 00bc 9BB2 uxth r3, r3 6421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11457 .loc 1 6421 8 view .LVU4000 11458 00be 002B cmp r3, #0 11459 00c0 5AD1 bne .L716 6423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11460 .loc 1 6423 7 is_stmt 1 view .LVU4001 6423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11461 .loc 1 6423 16 is_stmt 0 view .LVU4002 11462 00c2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11463 00c6 DBB2 uxtb r3, r3 6423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11464 .loc 1 6423 10 view .LVU4003 11465 00c8 282B cmp r3, #40 11466 00ca 40D0 beq .L725 11467 .L717: 6430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11468 .loc 1 6430 12 is_stmt 1 view .LVU4004 6430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11469 .loc 1 6430 21 is_stmt 0 view .LVU4005 11470 00cc 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11471 00d0 DBB2 uxtb r3, r3 6430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11472 .loc 1 6430 15 view .LVU4006 11473 00d2 292B cmp r3, #41 11474 00d4 43D0 beq .L726 11475 .L718: 6445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 401 11476 .loc 1 6445 9 is_stmt 1 view .LVU4007 11477 00d6 2368 ldr r3, [r4] 11478 00d8 1022 movs r2, #16 11479 00da DA61 str r2, [r3, #28] 11480 .L715: 6465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 11481 .loc 1 6465 3 view .LVU4008 6465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 11482 .loc 1 6465 14 is_stmt 0 view .LVU4009 11483 00dc 0023 movs r3, #0 11484 00de 84F84230 strb r3, [r4, #66] 6466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11485 .loc 1 6466 3 is_stmt 1 view .LVU4010 6466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11486 .loc 1 6466 17 is_stmt 0 view .LVU4011 11487 00e2 6363 str r3, [r4, #52] 6468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11488 .loc 1 6468 3 is_stmt 1 view .LVU4012 6468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11489 .loc 1 6468 11 is_stmt 0 view .LVU4013 11490 00e4 636C ldr r3, [r4, #68] 6468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11491 .loc 1 6468 6 view .LVU4014 11492 00e6 002B cmp r3, #0 11493 00e8 57D1 bne .L727 6480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11494 .loc 1 6480 8 is_stmt 1 view .LVU4015 6480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11495 .loc 1 6480 16 is_stmt 0 view .LVU4016 11496 00ea E36A ldr r3, [r4, #44] 6480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11497 .loc 1 6480 11 view .LVU4017 11498 00ec 13F5803F cmn r3, #65536 11499 00f0 61D1 bne .L728 6500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11500 .loc 1 6500 8 is_stmt 1 view .LVU4018 6500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11501 .loc 1 6500 16 is_stmt 0 view .LVU4019 11502 00f2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11503 00f6 DBB2 uxtb r3, r3 6500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11504 .loc 1 6500 11 view .LVU4020 11505 00f8 222B cmp r3, #34 11506 00fa 6CD0 beq .L729 6517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11507 .loc 1 6517 5 is_stmt 1 view .LVU4021 6517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11508 .loc 1 6517 17 is_stmt 0 view .LVU4022 11509 00fc 2023 movs r3, #32 11510 00fe 84F84130 strb r3, [r4, #65] 6518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11511 .loc 1 6518 5 is_stmt 1 view .LVU4023 6518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11512 .loc 1 6518 25 is_stmt 0 view .LVU4024 11513 0102 0023 movs r3, #0 11514 0104 2363 str r3, [r4, #48] 6521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 402 11515 .loc 1 6521 5 is_stmt 1 view .LVU4025 6521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11516 .loc 1 6521 5 view .LVU4026 11517 0106 84F84030 strb r3, [r4, #64] 6521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11518 .loc 1 6521 5 view .LVU4027 6527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11519 .loc 1 6527 5 view .LVU4028 11520 010a 2046 mov r0, r4 11521 010c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 11522 .LVL818: 6530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11523 .loc 1 6530 1 is_stmt 0 view .LVU4029 11524 0110 60E0 b .L705 11525 .LVL819: 11526 .L707: 6340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 11527 .loc 1 6340 5 is_stmt 1 view .LVU4030 11528 0112 48F20201 movw r1, #32770 11529 0116 FFF7FEFF bl I2C_Disable_IRQ 11530 .LVL820: 6341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11531 .loc 1 6341 5 view .LVU4031 6341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11532 .loc 1 6341 25 is_stmt 0 view .LVU4032 11533 011a 2223 movs r3, #34 11534 011c 2363 str r3, [r4, #48] 11535 011e 89E7 b .L706 11536 .LVL821: 11537 .L710: 6345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11538 .loc 1 6345 5 is_stmt 1 view .LVU4033 11539 0120 48F20301 movw r1, #32771 11540 0124 FFF7FEFF bl I2C_Disable_IRQ 11541 .LVL822: 6346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11542 .loc 1 6346 5 view .LVU4034 6346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11543 .loc 1 6346 25 is_stmt 0 view .LVU4035 11544 0128 0023 movs r3, #0 11545 012a 2363 str r3, [r4, #48] 11546 012c 82E7 b .L706 11547 .L711: 6373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11548 .loc 1 6373 8 is_stmt 1 view .LVU4036 6373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11549 .loc 1 6373 11 is_stmt 0 view .LVU4037 11550 012e 16F4004F tst r6, #32768 11551 0132 A0D0 beq .L712 6376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11552 .loc 1 6376 5 is_stmt 1 view .LVU4038 6376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11553 .loc 1 6376 9 is_stmt 0 view .LVU4039 11554 0134 2268 ldr r2, [r4] 6376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11555 .loc 1 6376 19 view .LVU4040 11556 0136 1368 ldr r3, [r2] ARM GAS /tmp/ccSHpINd.s page 403 6376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11557 .loc 1 6376 25 view .LVU4041 11558 0138 23F40043 bic r3, r3, #32768 11559 013c 1360 str r3, [r2] 6378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11560 .loc 1 6378 5 is_stmt 1 view .LVU4042 6378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11561 .loc 1 6378 13 is_stmt 0 view .LVU4043 11562 013e E36B ldr r3, [r4, #60] 6378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11563 .loc 1 6378 8 view .LVU4044 11564 0140 002B cmp r3, #0 11565 0142 98D0 beq .L712 6380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11566 .loc 1 6380 7 is_stmt 1 view .LVU4045 6380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11567 .loc 1 6380 35 is_stmt 0 view .LVU4046 11568 0144 1B68 ldr r3, [r3] 11569 0146 5B68 ldr r3, [r3, #4] 6380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11570 .loc 1 6380 25 view .LVU4047 11571 0148 9BB2 uxth r3, r3 6380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11572 .loc 1 6380 23 view .LVU4048 11573 014a 6385 strh r3, [r4, #42] @ movhi 11574 014c 93E7 b .L712 11575 .LVL823: 11576 .L725: 6423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11577 .loc 1 6423 49 discriminator 1 view .LVU4049 11578 014e B7F1007F cmp r7, #33554432 11579 0152 BBD1 bne .L717 6428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11580 .loc 1 6428 9 is_stmt 1 view .LVU4050 11581 0154 2946 mov r1, r5 11582 0156 2046 mov r0, r4 11583 0158 FFF7FEFF bl I2C_ITListenCplt 11584 .LVL824: 11585 015c BEE7 b .L715 11586 .L726: 6430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11587 .loc 1 6430 62 is_stmt 0 discriminator 1 view .LVU4051 11588 015e 17F5803F cmn r7, #65536 11589 0162 B8D0 beq .L718 6433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11590 .loc 1 6433 9 is_stmt 1 view .LVU4052 11591 0164 2368 ldr r3, [r4] 11592 0166 1022 movs r2, #16 11593 0168 DA61 str r2, [r3, #28] 6436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11594 .loc 1 6436 9 view .LVU4053 11595 016a 2046 mov r0, r4 11596 016c FFF7FEFF bl I2C_Flush_TXDR 11597 .LVL825: 6440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11598 .loc 1 6440 9 view .LVU4054 11599 0170 2046 mov r0, r4 ARM GAS /tmp/ccSHpINd.s page 404 11600 0172 FFF7FEFF bl I2C_ITSlaveSeqCplt 11601 .LVL826: 11602 0176 B1E7 b .L715 11603 .L716: 6452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11604 .loc 1 6452 7 view .LVU4055 11605 0178 2368 ldr r3, [r4] 11606 017a 1022 movs r2, #16 11607 017c DA61 str r2, [r3, #28] 6455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11608 .loc 1 6455 7 view .LVU4056 6455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11609 .loc 1 6455 11 is_stmt 0 view .LVU4057 11610 017e 636C ldr r3, [r4, #68] 6455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11611 .loc 1 6455 23 view .LVU4058 11612 0180 43F00403 orr r3, r3, #4 11613 0184 6364 str r3, [r4, #68] 6457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11614 .loc 1 6457 7 is_stmt 1 view .LVU4059 6457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11615 .loc 1 6457 10 is_stmt 0 view .LVU4060 11616 0186 B7F1807F cmp r7, #16777216 11617 018a 18BF it ne 11618 018c 002F cmpne r7, #0 11619 018e A5D1 bne .L715 6460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11620 .loc 1 6460 9 is_stmt 1 view .LVU4061 6460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11621 .loc 1 6460 31 is_stmt 0 view .LVU4062 11622 0190 616C ldr r1, [r4, #68] 6460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11623 .loc 1 6460 9 view .LVU4063 11624 0192 2046 mov r0, r4 11625 0194 FFF7FEFF bl I2C_ITError 11626 .LVL827: 11627 0198 A0E7 b .L715 11628 .L727: 6471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11629 .loc 1 6471 5 is_stmt 1 view .LVU4064 6471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11630 .loc 1 6471 27 is_stmt 0 view .LVU4065 11631 019a 616C ldr r1, [r4, #68] 6471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11632 .loc 1 6471 5 view .LVU4066 11633 019c 2046 mov r0, r4 11634 019e FFF7FEFF bl I2C_ITError 11635 .LVL828: 6474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11636 .loc 1 6474 5 is_stmt 1 view .LVU4067 6474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11637 .loc 1 6474 13 is_stmt 0 view .LVU4068 11638 01a2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11639 01a6 DBB2 uxtb r3, r3 6474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11640 .loc 1 6474 8 view .LVU4069 11641 01a8 282B cmp r3, #40 ARM GAS /tmp/ccSHpINd.s page 405 11642 01aa 13D1 bne .L705 6477:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11643 .loc 1 6477 7 is_stmt 1 view .LVU4070 11644 01ac 2946 mov r1, r5 11645 01ae 2046 mov r0, r4 11646 01b0 FFF7FEFF bl I2C_ITListenCplt 11647 .LVL829: 11648 01b4 0EE0 b .L705 11649 .L728: 6483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11650 .loc 1 6483 5 view .LVU4071 11651 01b6 2046 mov r0, r4 11652 01b8 FFF7FEFF bl I2C_ITSlaveSeqCplt 11653 .LVL830: 6485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11654 .loc 1 6485 5 view .LVU4072 6485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11655 .loc 1 6485 23 is_stmt 0 view .LVU4073 11656 01bc 0B4B ldr r3, .L730 11657 01be E362 str r3, [r4, #44] 6486:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11658 .loc 1 6486 5 is_stmt 1 view .LVU4074 6486:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11659 .loc 1 6486 17 is_stmt 0 view .LVU4075 11660 01c0 2023 movs r3, #32 11661 01c2 84F84130 strb r3, [r4, #65] 6487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11662 .loc 1 6487 5 is_stmt 1 view .LVU4076 6487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11663 .loc 1 6487 25 is_stmt 0 view .LVU4077 11664 01c6 0023 movs r3, #0 11665 01c8 2363 str r3, [r4, #48] 6490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11666 .loc 1 6490 5 is_stmt 1 view .LVU4078 6490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11667 .loc 1 6490 5 view .LVU4079 11668 01ca 84F84030 strb r3, [r4, #64] 6490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11669 .loc 1 6490 5 view .LVU4080 6496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11670 .loc 1 6496 5 view .LVU4081 11671 01ce 2046 mov r0, r4 11672 01d0 FFF7FEFF bl HAL_I2C_ListenCpltCallback 11673 .LVL831: 11674 .L705: 6530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11675 .loc 1 6530 1 is_stmt 0 view .LVU4082 11676 01d4 F8BD pop {r3, r4, r5, r6, r7, pc} 11677 .LVL832: 11678 .L729: 6502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11679 .loc 1 6502 5 is_stmt 1 view .LVU4083 6502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11680 .loc 1 6502 17 is_stmt 0 view .LVU4084 11681 01d6 2023 movs r3, #32 11682 01d8 84F84130 strb r3, [r4, #65] 6503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 406 11683 .loc 1 6503 5 is_stmt 1 view .LVU4085 6503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11684 .loc 1 6503 25 is_stmt 0 view .LVU4086 11685 01dc 0023 movs r3, #0 11686 01de 2363 str r3, [r4, #48] 6506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11687 .loc 1 6506 5 is_stmt 1 view .LVU4087 6506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11688 .loc 1 6506 5 view .LVU4088 11689 01e0 84F84030 strb r3, [r4, #64] 6506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11690 .loc 1 6506 5 view .LVU4089 6512:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11691 .loc 1 6512 5 view .LVU4090 11692 01e4 2046 mov r0, r4 11693 01e6 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 11694 .LVL833: 11695 01ea F3E7 b .L705 11696 .L731: 11697 .align 2 11698 .L730: 11699 01ec 0000FFFF .word -65536 11700 .cfi_endproc 11701 .LFE202: 11703 .section .text.I2C_Slave_ISR_IT,"ax",%progbits 11704 .align 1 11705 .syntax unified 11706 .thumb 11707 .thumb_func 11709 I2C_Slave_ISR_IT: 11710 .LVL834: 11711 .LFB192: 5259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11712 .loc 1 5259 1 view -0 11713 .cfi_startproc 11714 @ args = 0, pretend = 0, frame = 0 11715 @ frame_needed = 0, uses_anonymous_args = 0 5259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11716 .loc 1 5259 1 is_stmt 0 view .LVU4092 11717 0000 10B5 push {r4, lr} 11718 .LCFI124: 11719 .cfi_def_cfa_offset 8 11720 .cfi_offset 4, -8 11721 .cfi_offset 14, -4 11722 0002 0446 mov r4, r0 5260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11723 .loc 1 5260 3 is_stmt 1 view .LVU4093 5260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11724 .loc 1 5260 12 is_stmt 0 view .LVU4094 11725 0004 C06A ldr r0, [r0, #44] 11726 .LVL835: 5261:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11727 .loc 1 5261 3 is_stmt 1 view .LVU4095 5264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11728 .loc 1 5264 3 view .LVU4096 5264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11729 .loc 1 5264 3 view .LVU4097 ARM GAS /tmp/ccSHpINd.s page 407 11730 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 11731 000a 012B cmp r3, #1 11732 000c 00F09B80 beq .L744 5264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11733 .loc 1 5264 3 discriminator 2 view .LVU4098 11734 0010 0123 movs r3, #1 11735 0012 84F84030 strb r3, [r4, #64] 5264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11736 .loc 1 5264 3 discriminator 2 view .LVU4099 5267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11737 .loc 1 5267 3 view .LVU4100 5267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11738 .loc 1 5267 6 is_stmt 0 view .LVU4101 11739 0016 11F0200F tst r1, #32 11740 001a 02D0 beq .L734 5267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11741 .loc 1 5267 61 discriminator 1 view .LVU4102 11742 001c 12F0200F tst r2, #32 11743 0020 16D1 bne .L746 11744 .L734: 5273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11745 .loc 1 5273 8 is_stmt 1 view .LVU4103 5273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11746 .loc 1 5273 11 is_stmt 0 view .LVU4104 11747 0022 11F0100F tst r1, #16 11748 0026 3FD0 beq .L736 5273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11749 .loc 1 5273 63 discriminator 1 view .LVU4105 11750 0028 12F0100F tst r2, #16 11751 002c 3CD0 beq .L736 5280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11752 .loc 1 5280 5 is_stmt 1 view .LVU4106 5280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11753 .loc 1 5280 13 is_stmt 0 view .LVU4107 11754 002e 638D ldrh r3, [r4, #42] 11755 0030 9BB2 uxth r3, r3 5280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11756 .loc 1 5280 8 view .LVU4108 11757 0032 43BB cbnz r3, .L737 5282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11758 .loc 1 5282 7 is_stmt 1 view .LVU4109 5282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11759 .loc 1 5282 16 is_stmt 0 view .LVU4110 11760 0034 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11761 0038 DBB2 uxtb r3, r3 5282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11762 .loc 1 5282 10 view .LVU4111 11763 003a 282B cmp r3, #40 11764 003c 0FD0 beq .L747 11765 .L738: 5289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11766 .loc 1 5289 12 is_stmt 1 view .LVU4112 5289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11767 .loc 1 5289 21 is_stmt 0 view .LVU4113 11768 003e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11769 0042 DBB2 uxtb r3, r3 5289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 408 11770 .loc 1 5289 15 view .LVU4114 11771 0044 292B cmp r3, #41 11772 0046 11D0 beq .L748 11773 .L739: 5304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11774 .loc 1 5304 9 is_stmt 1 view .LVU4115 11775 0048 2368 ldr r3, [r4] 11776 004a 1022 movs r2, #16 11777 .LVL836: 5304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11778 .loc 1 5304 9 is_stmt 0 view .LVU4116 11779 004c DA61 str r2, [r3, #28] 11780 004e 02E0 b .L735 11781 .LVL837: 11782 .L746: 5271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11783 .loc 1 5271 5 is_stmt 1 view .LVU4117 11784 0050 2046 mov r0, r4 11785 .LVL838: 5271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11786 .loc 1 5271 5 is_stmt 0 view .LVU4118 11787 0052 FFF7FEFF bl I2C_ITSlaveCplt 11788 .LVL839: 11789 .L735: 5381:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11790 .loc 1 5381 3 is_stmt 1 view .LVU4119 5384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11791 .loc 1 5384 3 view .LVU4120 5384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11792 .loc 1 5384 3 view .LVU4121 11793 0056 0020 movs r0, #0 11794 0058 84F84000 strb r0, [r4, #64] 5384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11795 .loc 1 5384 3 view .LVU4122 5386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11796 .loc 1 5386 3 view .LVU4123 11797 .L733: 5387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11798 .loc 1 5387 1 is_stmt 0 view .LVU4124 11799 005c 10BD pop {r4, pc} 11800 .LVL840: 11801 .L747: 5282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11802 .loc 1 5282 49 discriminator 1 view .LVU4125 11803 005e B0F1007F cmp r0, #33554432 11804 0062 ECD1 bne .L738 5287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11805 .loc 1 5287 9 is_stmt 1 view .LVU4126 11806 0064 2046 mov r0, r4 11807 .LVL841: 5287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11808 .loc 1 5287 9 is_stmt 0 view .LVU4127 11809 0066 FFF7FEFF bl I2C_ITListenCplt 11810 .LVL842: 5287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11811 .loc 1 5287 9 view .LVU4128 11812 006a F4E7 b .L735 ARM GAS /tmp/ccSHpINd.s page 409 11813 .LVL843: 11814 .L748: 5289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11815 .loc 1 5289 62 discriminator 1 view .LVU4129 11816 006c 10F5803F cmn r0, #65536 11817 0070 EAD0 beq .L739 5292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11818 .loc 1 5292 9 is_stmt 1 view .LVU4130 11819 0072 2368 ldr r3, [r4] 11820 0074 1022 movs r2, #16 11821 .LVL844: 5292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11822 .loc 1 5292 9 is_stmt 0 view .LVU4131 11823 0076 DA61 str r2, [r3, #28] 5295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11824 .loc 1 5295 9 is_stmt 1 view .LVU4132 11825 0078 2046 mov r0, r4 11826 .LVL845: 5295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11827 .loc 1 5295 9 is_stmt 0 view .LVU4133 11828 007a FFF7FEFF bl I2C_Flush_TXDR 11829 .LVL846: 5299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11830 .loc 1 5299 9 is_stmt 1 view .LVU4134 11831 007e 2046 mov r0, r4 11832 0080 FFF7FEFF bl I2C_ITSlaveSeqCplt 11833 .LVL847: 11834 0084 E7E7 b .L735 11835 .LVL848: 11836 .L737: 5311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11837 .loc 1 5311 7 view .LVU4135 11838 0086 2368 ldr r3, [r4] 11839 0088 1022 movs r2, #16 11840 .LVL849: 5311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11841 .loc 1 5311 7 is_stmt 0 view .LVU4136 11842 008a DA61 str r2, [r3, #28] 5314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11843 .loc 1 5314 7 is_stmt 1 view .LVU4137 5314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11844 .loc 1 5314 11 is_stmt 0 view .LVU4138 11845 008c 636C ldr r3, [r4, #68] 5314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11846 .loc 1 5314 23 view .LVU4139 11847 008e 43F00403 orr r3, r3, #4 11848 0092 6364 str r3, [r4, #68] 5316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11849 .loc 1 5316 7 is_stmt 1 view .LVU4140 5316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11850 .loc 1 5316 10 is_stmt 0 view .LVU4141 11851 0094 B0F1807F cmp r0, #16777216 11852 0098 18BF it ne 11853 009a 0028 cmpne r0, #0 11854 009c DBD1 bne .L735 5319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11855 .loc 1 5319 9 is_stmt 1 view .LVU4142 ARM GAS /tmp/ccSHpINd.s page 410 5319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11856 .loc 1 5319 31 is_stmt 0 view .LVU4143 11857 009e 616C ldr r1, [r4, #68] 11858 .LVL850: 5319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11859 .loc 1 5319 9 view .LVU4144 11860 00a0 2046 mov r0, r4 11861 .LVL851: 5319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11862 .loc 1 5319 9 view .LVU4145 11863 00a2 FFF7FEFF bl I2C_ITError 11864 .LVL852: 11865 00a6 D6E7 b .L735 11866 .LVL853: 11867 .L736: 5323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11868 .loc 1 5323 8 is_stmt 1 view .LVU4146 5323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11869 .loc 1 5323 11 is_stmt 0 view .LVU4147 11870 00a8 11F0040F tst r1, #4 11871 00ac 1FD0 beq .L740 5323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11872 .loc 1 5323 65 discriminator 1 view .LVU4148 11873 00ae 12F0040F tst r2, #4 11874 00b2 1CD0 beq .L740 5326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11875 .loc 1 5326 5 is_stmt 1 view .LVU4149 5326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11876 .loc 1 5326 13 is_stmt 0 view .LVU4150 11877 00b4 638D ldrh r3, [r4, #42] 11878 00b6 9BB2 uxth r3, r3 5326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11879 .loc 1 5326 8 view .LVU4151 11880 00b8 73B1 cbz r3, .L741 5329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11881 .loc 1 5329 7 is_stmt 1 view .LVU4152 5329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11882 .loc 1 5329 38 is_stmt 0 view .LVU4153 11883 00ba 2368 ldr r3, [r4] 5329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11884 .loc 1 5329 48 view .LVU4154 11885 00bc 5A6A ldr r2, [r3, #36] 11886 .LVL854: 5329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11887 .loc 1 5329 12 view .LVU4155 11888 00be 636A ldr r3, [r4, #36] 5329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11889 .loc 1 5329 23 view .LVU4156 11890 00c0 1A70 strb r2, [r3] 5332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11891 .loc 1 5332 7 is_stmt 1 view .LVU4157 5332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11892 .loc 1 5332 11 is_stmt 0 view .LVU4158 11893 00c2 636A ldr r3, [r4, #36] 5332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11894 .loc 1 5332 21 view .LVU4159 11895 00c4 0133 adds r3, r3, #1 ARM GAS /tmp/ccSHpINd.s page 411 11896 00c6 6362 str r3, [r4, #36] 5334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 11897 .loc 1 5334 7 is_stmt 1 view .LVU4160 5334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 11898 .loc 1 5334 11 is_stmt 0 view .LVU4161 11899 00c8 238D ldrh r3, [r4, #40] 5334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 11900 .loc 1 5334 21 view .LVU4162 11901 00ca 013B subs r3, r3, #1 11902 00cc 2385 strh r3, [r4, #40] @ movhi 5335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11903 .loc 1 5335 7 is_stmt 1 view .LVU4163 5335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11904 .loc 1 5335 11 is_stmt 0 view .LVU4164 11905 00ce 638D ldrh r3, [r4, #42] 11906 00d0 9BB2 uxth r3, r3 5335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11907 .loc 1 5335 22 view .LVU4165 11908 00d2 013B subs r3, r3, #1 11909 00d4 9BB2 uxth r3, r3 11910 00d6 6385 strh r3, [r4, #42] @ movhi 11911 .L741: 5338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11912 .loc 1 5338 5 is_stmt 1 view .LVU4166 5338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11913 .loc 1 5338 14 is_stmt 0 view .LVU4167 11914 00d8 638D ldrh r3, [r4, #42] 11915 00da 9BB2 uxth r3, r3 5338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11916 .loc 1 5338 8 view .LVU4168 11917 00dc 002B cmp r3, #0 11918 00de BAD1 bne .L735 5338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11919 .loc 1 5338 33 discriminator 1 view .LVU4169 11920 00e0 10F5803F cmn r0, #65536 11921 00e4 B7D0 beq .L735 5342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11922 .loc 1 5342 7 is_stmt 1 view .LVU4170 11923 00e6 2046 mov r0, r4 11924 .LVL855: 5342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11925 .loc 1 5342 7 is_stmt 0 view .LVU4171 11926 00e8 FFF7FEFF bl I2C_ITSlaveSeqCplt 11927 .LVL856: 5342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11928 .loc 1 5342 7 view .LVU4172 11929 00ec B3E7 b .L735 11930 .LVL857: 11931 .L740: 5345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11932 .loc 1 5345 8 is_stmt 1 view .LVU4173 5345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11933 .loc 1 5345 11 is_stmt 0 view .LVU4174 11934 00ee 11F0080F tst r1, #8 11935 00f2 02D0 beq .L742 5345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11936 .loc 1 5345 65 discriminator 1 view .LVU4175 ARM GAS /tmp/ccSHpINd.s page 412 11937 00f4 12F0080F tst r2, #8 11938 00f8 18D1 bne .L749 11939 .L742: 5350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11940 .loc 1 5350 8 is_stmt 1 view .LVU4176 5350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11941 .loc 1 5350 11 is_stmt 0 view .LVU4177 11942 00fa 11F0020F tst r1, #2 11943 00fe AAD0 beq .L735 5350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11944 .loc 1 5350 65 discriminator 1 view .LVU4178 11945 0100 12F0020F tst r2, #2 11946 0104 A7D0 beq .L735 5357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11947 .loc 1 5357 5 is_stmt 1 view .LVU4179 5357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11948 .loc 1 5357 13 is_stmt 0 view .LVU4180 11949 0106 638D ldrh r3, [r4, #42] 11950 0108 9BB2 uxth r3, r3 5357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11951 .loc 1 5357 8 view .LVU4181 11952 010a 9BB1 cbz r3, .L743 5360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11953 .loc 1 5360 7 is_stmt 1 view .LVU4182 5360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11954 .loc 1 5360 35 is_stmt 0 view .LVU4183 11955 010c 626A ldr r2, [r4, #36] 11956 .LVL858: 5360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11957 .loc 1 5360 11 view .LVU4184 11958 010e 2368 ldr r3, [r4] 5360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11959 .loc 1 5360 30 view .LVU4185 11960 0110 1278 ldrb r2, [r2] @ zero_extendqisi2 5360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11961 .loc 1 5360 28 view .LVU4186 11962 0112 9A62 str r2, [r3, #40] 5363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11963 .loc 1 5363 7 is_stmt 1 view .LVU4187 5363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11964 .loc 1 5363 11 is_stmt 0 view .LVU4188 11965 0114 636A ldr r3, [r4, #36] 5363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11966 .loc 1 5363 21 view .LVU4189 11967 0116 0133 adds r3, r3, #1 11968 0118 6362 str r3, [r4, #36] 5365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 11969 .loc 1 5365 7 is_stmt 1 view .LVU4190 5365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 11970 .loc 1 5365 11 is_stmt 0 view .LVU4191 11971 011a 638D ldrh r3, [r4, #42] 11972 011c 9BB2 uxth r3, r3 5365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 11973 .loc 1 5365 22 view .LVU4192 11974 011e 013B subs r3, r3, #1 11975 0120 9BB2 uxth r3, r3 11976 0122 6385 strh r3, [r4, #42] @ movhi ARM GAS /tmp/ccSHpINd.s page 413 5366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11977 .loc 1 5366 7 is_stmt 1 view .LVU4193 5366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11978 .loc 1 5366 11 is_stmt 0 view .LVU4194 11979 0124 238D ldrh r3, [r4, #40] 5366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11980 .loc 1 5366 21 view .LVU4195 11981 0126 013B subs r3, r3, #1 11982 0128 2385 strh r3, [r4, #40] @ movhi 11983 012a 94E7 b .L735 11984 .LVL859: 11985 .L749: 5348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11986 .loc 1 5348 5 is_stmt 1 view .LVU4196 11987 012c 2046 mov r0, r4 11988 .LVL860: 5348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11989 .loc 1 5348 5 is_stmt 0 view .LVU4197 11990 012e FFF7FEFF bl I2C_ITAddrCplt 11991 .LVL861: 5348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11992 .loc 1 5348 5 view .LVU4198 11993 0132 90E7 b .L735 11994 .LVL862: 11995 .L743: 5370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11996 .loc 1 5370 7 is_stmt 1 view .LVU4199 5370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11997 .loc 1 5370 10 is_stmt 0 view .LVU4200 11998 0134 0028 cmp r0, #0 11999 0136 18BF it ne 12000 0138 B0F1807F cmpne r0, #16777216 12001 013c 8BD1 bne .L735 5374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12002 .loc 1 5374 9 is_stmt 1 view .LVU4201 12003 013e 2046 mov r0, r4 12004 .LVL863: 5374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12005 .loc 1 5374 9 is_stmt 0 view .LVU4202 12006 0140 FFF7FEFF bl I2C_ITSlaveSeqCplt 12007 .LVL864: 5374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12008 .loc 1 5374 9 view .LVU4203 12009 0144 87E7 b .L735 12010 .LVL865: 12011 .L744: 5264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12012 .loc 1 5264 3 discriminator 1 view .LVU4204 12013 0146 0220 movs r0, #2 12014 .LVL866: 5264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12015 .loc 1 5264 3 discriminator 1 view .LVU4205 12016 0148 88E7 b .L733 12017 .cfi_endproc 12018 .LFE192: 12020 .section .text.I2C_ITMasterCplt,"ax",%progbits 12021 .align 1 ARM GAS /tmp/ccSHpINd.s page 414 12022 .syntax unified 12023 .thumb 12024 .thumb_func 12026 I2C_ITMasterCplt: 12027 .LVL867: 12028 .LFB201: 6180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmperror; 12029 .loc 1 6180 1 is_stmt 1 view -0 12030 .cfi_startproc 12031 @ args = 0, pretend = 0, frame = 8 12032 @ frame_needed = 0, uses_anonymous_args = 0 6180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmperror; 12033 .loc 1 6180 1 is_stmt 0 view .LVU4207 12034 0000 30B5 push {r4, r5, lr} 12035 .LCFI125: 12036 .cfi_def_cfa_offset 12 12037 .cfi_offset 4, -12 12038 .cfi_offset 5, -8 12039 .cfi_offset 14, -4 12040 0002 83B0 sub sp, sp, #12 12041 .LCFI126: 12042 .cfi_def_cfa_offset 24 12043 0004 0446 mov r4, r0 12044 0006 0D46 mov r5, r1 6181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12045 .loc 1 6181 3 is_stmt 1 view .LVU4208 6182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __IO uint32_t tmpreg; 12046 .loc 1 6182 3 view .LVU4209 12047 .LVL868: 6183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12048 .loc 1 6183 3 view .LVU4210 6186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12049 .loc 1 6186 3 view .LVU4211 12050 0008 0368 ldr r3, [r0] 12051 000a 2022 movs r2, #32 12052 000c DA61 str r2, [r3, #28] 6189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12053 .loc 1 6189 3 view .LVU4212 6189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12054 .loc 1 6189 11 is_stmt 0 view .LVU4213 12055 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 12056 0012 DBB2 uxtb r3, r3 6189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12057 .loc 1 6189 6 view .LVU4214 12058 0014 212B cmp r3, #33 12059 0016 33D0 beq .L762 6194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12060 .loc 1 6194 8 is_stmt 1 view .LVU4215 6194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12061 .loc 1 6194 16 is_stmt 0 view .LVU4216 12062 0018 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 12063 001c DBB2 uxtb r3, r3 6194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12064 .loc 1 6194 11 view .LVU4217 12065 001e 222B cmp r3, #34 12066 0020 34D0 beq .L763 12067 .LVL869: ARM GAS /tmp/ccSHpINd.s page 415 12068 .L752: 6202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12069 .loc 1 6202 3 is_stmt 1 view .LVU4218 6205:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12070 .loc 1 6205 3 view .LVU4219 12071 0022 2268 ldr r2, [r4] 12072 0024 5368 ldr r3, [r2, #4] 12073 0026 23F0FF73 bic r3, r3, #33423360 12074 002a 23F48B33 bic r3, r3, #71168 12075 002e 23F4FF73 bic r3, r3, #510 12076 0032 23F00103 bic r3, r3, #1 12077 0036 5360 str r3, [r2, #4] 6208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 12078 .loc 1 6208 3 view .LVU4220 6208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 12079 .loc 1 6208 23 is_stmt 0 view .LVU4221 12080 0038 0023 movs r3, #0 12081 003a 6363 str r3, [r4, #52] 6209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12082 .loc 1 6209 3 is_stmt 1 view .LVU4222 6209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12083 .loc 1 6209 23 is_stmt 0 view .LVU4223 12084 003c A3F58033 sub r3, r3, #65536 12085 0040 E362 str r3, [r4, #44] 6211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12086 .loc 1 6211 3 is_stmt 1 view .LVU4224 6211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12087 .loc 1 6211 6 is_stmt 0 view .LVU4225 12088 0042 15F0100F tst r5, #16 12089 0046 06D0 beq .L753 6214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12090 .loc 1 6214 5 is_stmt 1 view .LVU4226 12091 0048 2368 ldr r3, [r4] 12092 004a 1022 movs r2, #16 12093 004c DA61 str r2, [r3, #28] 6217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12094 .loc 1 6217 5 view .LVU4227 6217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12095 .loc 1 6217 9 is_stmt 0 view .LVU4228 12096 004e 636C ldr r3, [r4, #68] 6217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12097 .loc 1 6217 21 view .LVU4229 12098 0050 43F00403 orr r3, r3, #4 12099 0054 6364 str r3, [r4, #68] 12100 .L753: 6221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12101 .loc 1 6221 3 is_stmt 1 view .LVU4230 6221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12102 .loc 1 6221 12 is_stmt 0 view .LVU4231 12103 0056 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12104 005a DBB2 uxtb r3, r3 6221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12105 .loc 1 6221 6 view .LVU4232 12106 005c 602B cmp r3, #96 12107 005e 1BD0 beq .L764 12108 .L754: 6229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 416 12109 .loc 1 6229 3 is_stmt 1 view .LVU4233 12110 0060 2046 mov r0, r4 12111 0062 FFF7FEFF bl I2C_Flush_TXDR 12112 .LVL870: 6232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12113 .loc 1 6232 3 view .LVU4234 6232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12114 .loc 1 6232 12 is_stmt 0 view .LVU4235 12115 0066 626C ldr r2, [r4, #68] 12116 .LVL871: 6235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12117 .loc 1 6235 3 is_stmt 1 view .LVU4236 6235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12118 .loc 1 6235 12 is_stmt 0 view .LVU4237 12119 0068 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12120 006c DBB2 uxtb r3, r3 6235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12121 .loc 1 6235 6 view .LVU4238 12122 006e 602B cmp r3, #96 12123 0070 00D0 beq .L755 6235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12124 .loc 1 6235 44 discriminator 1 view .LVU4239 12125 0072 D2B1 cbz r2, .L756 12126 .L755: 6238:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12127 .loc 1 6238 5 is_stmt 1 view .LVU4240 6238:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12128 .loc 1 6238 27 is_stmt 0 view .LVU4241 12129 0074 616C ldr r1, [r4, #68] 6238:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12130 .loc 1 6238 5 view .LVU4242 12131 0076 2046 mov r0, r4 12132 0078 FFF7FEFF bl I2C_ITError 12133 .LVL872: 12134 .L750: 6314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12135 .loc 1 6314 1 view .LVU4243 12136 007c 03B0 add sp, sp, #12 12137 .LCFI127: 12138 .cfi_remember_state 12139 .cfi_def_cfa_offset 12 12140 @ sp needed 12141 007e 30BD pop {r4, r5, pc} 12142 .LVL873: 12143 .L762: 12144 .LCFI128: 12145 .cfi_restore_state 6191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12146 .loc 1 6191 5 is_stmt 1 view .LVU4244 12147 0080 0121 movs r1, #1 12148 .LVL874: 6191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12149 .loc 1 6191 5 is_stmt 0 view .LVU4245 12150 0082 FFF7FEFF bl I2C_Disable_IRQ 12151 .LVL875: 6192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12152 .loc 1 6192 5 is_stmt 1 view .LVU4246 ARM GAS /tmp/ccSHpINd.s page 417 6192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12153 .loc 1 6192 25 is_stmt 0 view .LVU4247 12154 0086 1123 movs r3, #17 12155 0088 2363 str r3, [r4, #48] 12156 008a CAE7 b .L752 12157 .LVL876: 12158 .L763: 6196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12159 .loc 1 6196 5 is_stmt 1 view .LVU4248 12160 008c 0221 movs r1, #2 12161 .LVL877: 6196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12162 .loc 1 6196 5 is_stmt 0 view .LVU4249 12163 008e FFF7FEFF bl I2C_Disable_IRQ 12164 .LVL878: 6197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12165 .loc 1 6197 5 is_stmt 1 view .LVU4250 6197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12166 .loc 1 6197 25 is_stmt 0 view .LVU4251 12167 0092 1223 movs r3, #18 12168 0094 2363 str r3, [r4, #48] 12169 0096 C4E7 b .L752 12170 .L764: 6221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12171 .loc 1 6221 44 discriminator 1 view .LVU4252 12172 0098 15F0040F tst r5, #4 12173 009c E0D0 beq .L754 6224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(tmpreg); 12174 .loc 1 6224 5 is_stmt 1 view .LVU4253 6224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(tmpreg); 12175 .loc 1 6224 27 is_stmt 0 view .LVU4254 12176 009e 2368 ldr r3, [r4] 6224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(tmpreg); 12177 .loc 1 6224 37 view .LVU4255 12178 00a0 5B6A ldr r3, [r3, #36] 12179 00a2 DBB2 uxtb r3, r3 6224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(tmpreg); 12180 .loc 1 6224 12 view .LVU4256 12181 00a4 0193 str r3, [sp, #4] 6225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12182 .loc 1 6225 5 is_stmt 1 view .LVU4257 12183 00a6 019B ldr r3, [sp, #4] 12184 00a8 DAE7 b .L754 12185 .LVL879: 12186 .L756: 6241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12187 .loc 1 6241 8 view .LVU4258 6241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12188 .loc 1 6241 16 is_stmt 0 view .LVU4259 12189 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12190 00ae DBB2 uxtb r3, r3 6241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12191 .loc 1 6241 11 view .LVU4260 12192 00b0 212B cmp r3, #33 12193 00b2 17D0 beq .L765 6276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12194 .loc 1 6276 8 is_stmt 1 view .LVU4261 ARM GAS /tmp/ccSHpINd.s page 418 6276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12195 .loc 1 6276 16 is_stmt 0 view .LVU4262 12196 00b4 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12197 00b8 DBB2 uxtb r3, r3 6276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12198 .loc 1 6276 11 view .LVU4263 12199 00ba 222B cmp r3, #34 12200 00bc DED1 bne .L750 6278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12201 .loc 1 6278 5 is_stmt 1 view .LVU4264 6278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12202 .loc 1 6278 17 is_stmt 0 view .LVU4265 12203 00be 2023 movs r3, #32 12204 00c0 84F84130 strb r3, [r4, #65] 6279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12205 .loc 1 6279 5 is_stmt 1 view .LVU4266 6279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12206 .loc 1 6279 25 is_stmt 0 view .LVU4267 12207 00c4 0023 movs r3, #0 12208 00c6 2363 str r3, [r4, #48] 6281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12209 .loc 1 6281 5 is_stmt 1 view .LVU4268 6281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12210 .loc 1 6281 13 is_stmt 0 view .LVU4269 12211 00c8 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 12212 00cc DBB2 uxtb r3, r3 6281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12213 .loc 1 6281 8 view .LVU4270 12214 00ce 402B cmp r3, #64 12215 00d0 24D0 beq .L766 6297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12216 .loc 1 6297 7 is_stmt 1 view .LVU4271 6297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12217 .loc 1 6297 18 is_stmt 0 view .LVU4272 12218 00d2 0023 movs r3, #0 12219 00d4 84F84230 strb r3, [r4, #66] 6300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12220 .loc 1 6300 7 is_stmt 1 view .LVU4273 6300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12221 .loc 1 6300 7 view .LVU4274 12222 00d8 84F84030 strb r3, [r4, #64] 6300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12223 .loc 1 6300 7 view .LVU4275 6306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12224 .loc 1 6306 7 view .LVU4276 12225 00dc 2046 mov r0, r4 12226 00de FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 12227 .LVL880: 6313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12228 .loc 1 6313 3 view .LVU4277 6314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12229 .loc 1 6314 1 is_stmt 0 view .LVU4278 12230 00e2 CBE7 b .L750 12231 .LVL881: 12232 .L765: 6243:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12233 .loc 1 6243 5 is_stmt 1 view .LVU4279 ARM GAS /tmp/ccSHpINd.s page 419 6243:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12234 .loc 1 6243 17 is_stmt 0 view .LVU4280 12235 00e4 2023 movs r3, #32 12236 00e6 84F84130 strb r3, [r4, #65] 6244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12237 .loc 1 6244 5 is_stmt 1 view .LVU4281 6244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12238 .loc 1 6244 25 is_stmt 0 view .LVU4282 12239 00ea 0023 movs r3, #0 12240 00ec 2363 str r3, [r4, #48] 6246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12241 .loc 1 6246 5 is_stmt 1 view .LVU4283 6246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12242 .loc 1 6246 13 is_stmt 0 view .LVU4284 12243 00ee 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 12244 00f2 DBB2 uxtb r3, r3 6246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12245 .loc 1 6246 8 view .LVU4285 12246 00f4 402B cmp r3, #64 12247 00f6 08D0 beq .L767 6262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12248 .loc 1 6262 7 is_stmt 1 view .LVU4286 6262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12249 .loc 1 6262 18 is_stmt 0 view .LVU4287 12250 00f8 0023 movs r3, #0 12251 00fa 84F84230 strb r3, [r4, #66] 6265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12252 .loc 1 6265 7 is_stmt 1 view .LVU4288 6265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12253 .loc 1 6265 7 view .LVU4289 12254 00fe 84F84030 strb r3, [r4, #64] 6265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12255 .loc 1 6265 7 view .LVU4290 6271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12256 .loc 1 6271 7 view .LVU4291 12257 0102 2046 mov r0, r4 12258 0104 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 12259 .LVL882: 6271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12260 .loc 1 6271 7 is_stmt 0 view .LVU4292 12261 0108 B8E7 b .L750 12262 .LVL883: 12263 .L767: 6248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12264 .loc 1 6248 7 is_stmt 1 view .LVU4293 6248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12265 .loc 1 6248 18 is_stmt 0 view .LVU4294 12266 010a 0023 movs r3, #0 12267 010c 84F84230 strb r3, [r4, #66] 6251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12268 .loc 1 6251 7 is_stmt 1 view .LVU4295 6251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12269 .loc 1 6251 7 view .LVU4296 12270 0110 84F84030 strb r3, [r4, #64] 6251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12271 .loc 1 6251 7 view .LVU4297 6257:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ ARM GAS /tmp/ccSHpINd.s page 420 12272 .loc 1 6257 7 view .LVU4298 12273 0114 2046 mov r0, r4 12274 0116 FFF7FEFF bl HAL_I2C_MemTxCpltCallback 12275 .LVL884: 6257:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12276 .loc 1 6257 7 is_stmt 0 view .LVU4299 12277 011a AFE7 b .L750 12278 .LVL885: 12279 .L766: 6283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12280 .loc 1 6283 7 is_stmt 1 view .LVU4300 6283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12281 .loc 1 6283 18 is_stmt 0 view .LVU4301 12282 011c 0023 movs r3, #0 12283 011e 84F84230 strb r3, [r4, #66] 6286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12284 .loc 1 6286 7 is_stmt 1 view .LVU4302 6286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12285 .loc 1 6286 7 view .LVU4303 12286 0122 84F84030 strb r3, [r4, #64] 6286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12287 .loc 1 6286 7 view .LVU4304 6292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12288 .loc 1 6292 7 view .LVU4305 12289 0126 2046 mov r0, r4 12290 0128 FFF7FEFF bl HAL_I2C_MemRxCpltCallback 12291 .LVL886: 6292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12292 .loc 1 6292 7 is_stmt 0 view .LVU4306 12293 012c A6E7 b .L750 12294 .cfi_endproc 12295 .LFE201: 12297 .section .text.I2C_Master_ISR_IT,"ax",%progbits 12298 .align 1 12299 .syntax unified 12300 .thumb 12301 .thumb_func 12303 I2C_Master_ISR_IT: 12304 .LVL887: 12305 .LFB190: 4941:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t devaddress; 12306 .loc 1 4941 1 is_stmt 1 view -0 12307 .cfi_startproc 12308 @ args = 0, pretend = 0, frame = 0 12309 @ frame_needed = 0, uses_anonymous_args = 0 4942:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12310 .loc 1 4942 3 view .LVU4308 4943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12311 .loc 1 4943 3 view .LVU4309 4946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12312 .loc 1 4946 3 view .LVU4310 4946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12313 .loc 1 4946 3 view .LVU4311 12314 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12315 0004 012B cmp r3, #1 12316 0006 00F0CF80 beq .L784 4941:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t devaddress; ARM GAS /tmp/ccSHpINd.s page 421 12317 .loc 1 4941 1 is_stmt 0 view .LVU4312 12318 000a 70B5 push {r4, r5, r6, lr} 12319 .LCFI129: 12320 .cfi_def_cfa_offset 16 12321 .cfi_offset 4, -16 12322 .cfi_offset 5, -12 12323 .cfi_offset 6, -8 12324 .cfi_offset 14, -4 12325 000c 82B0 sub sp, sp, #8 12326 .LCFI130: 12327 .cfi_def_cfa_offset 24 12328 000e 0446 mov r4, r0 12329 0010 0D46 mov r5, r1 12330 0012 1646 mov r6, r2 4946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12331 .loc 1 4946 3 is_stmt 1 discriminator 2 view .LVU4313 12332 0014 0123 movs r3, #1 12333 0016 80F84030 strb r3, [r0, #64] 4946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12334 .loc 1 4946 3 discriminator 2 view .LVU4314 4948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12335 .loc 1 4948 3 view .LVU4315 4948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12336 .loc 1 4948 6 is_stmt 0 view .LVU4316 12337 001a 11F0100F tst r1, #16 12338 001e 02D0 beq .L770 4948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12339 .loc 1 4948 58 discriminator 1 view .LVU4317 12340 0020 12F0100F tst r2, #16 12341 0024 22D1 bne .L789 12342 .L770: 4962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12343 .loc 1 4962 8 is_stmt 1 view .LVU4318 4962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12344 .loc 1 4962 11 is_stmt 0 view .LVU4319 12345 0026 15F0040F tst r5, #4 12346 002a 29D0 beq .L772 4962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12347 .loc 1 4962 65 discriminator 1 view .LVU4320 12348 002c 16F0040F tst r6, #4 12349 0030 26D0 beq .L772 4966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12350 .loc 1 4966 5 is_stmt 1 view .LVU4321 4966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12351 .loc 1 4966 16 is_stmt 0 view .LVU4322 12352 0032 25F00405 bic r5, r5, #4 12353 .LVL888: 4969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12354 .loc 1 4969 5 is_stmt 1 view .LVU4323 4969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12355 .loc 1 4969 36 is_stmt 0 view .LVU4324 12356 0036 2368 ldr r3, [r4] 4969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12357 .loc 1 4969 46 view .LVU4325 12358 0038 5A6A ldr r2, [r3, #36] 12359 .LVL889: 4969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 422 12360 .loc 1 4969 10 view .LVU4326 12361 003a 636A ldr r3, [r4, #36] 4969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12362 .loc 1 4969 21 view .LVU4327 12363 003c 1A70 strb r2, [r3] 4972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12364 .loc 1 4972 5 is_stmt 1 view .LVU4328 4972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12365 .loc 1 4972 9 is_stmt 0 view .LVU4329 12366 003e 636A ldr r3, [r4, #36] 4972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12367 .loc 1 4972 19 view .LVU4330 12368 0040 0133 adds r3, r3, #1 12369 0042 6362 str r3, [r4, #36] 4974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 12370 .loc 1 4974 5 is_stmt 1 view .LVU4331 4974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 12371 .loc 1 4974 9 is_stmt 0 view .LVU4332 12372 0044 238D ldrh r3, [r4, #40] 4974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 12373 .loc 1 4974 19 view .LVU4333 12374 0046 013B subs r3, r3, #1 12375 0048 2385 strh r3, [r4, #40] @ movhi 4975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12376 .loc 1 4975 5 is_stmt 1 view .LVU4334 4975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12377 .loc 1 4975 9 is_stmt 0 view .LVU4335 12378 004a 638D ldrh r3, [r4, #42] 12379 004c 9BB2 uxth r3, r3 4975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12380 .loc 1 4975 20 view .LVU4336 12381 004e 013B subs r3, r3, #1 12382 0050 9BB2 uxth r3, r3 12383 0052 6385 strh r3, [r4, #42] @ movhi 12384 .LVL890: 12385 .L771: 5075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12386 .loc 1 5075 3 is_stmt 1 view .LVU4337 5077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12387 .loc 1 5077 3 view .LVU4338 5077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12388 .loc 1 5077 6 is_stmt 0 view .LVU4339 12389 0054 15F0200F tst r5, #32 12390 0058 03D0 beq .L783 5077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12391 .loc 1 5077 61 discriminator 1 view .LVU4340 12392 005a 16F0200F tst r6, #32 12393 005e 40F09E80 bne .L790 12394 .L783: 5085:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12395 .loc 1 5085 3 is_stmt 1 view .LVU4341 5085:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12396 .loc 1 5085 3 view .LVU4342 12397 0062 0020 movs r0, #0 12398 0064 84F84000 strb r0, [r4, #64] 5085:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12399 .loc 1 5085 3 view .LVU4343 ARM GAS /tmp/ccSHpINd.s page 423 5087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12400 .loc 1 5087 3 view .LVU4344 5088:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12401 .loc 1 5088 1 is_stmt 0 view .LVU4345 12402 0068 02B0 add sp, sp, #8 12403 .LCFI131: 12404 .cfi_remember_state 12405 .cfi_def_cfa_offset 16 12406 @ sp needed 12407 006a 70BD pop {r4, r5, r6, pc} 12408 .LVL891: 12409 .L789: 12410 .LCFI132: 12411 .cfi_restore_state 4952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12412 .loc 1 4952 5 is_stmt 1 view .LVU4346 12413 006c 0368 ldr r3, [r0] 12414 006e 1022 movs r2, #16 12415 .LVL892: 4952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12416 .loc 1 4952 5 is_stmt 0 view .LVU4347 12417 0070 DA61 str r2, [r3, #28] 4957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12418 .loc 1 4957 5 is_stmt 1 view .LVU4348 4957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12419 .loc 1 4957 9 is_stmt 0 view .LVU4349 12420 0072 436C ldr r3, [r0, #68] 4957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12421 .loc 1 4957 21 view .LVU4350 12422 0074 43F00403 orr r3, r3, #4 12423 0078 4364 str r3, [r0, #68] 4960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12424 .loc 1 4960 5 is_stmt 1 view .LVU4351 12425 007a FFF7FEFF bl I2C_Flush_TXDR 12426 .LVL893: 4960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12427 .loc 1 4960 5 is_stmt 0 view .LVU4352 12428 007e E9E7 b .L771 12429 .LVL894: 12430 .L772: 4977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12431 .loc 1 4977 8 is_stmt 1 view .LVU4353 12432 0080 C5F38013 ubfx r3, r5, #6, #1 4977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12433 .loc 1 4977 11 is_stmt 0 view .LVU4354 12434 0084 15F0400F tst r5, #64 12435 0088 19D1 bne .L773 4977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12436 .loc 1 4977 63 discriminator 1 view .LVU4355 12437 008a 15F0020F tst r5, #2 12438 008e 16D0 beq .L773 4978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))) 12439 .loc 1 4978 66 view .LVU4356 12440 0090 16F0020F tst r6, #2 12441 0094 13D0 beq .L773 4982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12442 .loc 1 4982 5 is_stmt 1 view .LVU4357 ARM GAS /tmp/ccSHpINd.s page 424 4982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12443 .loc 1 4982 13 is_stmt 0 view .LVU4358 12444 0096 638D ldrh r3, [r4, #42] 12445 0098 9BB2 uxth r3, r3 4982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12446 .loc 1 4982 8 view .LVU4359 12447 009a 002B cmp r3, #0 12448 009c DAD0 beq .L771 4985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12449 .loc 1 4985 7 is_stmt 1 view .LVU4360 4985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12450 .loc 1 4985 35 is_stmt 0 view .LVU4361 12451 009e 626A ldr r2, [r4, #36] 12452 .LVL895: 4985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12453 .loc 1 4985 11 view .LVU4362 12454 00a0 2368 ldr r3, [r4] 4985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12455 .loc 1 4985 30 view .LVU4363 12456 00a2 1278 ldrb r2, [r2] @ zero_extendqisi2 4985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12457 .loc 1 4985 28 view .LVU4364 12458 00a4 9A62 str r2, [r3, #40] 4988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12459 .loc 1 4988 7 is_stmt 1 view .LVU4365 4988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12460 .loc 1 4988 11 is_stmt 0 view .LVU4366 12461 00a6 636A ldr r3, [r4, #36] 4988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12462 .loc 1 4988 21 view .LVU4367 12463 00a8 0133 adds r3, r3, #1 12464 00aa 6362 str r3, [r4, #36] 4990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 12465 .loc 1 4990 7 is_stmt 1 view .LVU4368 4990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 12466 .loc 1 4990 11 is_stmt 0 view .LVU4369 12467 00ac 238D ldrh r3, [r4, #40] 4990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 12468 .loc 1 4990 21 view .LVU4370 12469 00ae 013B subs r3, r3, #1 12470 00b0 2385 strh r3, [r4, #40] @ movhi 4991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12471 .loc 1 4991 7 is_stmt 1 view .LVU4371 4991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12472 .loc 1 4991 11 is_stmt 0 view .LVU4372 12473 00b2 638D ldrh r3, [r4, #42] 12474 00b4 9BB2 uxth r3, r3 4991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12475 .loc 1 4991 22 view .LVU4373 12476 00b6 013B subs r3, r3, #1 12477 00b8 9BB2 uxth r3, r3 12478 00ba 6385 strh r3, [r4, #42] @ movhi 12479 00bc CAE7 b .L771 12480 .LVL896: 12481 .L773: 4994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12482 .loc 1 4994 8 is_stmt 1 view .LVU4374 ARM GAS /tmp/ccSHpINd.s page 425 4994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12483 .loc 1 4994 11 is_stmt 0 view .LVU4375 12484 00be 15F0800F tst r5, #128 12485 00c2 4AD0 beq .L774 4994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12486 .loc 1 4994 64 discriminator 1 view .LVU4376 12487 00c4 16F0400F tst r6, #64 12488 00c8 47D0 beq .L774 4997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12489 .loc 1 4997 5 is_stmt 1 view .LVU4377 4997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12490 .loc 1 4997 14 is_stmt 0 view .LVU4378 12491 00ca 638D ldrh r3, [r4, #42] 12492 00cc 9BB2 uxth r3, r3 4997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12493 .loc 1 4997 8 view .LVU4379 12494 00ce 002B cmp r3, #0 12495 00d0 35D0 beq .L775 4997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12496 .loc 1 4997 41 discriminator 1 view .LVU4380 12497 00d2 238D ldrh r3, [r4, #40] 4997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12498 .loc 1 4997 33 discriminator 1 view .LVU4381 12499 00d4 002B cmp r3, #0 12500 00d6 32D1 bne .L775 4999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12501 .loc 1 4999 7 is_stmt 1 view .LVU4382 4999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12502 .loc 1 4999 35 is_stmt 0 view .LVU4383 12503 00d8 2268 ldr r2, [r4] 12504 .LVL897: 4999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12505 .loc 1 4999 45 view .LVU4384 12506 00da 5168 ldr r1, [r2, #4] 12507 .LVL898: 4999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12508 .loc 1 4999 18 view .LVU4385 12509 00dc C1F30901 ubfx r1, r1, #0, #10 12510 .LVL899: 5001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12511 .loc 1 5001 7 is_stmt 1 view .LVU4386 5001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12512 .loc 1 5001 15 is_stmt 0 view .LVU4387 12513 00e0 638D ldrh r3, [r4, #42] 12514 00e2 9BB2 uxth r3, r3 5001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12515 .loc 1 5001 10 view .LVU4388 12516 00e4 FF2B cmp r3, #255 12517 00e6 12D9 bls .L776 5004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12518 .loc 1 5004 9 is_stmt 1 view .LVU4389 5004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12519 .loc 1 5004 13 is_stmt 0 view .LVU4390 12520 00e8 9369 ldr r3, [r2, #24] 5004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12521 .loc 1 5004 12 view .LVU4391 12522 00ea 13F4803F tst r3, #65536 ARM GAS /tmp/ccSHpINd.s page 426 12523 00ee 0BD0 beq .L777 5006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12524 .loc 1 5006 11 is_stmt 1 view .LVU4392 5006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12525 .loc 1 5006 26 is_stmt 0 view .LVU4393 12526 00f0 0123 movs r3, #1 12527 00f2 2385 strh r3, [r4, #40] @ movhi 12528 .L778: 5012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12529 .loc 1 5012 9 is_stmt 1 view .LVU4394 12530 00f4 0023 movs r3, #0 12531 00f6 0093 str r3, [sp] 12532 00f8 4FF08073 mov r3, #16777216 12533 00fc 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 12534 0100 2046 mov r0, r4 12535 .LVL900: 5012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12536 .loc 1 5012 9 is_stmt 0 view .LVU4395 12537 0102 FFF7FEFF bl I2C_TransferConfig 12538 .LVL901: 5012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12539 .loc 1 5012 9 view .LVU4396 12540 0106 A5E7 b .L771 12541 .LVL902: 12542 .L777: 5010:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12543 .loc 1 5010 11 is_stmt 1 view .LVU4397 5010:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12544 .loc 1 5010 26 is_stmt 0 view .LVU4398 12545 0108 FF23 movs r3, #255 12546 010a 2385 strh r3, [r4, #40] @ movhi 12547 010c F2E7 b .L778 12548 .L776: 5016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12549 .loc 1 5016 9 is_stmt 1 view .LVU4399 5016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12550 .loc 1 5016 30 is_stmt 0 view .LVU4400 12551 010e 628D ldrh r2, [r4, #42] 12552 0110 92B2 uxth r2, r2 5016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12553 .loc 1 5016 24 view .LVU4401 12554 0112 2285 strh r2, [r4, #40] @ movhi 5017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12555 .loc 1 5017 9 is_stmt 1 view .LVU4402 5017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12556 .loc 1 5017 17 is_stmt 0 view .LVU4403 12557 0114 E36A ldr r3, [r4, #44] 5017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12558 .loc 1 5017 12 view .LVU4404 12559 0116 13F5803F cmn r3, #65536 12560 011a 07D0 beq .L779 5019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12561 .loc 1 5019 11 is_stmt 1 view .LVU4405 5020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12562 .loc 1 5020 34 is_stmt 0 view .LVU4406 12563 011c E36A ldr r3, [r4, #44] 5019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); ARM GAS /tmp/ccSHpINd.s page 427 12564 .loc 1 5019 11 view .LVU4407 12565 011e 0020 movs r0, #0 12566 .LVL903: 5019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12567 .loc 1 5019 11 view .LVU4408 12568 0120 0090 str r0, [sp] 12569 0122 D2B2 uxtb r2, r2 12570 0124 2046 mov r0, r4 12571 0126 FFF7FEFF bl I2C_TransferConfig 12572 .LVL904: 5019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12573 .loc 1 5019 11 view .LVU4409 12574 012a 93E7 b .L771 12575 .LVL905: 12576 .L779: 5024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12577 .loc 1 5024 11 is_stmt 1 view .LVU4410 12578 012c 0023 movs r3, #0 12579 012e 0093 str r3, [sp] 12580 0130 4FF00073 mov r3, #33554432 12581 0134 D2B2 uxtb r2, r2 12582 0136 2046 mov r0, r4 12583 .LVL906: 5024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12584 .loc 1 5024 11 is_stmt 0 view .LVU4411 12585 0138 FFF7FEFF bl I2C_TransferConfig 12586 .LVL907: 5024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12587 .loc 1 5024 11 view .LVU4412 12588 013c 8AE7 b .L771 12589 .LVL908: 12590 .L775: 5032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12591 .loc 1 5032 7 is_stmt 1 view .LVU4413 5032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12592 .loc 1 5032 11 is_stmt 0 view .LVU4414 12593 013e 2368 ldr r3, [r4] 12594 0140 5B68 ldr r3, [r3, #4] 5032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12595 .loc 1 5032 10 view .LVU4415 12596 0142 13F0007F tst r3, #33554432 12597 0146 03D1 bne .L780 5035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12598 .loc 1 5035 9 is_stmt 1 view .LVU4416 12599 0148 2046 mov r0, r4 12600 .LVL909: 5035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12601 .loc 1 5035 9 is_stmt 0 view .LVU4417 12602 014a FFF7FEFF bl I2C_ITMasterSeqCplt 12603 .LVL910: 5035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12604 .loc 1 5035 9 view .LVU4418 12605 014e 81E7 b .L771 12606 .LVL911: 12607 .L780: 5041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12608 .loc 1 5041 9 is_stmt 1 view .LVU4419 ARM GAS /tmp/ccSHpINd.s page 428 12609 0150 4021 movs r1, #64 12610 .LVL912: 5041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12611 .loc 1 5041 9 is_stmt 0 view .LVU4420 12612 0152 2046 mov r0, r4 12613 .LVL913: 5041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12614 .loc 1 5041 9 view .LVU4421 12615 0154 FFF7FEFF bl I2C_ITError 12616 .LVL914: 5041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12617 .loc 1 5041 9 view .LVU4422 12618 0158 7CE7 b .L771 12619 .LVL915: 12620 .L774: 5045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12621 .loc 1 5045 8 is_stmt 1 view .LVU4423 5045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12622 .loc 1 5045 11 is_stmt 0 view .LVU4424 12623 015a 002B cmp r3, #0 12624 015c 3FF47AAF beq .L771 5045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12625 .loc 1 5045 63 discriminator 1 view .LVU4425 12626 0160 16F0400F tst r6, #64 12627 0164 3FF476AF beq .L771 5048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12628 .loc 1 5048 5 is_stmt 1 view .LVU4426 5048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12629 .loc 1 5048 13 is_stmt 0 view .LVU4427 12630 0168 638D ldrh r3, [r4, #42] 12631 016a 9BB2 uxth r3, r3 5048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12632 .loc 1 5048 8 view .LVU4428 12633 016c 93B9 cbnz r3, .L781 5050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12634 .loc 1 5050 7 is_stmt 1 view .LVU4429 5050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12635 .loc 1 5050 11 is_stmt 0 view .LVU4430 12636 016e 2368 ldr r3, [r4] 12637 0170 5A68 ldr r2, [r3, #4] 12638 .LVL916: 5050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12639 .loc 1 5050 10 view .LVU4431 12640 0172 12F0007F tst r2, #33554432 12641 0176 7FF46DAF bne .L771 5053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12642 .loc 1 5053 9 is_stmt 1 view .LVU4432 5053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12643 .loc 1 5053 17 is_stmt 0 view .LVU4433 12644 017a E26A ldr r2, [r4, #44] 5053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12645 .loc 1 5053 12 view .LVU4434 12646 017c 12F5803F cmn r2, #65536 12647 0180 04D1 bne .L782 5056:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12648 .loc 1 5056 11 is_stmt 1 view .LVU4435 5056:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 429 12649 .loc 1 5056 25 is_stmt 0 view .LVU4436 12650 0182 5A68 ldr r2, [r3, #4] 5056:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12651 .loc 1 5056 31 view .LVU4437 12652 0184 42F48042 orr r2, r2, #16384 12653 0188 5A60 str r2, [r3, #4] 12654 018a 63E7 b .L771 12655 .L782: 5061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12656 .loc 1 5061 11 is_stmt 1 view .LVU4438 12657 018c 2046 mov r0, r4 12658 .LVL917: 5061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12659 .loc 1 5061 11 is_stmt 0 view .LVU4439 12660 018e FFF7FEFF bl I2C_ITMasterSeqCplt 12661 .LVL918: 5061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12662 .loc 1 5061 11 view .LVU4440 12663 0192 5FE7 b .L771 12664 .LVL919: 12665 .L781: 5069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12666 .loc 1 5069 7 is_stmt 1 view .LVU4441 12667 0194 4021 movs r1, #64 12668 .LVL920: 5069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12669 .loc 1 5069 7 is_stmt 0 view .LVU4442 12670 0196 2046 mov r0, r4 12671 .LVL921: 5069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12672 .loc 1 5069 7 view .LVU4443 12673 0198 FFF7FEFF bl I2C_ITError 12674 .LVL922: 5069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12675 .loc 1 5069 7 view .LVU4444 12676 019c 5AE7 b .L771 12677 .LVL923: 12678 .L790: 5081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12679 .loc 1 5081 5 is_stmt 1 view .LVU4445 12680 019e 2946 mov r1, r5 12681 01a0 2046 mov r0, r4 12682 01a2 FFF7FEFF bl I2C_ITMasterCplt 12683 .LVL924: 12684 01a6 5CE7 b .L783 12685 .LVL925: 12686 .L784: 12687 .LCFI133: 12688 .cfi_def_cfa_offset 0 12689 .cfi_restore 4 12690 .cfi_restore 5 12691 .cfi_restore 6 12692 .cfi_restore 14 4946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12693 .loc 1 4946 3 is_stmt 0 discriminator 1 view .LVU4446 12694 01a8 0220 movs r0, #2 12695 .LVL926: ARM GAS /tmp/ccSHpINd.s page 430 5088:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12696 .loc 1 5088 1 view .LVU4447 12697 01aa 7047 bx lr 12698 .cfi_endproc 12699 .LFE190: 12701 .section .text.I2C_Mem_ISR_DMA,"ax",%progbits 12702 .align 1 12703 .syntax unified 12704 .thumb 12705 .thumb_func 12707 I2C_Mem_ISR_DMA: 12708 .LVL927: 12709 .LFB194: 5547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 12710 .loc 1 5547 1 is_stmt 1 view -0 12711 .cfi_startproc 12712 @ args = 0, pretend = 0, frame = 0 12713 @ frame_needed = 0, uses_anonymous_args = 0 5548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12714 .loc 1 5548 3 view .LVU4449 5551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12715 .loc 1 5551 3 view .LVU4450 5551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12716 .loc 1 5551 3 view .LVU4451 12717 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12718 0004 012B cmp r3, #1 12719 0006 00F0DC80 beq .L810 5547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 12720 .loc 1 5547 1 is_stmt 0 view .LVU4452 12721 000a 10B5 push {r4, lr} 12722 .LCFI134: 12723 .cfi_def_cfa_offset 8 12724 .cfi_offset 4, -8 12725 .cfi_offset 14, -4 12726 000c 82B0 sub sp, sp, #8 12727 .LCFI135: 12728 .cfi_def_cfa_offset 16 12729 000e 0446 mov r4, r0 5551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12730 .loc 1 5551 3 is_stmt 1 discriminator 2 view .LVU4453 12731 0010 0123 movs r3, #1 12732 0012 80F84030 strb r3, [r0, #64] 5551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12733 .loc 1 5551 3 discriminator 2 view .LVU4454 5553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12734 .loc 1 5553 3 view .LVU4455 5553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12735 .loc 1 5553 6 is_stmt 0 view .LVU4456 12736 0016 11F0100F tst r1, #16 12737 001a 02D0 beq .L793 5553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12738 .loc 1 5553 55 discriminator 1 view .LVU4457 12739 001c 12F0100F tst r2, #16 12740 0020 10D1 bne .L816 12741 .L793: 5570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12742 .loc 1 5570 8 is_stmt 1 view .LVU4458 ARM GAS /tmp/ccSHpINd.s page 431 5570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12743 .loc 1 5570 11 is_stmt 0 view .LVU4459 12744 0022 11F0020F tst r1, #2 12745 0026 1BD0 beq .L795 5570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12746 .loc 1 5570 62 discriminator 1 view .LVU4460 12747 0028 12F0020F tst r2, #2 12748 002c 18D0 beq .L795 5574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12749 .loc 1 5574 5 is_stmt 1 view .LVU4461 5574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12750 .loc 1 5574 9 is_stmt 0 view .LVU4462 12751 002e 2368 ldr r3, [r4] 5574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12752 .loc 1 5574 32 view .LVU4463 12753 0030 226D ldr r2, [r4, #80] 12754 .LVL928: 5574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12755 .loc 1 5574 26 view .LVU4464 12756 0032 9A62 str r2, [r3, #40] 5577:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12757 .loc 1 5577 5 is_stmt 1 view .LVU4465 5577:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12758 .loc 1 5577 22 is_stmt 0 view .LVU4466 12759 0034 4FF0FF33 mov r3, #-1 12760 0038 2365 str r3, [r4, #80] 12761 .LVL929: 12762 .L794: 5693:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12763 .loc 1 5693 3 is_stmt 1 view .LVU4467 5696:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12764 .loc 1 5696 3 view .LVU4468 5696:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12765 .loc 1 5696 3 view .LVU4469 12766 003a 0020 movs r0, #0 12767 003c 84F84000 strb r0, [r4, #64] 5696:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12768 .loc 1 5696 3 view .LVU4470 5698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12769 .loc 1 5698 3 view .LVU4471 5699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12770 .loc 1 5699 1 is_stmt 0 view .LVU4472 12771 0040 02B0 add sp, sp, #8 12772 .LCFI136: 12773 .cfi_remember_state 12774 .cfi_def_cfa_offset 8 12775 @ sp needed 12776 0042 10BD pop {r4, pc} 12777 .LVL930: 12778 .L816: 12779 .LCFI137: 12780 .cfi_restore_state 5557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12781 .loc 1 5557 5 is_stmt 1 view .LVU4473 12782 0044 0368 ldr r3, [r0] 12783 0046 1022 movs r2, #16 12784 .LVL931: ARM GAS /tmp/ccSHpINd.s page 432 5557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12785 .loc 1 5557 5 is_stmt 0 view .LVU4474 12786 0048 DA61 str r2, [r3, #28] 5560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12787 .loc 1 5560 5 is_stmt 1 view .LVU4475 5560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12788 .loc 1 5560 9 is_stmt 0 view .LVU4476 12789 004a 436C ldr r3, [r0, #68] 5560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12790 .loc 1 5560 21 view .LVU4477 12791 004c 43F00403 orr r3, r3, #4 12792 0050 4364 str r3, [r0, #68] 5565:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12793 .loc 1 5565 5 is_stmt 1 view .LVU4478 12794 0052 2021 movs r1, #32 12795 .LVL932: 5565:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12796 .loc 1 5565 5 is_stmt 0 view .LVU4479 12797 0054 FFF7FEFF bl I2C_Enable_IRQ 12798 .LVL933: 5568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12799 .loc 1 5568 5 is_stmt 1 view .LVU4480 12800 0058 2046 mov r0, r4 12801 005a FFF7FEFF bl I2C_Flush_TXDR 12802 .LVL934: 12803 005e ECE7 b .L794 12804 .LVL935: 12805 .L795: 5579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12806 .loc 1 5579 8 view .LVU4481 5579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12807 .loc 1 5579 11 is_stmt 0 view .LVU4482 12808 0060 11F0800F tst r1, #128 12809 0064 02D0 beq .L796 5579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12810 .loc 1 5579 61 discriminator 1 view .LVU4483 12811 0066 12F0400F tst r2, #64 12812 006a 0FD1 bne .L817 12813 .L796: 5632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12814 .loc 1 5632 8 is_stmt 1 view .LVU4484 5632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12815 .loc 1 5632 11 is_stmt 0 view .LVU4485 12816 006c 11F0400F tst r1, #64 12817 0070 02D0 beq .L803 5632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12818 .loc 1 5632 60 discriminator 1 view .LVU4486 12819 0072 12F0400F tst r2, #64 12820 0076 58D1 bne .L818 12821 .L803: 5684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12822 .loc 1 5684 8 is_stmt 1 view .LVU4487 5684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12823 .loc 1 5684 11 is_stmt 0 view .LVU4488 12824 0078 11F0200F tst r1, #32 12825 007c DDD0 beq .L794 5684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) ARM GAS /tmp/ccSHpINd.s page 433 12826 .loc 1 5684 63 discriminator 1 view .LVU4489 12827 007e 12F0200F tst r2, #32 12828 0082 DAD0 beq .L794 5688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12829 .loc 1 5688 5 is_stmt 1 view .LVU4490 12830 0084 2046 mov r0, r4 12831 .LVL936: 5688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12832 .loc 1 5688 5 is_stmt 0 view .LVU4491 12833 0086 FFF7FEFF bl I2C_ITMasterCplt 12834 .LVL937: 5688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12835 .loc 1 5688 5 view .LVU4492 12836 008a D6E7 b .L794 12837 .LVL938: 12838 .L817: 5583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12839 .loc 1 5583 5 is_stmt 1 view .LVU4493 12840 008c 0121 movs r1, #1 12841 .LVL939: 5583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12842 .loc 1 5583 5 is_stmt 0 view .LVU4494 12843 008e 2046 mov r0, r4 12844 .LVL940: 5583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12845 .loc 1 5583 5 view .LVU4495 12846 0090 FFF7FEFF bl I2C_Disable_IRQ 12847 .LVL941: 5586:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12848 .loc 1 5586 5 is_stmt 1 view .LVU4496 12849 0094 1021 movs r1, #16 12850 0096 2046 mov r0, r4 12851 0098 FFF7FEFF bl I2C_Enable_IRQ 12852 .LVL942: 5588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12853 .loc 1 5588 5 view .LVU4497 5588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12854 .loc 1 5588 13 is_stmt 0 view .LVU4498 12855 009c 638D ldrh r3, [r4, #42] 12856 009e 9BB2 uxth r3, r3 5588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12857 .loc 1 5588 8 view .LVU4499 12858 00a0 002B cmp r3, #0 12859 00a2 3DD0 beq .L797 5591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12860 .loc 1 5591 7 is_stmt 1 view .LVU4500 5591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12861 .loc 1 5591 15 is_stmt 0 view .LVU4501 12862 00a4 638D ldrh r3, [r4, #42] 12863 00a6 9BB2 uxth r3, r3 5591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12864 .loc 1 5591 10 view .LVU4502 12865 00a8 FF2B cmp r3, #255 12866 00aa 25D9 bls .L798 5594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12867 .loc 1 5594 9 is_stmt 1 view .LVU4503 5594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 434 12868 .loc 1 5594 13 is_stmt 0 view .LVU4504 12869 00ac 2368 ldr r3, [r4] 12870 00ae 9B69 ldr r3, [r3, #24] 5594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12871 .loc 1 5594 12 view .LVU4505 12872 00b0 13F4803F tst r3, #65536 12873 00b4 1DD0 beq .L799 5596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12874 .loc 1 5596 11 is_stmt 1 view .LVU4506 5596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12875 .loc 1 5596 26 is_stmt 0 view .LVU4507 12876 00b6 0123 movs r3, #1 12877 00b8 2385 strh r3, [r4, #40] @ movhi 12878 .L800: 5602:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12879 .loc 1 5602 9 is_stmt 1 view .LVU4508 5602:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12880 .loc 1 5602 48 is_stmt 0 view .LVU4509 12881 00ba E16C ldr r1, [r4, #76] 5602:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12882 .loc 1 5602 9 view .LVU4510 12883 00bc 0023 movs r3, #0 12884 00be 0093 str r3, [sp] 12885 00c0 4FF08073 mov r3, #16777216 12886 00c4 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 12887 00c8 89B2 uxth r1, r1 12888 00ca 2046 mov r0, r4 12889 00cc FFF7FEFF bl I2C_TransferConfig 12890 .LVL943: 12891 .L801: 5613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12892 .loc 1 5613 7 is_stmt 1 view .LVU4511 5613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12893 .loc 1 5613 11 is_stmt 0 view .LVU4512 12894 00d0 638D ldrh r3, [r4, #42] 12895 00d2 9BB2 uxth r3, r3 5613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12896 .loc 1 5613 30 view .LVU4513 12897 00d4 228D ldrh r2, [r4, #40] 5613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12898 .loc 1 5613 23 view .LVU4514 12899 00d6 9B1A subs r3, r3, r2 12900 00d8 9BB2 uxth r3, r3 12901 00da 6385 strh r3, [r4, #42] @ movhi 5616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12902 .loc 1 5616 7 is_stmt 1 view .LVU4515 5616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12903 .loc 1 5616 15 is_stmt 0 view .LVU4516 12904 00dc 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12905 00e0 DBB2 uxtb r3, r3 5616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12906 .loc 1 5616 10 view .LVU4517 12907 00e2 222B cmp r3, #34 12908 00e4 16D0 beq .L819 5622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12909 .loc 1 5622 9 is_stmt 1 view .LVU4518 5622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 435 12910 .loc 1 5622 13 is_stmt 0 view .LVU4519 12911 00e6 2268 ldr r2, [r4] 5622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12912 .loc 1 5622 23 view .LVU4520 12913 00e8 1368 ldr r3, [r2] 5622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12914 .loc 1 5622 29 view .LVU4521 12915 00ea 43F48043 orr r3, r3, #16384 12916 00ee 1360 str r3, [r2] 12917 00f0 A3E7 b .L794 12918 .L799: 5600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12919 .loc 1 5600 11 is_stmt 1 view .LVU4522 5600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12920 .loc 1 5600 26 is_stmt 0 view .LVU4523 12921 00f2 FF23 movs r3, #255 12922 00f4 2385 strh r3, [r4, #40] @ movhi 12923 00f6 E0E7 b .L800 12924 .L798: 5607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12925 .loc 1 5607 9 is_stmt 1 view .LVU4524 5607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12926 .loc 1 5607 30 is_stmt 0 view .LVU4525 12927 00f8 628D ldrh r2, [r4, #42] 12928 00fa 92B2 uxth r2, r2 5607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12929 .loc 1 5607 24 view .LVU4526 12930 00fc 2285 strh r2, [r4, #40] @ movhi 5608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12931 .loc 1 5608 9 is_stmt 1 view .LVU4527 5608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12932 .loc 1 5608 48 is_stmt 0 view .LVU4528 12933 00fe E16C ldr r1, [r4, #76] 5608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12934 .loc 1 5608 9 view .LVU4529 12935 0100 0023 movs r3, #0 12936 0102 0093 str r3, [sp] 12937 0104 4FF00073 mov r3, #33554432 12938 0108 D2B2 uxtb r2, r2 12939 010a 89B2 uxth r1, r1 12940 010c 2046 mov r0, r4 12941 010e FFF7FEFF bl I2C_TransferConfig 12942 .LVL944: 12943 0112 DDE7 b .L801 12944 .L819: 5618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12945 .loc 1 5618 9 is_stmt 1 view .LVU4530 5618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12946 .loc 1 5618 13 is_stmt 0 view .LVU4531 12947 0114 2268 ldr r2, [r4] 5618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12948 .loc 1 5618 23 view .LVU4532 12949 0116 1368 ldr r3, [r2] 5618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12950 .loc 1 5618 29 view .LVU4533 12951 0118 43F40043 orr r3, r3, #32768 12952 011c 1360 str r3, [r2] ARM GAS /tmp/ccSHpINd.s page 436 12953 011e 8CE7 b .L794 12954 .L797: 5629:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12955 .loc 1 5629 7 is_stmt 1 view .LVU4534 12956 0120 4021 movs r1, #64 12957 0122 2046 mov r0, r4 12958 0124 FFF7FEFF bl I2C_ITError 12959 .LVL945: 12960 0128 87E7 b .L794 12961 .LVL946: 12962 .L818: 5636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12963 .loc 1 5636 5 view .LVU4535 12964 012a 0121 movs r1, #1 12965 .LVL947: 5636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12966 .loc 1 5636 5 is_stmt 0 view .LVU4536 12967 012c 2046 mov r0, r4 12968 .LVL948: 5636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12969 .loc 1 5636 5 view .LVU4537 12970 012e FFF7FEFF bl I2C_Disable_IRQ 12971 .LVL949: 5639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12972 .loc 1 5639 5 is_stmt 1 view .LVU4538 12973 0132 1021 movs r1, #16 12974 0134 2046 mov r0, r4 12975 0136 FFF7FEFF bl I2C_Enable_IRQ 12976 .LVL950: 5641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12977 .loc 1 5641 5 view .LVU4539 5641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12978 .loc 1 5641 13 is_stmt 0 view .LVU4540 12979 013a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12980 013e DBB2 uxtb r3, r3 5641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12981 .loc 1 5641 8 view .LVU4541 12982 0140 222B cmp r3, #34 12983 0142 26D0 beq .L811 5548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12984 .loc 1 5548 12 view .LVU4542 12985 0144 2048 ldr r0, .L821 12986 .L804: 12987 .LVL951: 5646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12988 .loc 1 5646 5 is_stmt 1 view .LVU4543 5646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12989 .loc 1 5646 13 is_stmt 0 view .LVU4544 12990 0146 638D ldrh r3, [r4, #42] 12991 0148 9BB2 uxth r3, r3 5646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12992 .loc 1 5646 8 view .LVU4545 12993 014a FF2B cmp r3, #255 12994 014c 26D9 bls .L805 5649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12995 .loc 1 5649 7 is_stmt 1 view .LVU4546 5649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 437 12996 .loc 1 5649 11 is_stmt 0 view .LVU4547 12997 014e 2368 ldr r3, [r4] 12998 0150 9B69 ldr r3, [r3, #24] 5649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12999 .loc 1 5649 10 view .LVU4548 13000 0152 13F4803F tst r3, #65536 13001 0156 1ED0 beq .L806 5651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13002 .loc 1 5651 9 is_stmt 1 view .LVU4549 5651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13003 .loc 1 5651 24 is_stmt 0 view .LVU4550 13004 0158 0123 movs r3, #1 13005 015a 2385 strh r3, [r4, #40] @ movhi 13006 .L807: 5659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 13007 .loc 1 5659 7 is_stmt 1 view .LVU4551 5659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 13008 .loc 1 5659 46 is_stmt 0 view .LVU4552 13009 015c E16C ldr r1, [r4, #76] 5659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 13010 .loc 1 5659 7 view .LVU4553 13011 015e 0090 str r0, [sp] 13012 0160 4FF08073 mov r3, #16777216 13013 0164 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 13014 0168 89B2 uxth r1, r1 13015 016a 2046 mov r0, r4 13016 .LVL952: 5659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 13017 .loc 1 5659 7 view .LVU4554 13018 016c FFF7FEFF bl I2C_TransferConfig 13019 .LVL953: 13020 .L808: 5672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13021 .loc 1 5672 5 is_stmt 1 view .LVU4555 5672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13022 .loc 1 5672 9 is_stmt 0 view .LVU4556 13023 0170 638D ldrh r3, [r4, #42] 13024 0172 9BB2 uxth r3, r3 5672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13025 .loc 1 5672 28 view .LVU4557 13026 0174 228D ldrh r2, [r4, #40] 5672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13027 .loc 1 5672 21 view .LVU4558 13028 0176 9B1A subs r3, r3, r2 13029 0178 9BB2 uxth r3, r3 13030 017a 6385 strh r3, [r4, #42] @ movhi 5675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13031 .loc 1 5675 5 is_stmt 1 view .LVU4559 5675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13032 .loc 1 5675 13 is_stmt 0 view .LVU4560 13033 017c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13034 0180 DBB2 uxtb r3, r3 5675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13035 .loc 1 5675 8 view .LVU4561 13036 0182 222B cmp r3, #34 13037 0184 17D0 beq .L820 5681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 438 13038 .loc 1 5681 7 is_stmt 1 view .LVU4562 5681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13039 .loc 1 5681 11 is_stmt 0 view .LVU4563 13040 0186 2268 ldr r2, [r4] 5681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13041 .loc 1 5681 21 view .LVU4564 13042 0188 1368 ldr r3, [r2] 5681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13043 .loc 1 5681 27 view .LVU4565 13044 018a 43F48043 orr r3, r3, #16384 13045 018e 1360 str r3, [r2] 13046 0190 53E7 b .L794 13047 .LVL954: 13048 .L811: 5643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13049 .loc 1 5643 17 view .LVU4566 13050 0192 0E48 ldr r0, .L821+4 13051 0194 D7E7 b .L804 13052 .LVL955: 13053 .L806: 5655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13054 .loc 1 5655 9 is_stmt 1 view .LVU4567 5655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13055 .loc 1 5655 24 is_stmt 0 view .LVU4568 13056 0196 FF23 movs r3, #255 13057 0198 2385 strh r3, [r4, #40] @ movhi 13058 019a DFE7 b .L807 13059 .L805: 5664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13060 .loc 1 5664 7 is_stmt 1 view .LVU4569 5664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13061 .loc 1 5664 28 is_stmt 0 view .LVU4570 13062 019c 628D ldrh r2, [r4, #42] 13063 019e 92B2 uxth r2, r2 5664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13064 .loc 1 5664 22 view .LVU4571 13065 01a0 2285 strh r2, [r4, #40] @ movhi 5667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13066 .loc 1 5667 7 is_stmt 1 view .LVU4572 5667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13067 .loc 1 5667 46 is_stmt 0 view .LVU4573 13068 01a2 E16C ldr r1, [r4, #76] 5667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13069 .loc 1 5667 7 view .LVU4574 13070 01a4 0090 str r0, [sp] 13071 01a6 4FF00073 mov r3, #33554432 13072 01aa D2B2 uxtb r2, r2 13073 01ac 89B2 uxth r1, r1 13074 01ae 2046 mov r0, r4 13075 .LVL956: 5667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13076 .loc 1 5667 7 view .LVU4575 13077 01b0 FFF7FEFF bl I2C_TransferConfig 13078 .LVL957: 5667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13079 .loc 1 5667 7 view .LVU4576 13080 01b4 DCE7 b .L808 ARM GAS /tmp/ccSHpINd.s page 439 13081 .L820: 5677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13082 .loc 1 5677 7 is_stmt 1 view .LVU4577 5677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13083 .loc 1 5677 11 is_stmt 0 view .LVU4578 13084 01b6 2268 ldr r2, [r4] 5677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13085 .loc 1 5677 21 view .LVU4579 13086 01b8 1368 ldr r3, [r2] 5677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13087 .loc 1 5677 27 view .LVU4580 13088 01ba 43F40043 orr r3, r3, #32768 13089 01be 1360 str r3, [r2] 13090 01c0 3BE7 b .L794 13091 .LVL958: 13092 .L810: 13093 .LCFI138: 13094 .cfi_def_cfa_offset 0 13095 .cfi_restore 4 13096 .cfi_restore 14 5551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13097 .loc 1 5551 3 discriminator 1 view .LVU4581 13098 01c2 0220 movs r0, #2 13099 .LVL959: 5699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13100 .loc 1 5699 1 view .LVU4582 13101 01c4 7047 bx lr 13102 .L822: 13103 01c6 00BF .align 2 13104 .L821: 13105 01c8 00200080 .word -2147475456 13106 01cc 00240080 .word -2147474432 13107 .cfi_endproc 13108 .LFE194: 13110 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits 13111 .align 1 13112 .syntax unified 13113 .thumb 13114 .thumb_func 13116 I2C_Slave_ISR_DMA: 13117 .LVL960: 13118 .LFB195: 5711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 13119 .loc 1 5711 1 is_stmt 1 view -0 13120 .cfi_startproc 13121 @ args = 0, pretend = 0, frame = 0 13122 @ frame_needed = 0, uses_anonymous_args = 0 5711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 13123 .loc 1 5711 1 is_stmt 0 view .LVU4584 13124 0000 70B5 push {r4, r5, r6, lr} 13125 .LCFI139: 13126 .cfi_def_cfa_offset 16 13127 .cfi_offset 4, -16 13128 .cfi_offset 5, -12 13129 .cfi_offset 6, -8 13130 .cfi_offset 14, -4 13131 0002 0446 mov r4, r0 ARM GAS /tmp/ccSHpINd.s page 440 5712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13132 .loc 1 5712 3 is_stmt 1 view .LVU4585 5712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13133 .loc 1 5712 12 is_stmt 0 view .LVU4586 13134 0004 C06A ldr r0, [r0, #44] 13135 .LVL961: 5713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13136 .loc 1 5713 3 is_stmt 1 view .LVU4587 5714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13137 .loc 1 5714 3 view .LVU4588 5717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13138 .loc 1 5717 3 view .LVU4589 5717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13139 .loc 1 5717 3 view .LVU4590 13140 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 13141 000a 012B cmp r3, #1 13142 000c 00F08880 beq .L840 5717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13143 .loc 1 5717 3 discriminator 2 view .LVU4591 13144 0010 0123 movs r3, #1 13145 0012 84F84030 strb r3, [r4, #64] 5717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13146 .loc 1 5717 3 discriminator 2 view .LVU4592 5720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13147 .loc 1 5720 3 view .LVU4593 5720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13148 .loc 1 5720 6 is_stmt 0 view .LVU4594 13149 0016 11F0200F tst r1, #32 13150 001a 02D0 beq .L825 5720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13151 .loc 1 5720 58 discriminator 1 view .LVU4595 13152 001c 12F0200F tst r2, #32 13153 0020 19D1 bne .L845 13154 .L825: 5726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13155 .loc 1 5726 8 is_stmt 1 view .LVU4596 5726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13156 .loc 1 5726 11 is_stmt 0 view .LVU4597 13157 0022 11F0100F tst r1, #16 13158 0026 6DD0 beq .L827 5726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13159 .loc 1 5726 60 discriminator 1 view .LVU4598 13160 0028 12F0100F tst r2, #16 13161 002c 6AD0 beq .L827 5733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13162 .loc 1 5733 5 is_stmt 1 view .LVU4599 13163 002e C2F38036 ubfx r6, r2, #14, #1 5733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13164 .loc 1 5733 8 is_stmt 0 view .LVU4600 13165 0032 12F4804F tst r2, #16384 13166 0036 02D1 bne .L828 5733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13167 .loc 1 5733 68 discriminator 1 view .LVU4601 13168 0038 12F4004F tst r2, #32768 13169 003c 5ED0 beq .L829 13170 .L828: 5737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 441 13171 .loc 1 5737 7 is_stmt 1 view .LVU4602 5737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13172 .loc 1 5737 15 is_stmt 0 view .LVU4603 13173 003e E36B ldr r3, [r4, #60] 5737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13174 .loc 1 5737 10 view .LVU4604 13175 0040 6BB1 cbz r3, .L841 5739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13176 .loc 1 5739 9 is_stmt 1 view .LVU4605 13177 0042 C2F3C035 ubfx r5, r2, #15, #1 5739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13178 .loc 1 5739 12 is_stmt 0 view .LVU4606 13179 0046 12F4004F tst r2, #32768 13180 004a 09D0 beq .L830 5741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13181 .loc 1 5741 11 is_stmt 1 view .LVU4607 5741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13182 .loc 1 5741 15 is_stmt 0 view .LVU4608 13183 004c 1B68 ldr r3, [r3] 13184 004e 5B68 ldr r3, [r3, #4] 5741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13185 .loc 1 5741 14 view .LVU4609 13186 0050 33B3 cbz r3, .L842 5713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13187 .loc 1 5713 12 view .LVU4610 13188 0052 0025 movs r5, #0 13189 0054 04E0 b .L830 13190 .L845: 5724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13191 .loc 1 5724 5 is_stmt 1 view .LVU4611 13192 0056 2046 mov r0, r4 13193 .LVL962: 5724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13194 .loc 1 5724 5 is_stmt 0 view .LVU4612 13195 0058 FFF7FEFF bl I2C_ITSlaveCplt 13196 .LVL963: 5724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13197 .loc 1 5724 5 view .LVU4613 13198 005c 58E0 b .L826 13199 .LVL964: 13200 .L841: 5713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13201 .loc 1 5713 12 view .LVU4614 13202 005e 0025 movs r5, #0 13203 .L830: 13204 .LVL965: 5749:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13205 .loc 1 5749 7 is_stmt 1 view .LVU4615 5749:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13206 .loc 1 5749 15 is_stmt 0 view .LVU4616 13207 0060 A36B ldr r3, [r4, #56] 5749:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13208 .loc 1 5749 10 view .LVU4617 13209 0062 1BB1 cbz r3, .L831 5751:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13210 .loc 1 5751 9 is_stmt 1 view .LVU4618 5751:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 442 13211 .loc 1 5751 12 is_stmt 0 view .LVU4619 13212 0064 16B1 cbz r6, .L831 5753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13213 .loc 1 5753 11 is_stmt 1 view .LVU4620 5753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13214 .loc 1 5753 15 is_stmt 0 view .LVU4621 13215 0066 1B68 ldr r3, [r3] 13216 0068 5B68 ldr r3, [r3, #4] 5753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13217 .loc 1 5753 14 view .LVU4622 13218 006a DBB1 cbz r3, .L832 13219 .L831: 5760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13220 .loc 1 5760 7 is_stmt 1 view .LVU4623 5760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13221 .loc 1 5760 10 is_stmt 0 view .LVU4624 13222 006c D5B9 cbnz r5, .L832 5791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13223 .loc 1 5791 9 is_stmt 1 view .LVU4625 13224 006e 2368 ldr r3, [r4] 13225 0070 1022 movs r2, #16 13226 .LVL966: 5791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13227 .loc 1 5791 9 is_stmt 0 view .LVU4626 13228 0072 DA61 str r2, [r3, #28] 5794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13229 .loc 1 5794 9 is_stmt 1 view .LVU4627 5794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13230 .loc 1 5794 13 is_stmt 0 view .LVU4628 13231 0074 636C ldr r3, [r4, #68] 5794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13232 .loc 1 5794 25 view .LVU4629 13233 0076 43F00403 orr r3, r3, #4 13234 007a 6364 str r3, [r4, #68] 5797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13235 .loc 1 5797 9 is_stmt 1 view .LVU4630 5797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13236 .loc 1 5797 18 is_stmt 0 view .LVU4631 13237 007c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13238 0080 DBB2 uxtb r3, r3 13239 .LVL967: 5799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13240 .loc 1 5799 9 is_stmt 1 view .LVU4632 5799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13241 .loc 1 5799 12 is_stmt 0 view .LVU4633 13242 0082 B0F1807F cmp r0, #16777216 13243 0086 18BF it ne 13244 0088 0028 cmpne r0, #0 13245 008a 41D1 bne .L826 5801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13246 .loc 1 5801 11 is_stmt 1 view .LVU4634 13247 008c 213B subs r3, r3, #33 13248 .LVL968: 5801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13249 .loc 1 5801 11 is_stmt 0 view .LVU4635 13250 008e 092B cmp r3, #9 13251 0090 2CD8 bhi .L836 ARM GAS /tmp/ccSHpINd.s page 443 13252 0092 DFE803F0 tbb [pc, r3] 13253 .L838: 13254 0096 29 .byte (.L839-.L838)/2 13255 0097 30 .byte (.L837-.L838)/2 13256 0098 2B .byte (.L836-.L838)/2 13257 0099 2B .byte (.L836-.L838)/2 13258 009a 2B .byte (.L836-.L838)/2 13259 009b 2B .byte (.L836-.L838)/2 13260 009c 2B .byte (.L836-.L838)/2 13261 009d 2B .byte (.L836-.L838)/2 13262 009e 29 .byte (.L839-.L838)/2 13263 009f 30 .byte (.L837-.L838)/2 13264 .LVL969: 13265 .p2align 1 13266 .L842: 5743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13267 .loc 1 5743 26 view .LVU4636 13268 00a0 0125 movs r5, #1 13269 00a2 DDE7 b .L830 13270 .LVL970: 13271 .L832: 5762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13272 .loc 1 5762 9 is_stmt 1 view .LVU4637 5762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13273 .loc 1 5762 18 is_stmt 0 view .LVU4638 13274 00a4 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13275 00a8 DBB2 uxtb r3, r3 5762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13276 .loc 1 5762 12 view .LVU4639 13277 00aa 282B cmp r3, #40 13278 00ac 08D0 beq .L846 13279 .L834: 5769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13280 .loc 1 5769 14 is_stmt 1 view .LVU4640 5769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13281 .loc 1 5769 23 is_stmt 0 view .LVU4641 13282 00ae 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13283 00b2 DBB2 uxtb r3, r3 5769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13284 .loc 1 5769 17 view .LVU4642 13285 00b4 292B cmp r3, #41 13286 00b6 0AD0 beq .L847 13287 .L835: 5784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13288 .loc 1 5784 11 is_stmt 1 view .LVU4643 13289 00b8 2368 ldr r3, [r4] 13290 00ba 1022 movs r2, #16 13291 .LVL971: 5784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13292 .loc 1 5784 11 is_stmt 0 view .LVU4644 13293 00bc DA61 str r2, [r3, #28] 13294 00be 27E0 b .L826 13295 .LVL972: 13296 .L846: 5762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13297 .loc 1 5762 51 discriminator 1 view .LVU4645 13298 00c0 B0F1007F cmp r0, #33554432 ARM GAS /tmp/ccSHpINd.s page 444 13299 00c4 F3D1 bne .L834 5767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13300 .loc 1 5767 11 is_stmt 1 view .LVU4646 13301 00c6 2046 mov r0, r4 13302 .LVL973: 5767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13303 .loc 1 5767 11 is_stmt 0 view .LVU4647 13304 00c8 FFF7FEFF bl I2C_ITListenCplt 13305 .LVL974: 5767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13306 .loc 1 5767 11 view .LVU4648 13307 00cc 20E0 b .L826 13308 .LVL975: 13309 .L847: 5769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13310 .loc 1 5769 64 discriminator 1 view .LVU4649 13311 00ce 10F5803F cmn r0, #65536 13312 00d2 F1D0 beq .L835 5772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13313 .loc 1 5772 11 is_stmt 1 view .LVU4650 13314 00d4 2368 ldr r3, [r4] 13315 00d6 1022 movs r2, #16 13316 .LVL976: 5772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13317 .loc 1 5772 11 is_stmt 0 view .LVU4651 13318 00d8 DA61 str r2, [r3, #28] 5775:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13319 .loc 1 5775 11 is_stmt 1 view .LVU4652 13320 00da 2046 mov r0, r4 13321 .LVL977: 5775:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13322 .loc 1 5775 11 is_stmt 0 view .LVU4653 13323 00dc FFF7FEFF bl I2C_Flush_TXDR 13324 .LVL978: 5779:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13325 .loc 1 5779 11 is_stmt 1 view .LVU4654 13326 00e0 2046 mov r0, r4 13327 00e2 FFF7FEFF bl I2C_ITSlaveSeqCplt 13328 .LVL979: 13329 00e6 13E0 b .L826 13330 .LVL980: 13331 .L839: 5803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13332 .loc 1 5803 13 view .LVU4655 5803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13333 .loc 1 5803 33 is_stmt 0 view .LVU4656 13334 00e8 2123 movs r3, #33 13335 .LVL981: 5803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13336 .loc 1 5803 33 view .LVU4657 13337 00ea 2363 str r3, [r4, #48] 13338 .L836: 5812:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13339 .loc 1 5812 11 is_stmt 1 view .LVU4658 5815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13340 .loc 1 5815 11 view .LVU4659 5815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 445 13341 .loc 1 5815 33 is_stmt 0 view .LVU4660 13342 00ec 616C ldr r1, [r4, #68] 13343 .LVL982: 5815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13344 .loc 1 5815 11 view .LVU4661 13345 00ee 2046 mov r0, r4 13346 .LVL983: 5815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13347 .loc 1 5815 11 view .LVU4662 13348 00f0 FFF7FEFF bl I2C_ITError 13349 .LVL984: 13350 00f4 0CE0 b .L826 13351 .LVL985: 13352 .L837: 5807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13353 .loc 1 5807 13 is_stmt 1 view .LVU4663 5807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13354 .loc 1 5807 33 is_stmt 0 view .LVU4664 13355 00f6 2223 movs r3, #34 13356 .LVL986: 5807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13357 .loc 1 5807 33 view .LVU4665 13358 00f8 2363 str r3, [r4, #48] 13359 00fa F7E7 b .L836 13360 .LVL987: 13361 .L829: 5822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13362 .loc 1 5822 7 is_stmt 1 view .LVU4666 13363 00fc 2368 ldr r3, [r4] 13364 00fe 1022 movs r2, #16 13365 .LVL988: 5822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13366 .loc 1 5822 7 is_stmt 0 view .LVU4667 13367 0100 DA61 str r2, [r3, #28] 13368 0102 05E0 b .L826 13369 .LVL989: 13370 .L827: 5825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13371 .loc 1 5825 8 is_stmt 1 view .LVU4668 5825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13372 .loc 1 5825 11 is_stmt 0 view .LVU4669 13373 0104 11F0080F tst r1, #8 13374 0108 02D0 beq .L826 5825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13375 .loc 1 5825 62 discriminator 1 view .LVU4670 13376 010a 12F0080F tst r2, #8 13377 010e 03D1 bne .L848 13378 .LVL990: 13379 .L826: 5833:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13380 .loc 1 5833 3 is_stmt 1 view .LVU4671 5836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13381 .loc 1 5836 3 view .LVU4672 5836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13382 .loc 1 5836 3 view .LVU4673 13383 0110 0020 movs r0, #0 13384 0112 84F84000 strb r0, [r4, #64] ARM GAS /tmp/ccSHpINd.s page 446 5836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13385 .loc 1 5836 3 view .LVU4674 5838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13386 .loc 1 5838 3 view .LVU4675 13387 .L824: 5839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13388 .loc 1 5839 1 is_stmt 0 view .LVU4676 13389 0116 70BD pop {r4, r5, r6, pc} 13390 .LVL991: 13391 .L848: 5828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13392 .loc 1 5828 5 is_stmt 1 view .LVU4677 13393 0118 2046 mov r0, r4 13394 .LVL992: 5828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13395 .loc 1 5828 5 is_stmt 0 view .LVU4678 13396 011a FFF7FEFF bl I2C_ITAddrCplt 13397 .LVL993: 5828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13398 .loc 1 5828 5 view .LVU4679 13399 011e F7E7 b .L826 13400 .LVL994: 13401 .L840: 5717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13402 .loc 1 5717 3 discriminator 1 view .LVU4680 13403 0120 0220 movs r0, #2 13404 .LVL995: 5717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13405 .loc 1 5717 3 discriminator 1 view .LVU4681 13406 0122 F8E7 b .L824 13407 .cfi_endproc 13408 .LFE195: 13410 .section .text.I2C_Master_ISR_DMA,"ax",%progbits 13411 .align 1 13412 .syntax unified 13413 .thumb 13414 .thumb_func 13416 I2C_Master_ISR_DMA: 13417 .LVL996: 13418 .LFB193: 5399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t devaddress; 13419 .loc 1 5399 1 is_stmt 1 view -0 13420 .cfi_startproc 13421 @ args = 0, pretend = 0, frame = 0 13422 @ frame_needed = 0, uses_anonymous_args = 0 5400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 13423 .loc 1 5400 3 view .LVU4683 5401:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13424 .loc 1 5401 3 view .LVU4684 5404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13425 .loc 1 5404 3 view .LVU4685 5404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13426 .loc 1 5404 3 view .LVU4686 13427 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 13428 0004 012B cmp r3, #1 13429 0006 00F0A380 beq .L863 5399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t devaddress; ARM GAS /tmp/ccSHpINd.s page 447 13430 .loc 1 5399 1 is_stmt 0 view .LVU4687 13431 000a 10B5 push {r4, lr} 13432 .LCFI140: 13433 .cfi_def_cfa_offset 8 13434 .cfi_offset 4, -8 13435 .cfi_offset 14, -4 13436 000c 82B0 sub sp, sp, #8 13437 .LCFI141: 13438 .cfi_def_cfa_offset 16 13439 000e 0446 mov r4, r0 5404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13440 .loc 1 5404 3 is_stmt 1 discriminator 2 view .LVU4688 13441 0010 0123 movs r3, #1 13442 0012 80F84030 strb r3, [r0, #64] 5404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13443 .loc 1 5404 3 discriminator 2 view .LVU4689 5406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13444 .loc 1 5406 3 view .LVU4690 5406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13445 .loc 1 5406 6 is_stmt 0 view .LVU4691 13446 0016 11F0100F tst r1, #16 13447 001a 02D0 beq .L851 5406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13448 .loc 1 5406 55 discriminator 1 view .LVU4692 13449 001c 12F0100F tst r2, #16 13450 0020 1FD1 bne .L869 13451 .L851: 5423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13452 .loc 1 5423 8 is_stmt 1 view .LVU4693 5423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13453 .loc 1 5423 11 is_stmt 0 view .LVU4694 13454 0022 11F0800F tst r1, #128 13455 0026 69D0 beq .L853 5423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13456 .loc 1 5423 61 discriminator 1 view .LVU4695 13457 0028 12F0400F tst r2, #64 13458 002c 66D0 beq .L853 5427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13459 .loc 1 5427 5 is_stmt 1 view .LVU4696 13460 002e 2268 ldr r2, [r4] 13461 .LVL997: 5427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13462 .loc 1 5427 5 is_stmt 0 view .LVU4697 13463 0030 1368 ldr r3, [r2] 13464 0032 23F04003 bic r3, r3, #64 13465 0036 1360 str r3, [r2] 5429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13466 .loc 1 5429 5 is_stmt 1 view .LVU4698 5429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13467 .loc 1 5429 13 is_stmt 0 view .LVU4699 13468 0038 638D ldrh r3, [r4, #42] 13469 003a 9BB2 uxth r3, r3 5429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13470 .loc 1 5429 8 view .LVU4700 13471 003c 002B cmp r3, #0 13472 003e 4FD0 beq .L854 5432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 448 13473 .loc 1 5432 7 is_stmt 1 view .LVU4701 5432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13474 .loc 1 5432 35 is_stmt 0 view .LVU4702 13475 0040 2268 ldr r2, [r4] 5432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13476 .loc 1 5432 45 view .LVU4703 13477 0042 5168 ldr r1, [r2, #4] 13478 .LVL998: 5432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13479 .loc 1 5432 18 view .LVU4704 13480 0044 C1F30901 ubfx r1, r1, #0, #10 13481 .LVL999: 5435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13482 .loc 1 5435 7 is_stmt 1 view .LVU4705 5435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13483 .loc 1 5435 15 is_stmt 0 view .LVU4706 13484 0048 638D ldrh r3, [r4, #42] 13485 004a 9BB2 uxth r3, r3 5435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13486 .loc 1 5435 10 view .LVU4707 13487 004c FF2B cmp r3, #255 13488 004e 1FD9 bls .L855 5438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13489 .loc 1 5438 9 is_stmt 1 view .LVU4708 5438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13490 .loc 1 5438 13 is_stmt 0 view .LVU4709 13491 0050 9369 ldr r3, [r2, #24] 5438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13492 .loc 1 5438 12 view .LVU4710 13493 0052 13F4803F tst r3, #65536 13494 0056 16D0 beq .L856 5440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13495 .loc 1 5440 11 is_stmt 1 view .LVU4711 5440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13496 .loc 1 5440 26 is_stmt 0 view .LVU4712 13497 0058 0123 movs r3, #1 13498 005a 2385 strh r3, [r4, #40] @ movhi 5446:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13499 .loc 1 5446 18 view .LVU4713 13500 005c 4FF08073 mov r3, #16777216 13501 0060 1DE0 b .L857 13502 .LVL1000: 13503 .L869: 5410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13504 .loc 1 5410 5 is_stmt 1 view .LVU4714 13505 0062 0368 ldr r3, [r0] 13506 0064 1022 movs r2, #16 13507 .LVL1001: 5410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13508 .loc 1 5410 5 is_stmt 0 view .LVU4715 13509 0066 DA61 str r2, [r3, #28] 5413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13510 .loc 1 5413 5 is_stmt 1 view .LVU4716 5413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13511 .loc 1 5413 9 is_stmt 0 view .LVU4717 13512 0068 436C ldr r3, [r0, #68] 5413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 449 13513 .loc 1 5413 21 view .LVU4718 13514 006a 43F00403 orr r3, r3, #4 13515 006e 4364 str r3, [r0, #68] 5418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13516 .loc 1 5418 5 is_stmt 1 view .LVU4719 13517 0070 2021 movs r1, #32 13518 .LVL1002: 5418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13519 .loc 1 5418 5 is_stmt 0 view .LVU4720 13520 0072 FFF7FEFF bl I2C_Enable_IRQ 13521 .LVL1003: 5421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13522 .loc 1 5421 5 is_stmt 1 view .LVU4721 13523 0076 2046 mov r0, r4 13524 0078 FFF7FEFF bl I2C_Flush_TXDR 13525 .LVL1004: 13526 .L852: 5529:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13527 .loc 1 5529 3 view .LVU4722 5532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13528 .loc 1 5532 3 view .LVU4723 5532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13529 .loc 1 5532 3 view .LVU4724 13530 007c 0020 movs r0, #0 13531 007e 84F84000 strb r0, [r4, #64] 5532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13532 .loc 1 5532 3 view .LVU4725 5534:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13533 .loc 1 5534 3 view .LVU4726 5535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13534 .loc 1 5535 1 is_stmt 0 view .LVU4727 13535 0082 02B0 add sp, sp, #8 13536 .LCFI142: 13537 .cfi_remember_state 13538 .cfi_def_cfa_offset 8 13539 @ sp needed 13540 0084 10BD pop {r4, pc} 13541 .LVL1005: 13542 .L856: 13543 .LCFI143: 13544 .cfi_restore_state 5444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13545 .loc 1 5444 11 is_stmt 1 view .LVU4728 5444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13546 .loc 1 5444 26 is_stmt 0 view .LVU4729 13547 0086 FF23 movs r3, #255 13548 0088 2385 strh r3, [r4, #40] @ movhi 5446:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13549 .loc 1 5446 18 view .LVU4730 13550 008a 4FF08073 mov r3, #16777216 13551 008e 06E0 b .L857 13552 .L855: 5450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13553 .loc 1 5450 9 is_stmt 1 view .LVU4731 5450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13554 .loc 1 5450 30 is_stmt 0 view .LVU4732 13555 0090 638D ldrh r3, [r4, #42] ARM GAS /tmp/ccSHpINd.s page 450 5450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13556 .loc 1 5450 24 view .LVU4733 13557 0092 2385 strh r3, [r4, #40] @ movhi 5451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13558 .loc 1 5451 9 is_stmt 1 view .LVU4734 5451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13559 .loc 1 5451 17 is_stmt 0 view .LVU4735 13560 0094 E36A ldr r3, [r4, #44] 5451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13561 .loc 1 5451 12 view .LVU4736 13562 0096 13F5803F cmn r3, #65536 13563 009a 18D0 beq .L864 5453:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13564 .loc 1 5453 11 is_stmt 1 view .LVU4737 5453:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13565 .loc 1 5453 20 is_stmt 0 view .LVU4738 13566 009c E36A ldr r3, [r4, #44] 13567 .LVL1006: 13568 .L857: 5462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13569 .loc 1 5462 7 is_stmt 1 view .LVU4739 13570 009e 0022 movs r2, #0 13571 00a0 0092 str r2, [sp] 13572 00a2 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 13573 00a6 2046 mov r0, r4 13574 .LVL1007: 5462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13575 .loc 1 5462 7 is_stmt 0 view .LVU4740 13576 00a8 FFF7FEFF bl I2C_TransferConfig 13577 .LVL1008: 5465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13578 .loc 1 5465 7 is_stmt 1 view .LVU4741 5465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13579 .loc 1 5465 11 is_stmt 0 view .LVU4742 13580 00ac 638D ldrh r3, [r4, #42] 13581 00ae 9BB2 uxth r3, r3 5465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13582 .loc 1 5465 30 view .LVU4743 13583 00b0 228D ldrh r2, [r4, #40] 5465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13584 .loc 1 5465 23 view .LVU4744 13585 00b2 9B1A subs r3, r3, r2 13586 00b4 9BB2 uxth r3, r3 13587 00b6 6385 strh r3, [r4, #42] @ movhi 5468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13588 .loc 1 5468 7 is_stmt 1 view .LVU4745 5468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13589 .loc 1 5468 15 is_stmt 0 view .LVU4746 13590 00b8 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13591 00bc DBB2 uxtb r3, r3 5468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13592 .loc 1 5468 10 view .LVU4747 13593 00be 222B cmp r3, #34 13594 00c0 08D0 beq .L870 5474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13595 .loc 1 5474 9 is_stmt 1 view .LVU4748 5474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 451 13596 .loc 1 5474 13 is_stmt 0 view .LVU4749 13597 00c2 2268 ldr r2, [r4] 5474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13598 .loc 1 5474 23 view .LVU4750 13599 00c4 1368 ldr r3, [r2] 5474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13600 .loc 1 5474 29 view .LVU4751 13601 00c6 43F48043 orr r3, r3, #16384 13602 00ca 1360 str r3, [r2] 13603 00cc D6E7 b .L852 13604 .LVL1009: 13605 .L864: 5457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13606 .loc 1 5457 20 view .LVU4752 13607 00ce 4FF00073 mov r3, #33554432 13608 00d2 E4E7 b .L857 13609 .LVL1010: 13610 .L870: 5470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13611 .loc 1 5470 9 is_stmt 1 view .LVU4753 5470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13612 .loc 1 5470 13 is_stmt 0 view .LVU4754 13613 00d4 2268 ldr r2, [r4] 5470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13614 .loc 1 5470 23 view .LVU4755 13615 00d6 1368 ldr r3, [r2] 5470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13616 .loc 1 5470 29 view .LVU4756 13617 00d8 43F40043 orr r3, r3, #32768 13618 00dc 1360 str r3, [r2] 13619 00de CDE7 b .L852 13620 .LVL1011: 13621 .L854: 5480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13622 .loc 1 5480 7 is_stmt 1 view .LVU4757 5480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13623 .loc 1 5480 11 is_stmt 0 view .LVU4758 13624 00e0 2368 ldr r3, [r4] 13625 00e2 5B68 ldr r3, [r3, #4] 5480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13626 .loc 1 5480 10 view .LVU4759 13627 00e4 13F0007F tst r3, #33554432 13628 00e8 03D1 bne .L859 5483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13629 .loc 1 5483 9 is_stmt 1 view .LVU4760 13630 00ea 2046 mov r0, r4 13631 .LVL1012: 5483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13632 .loc 1 5483 9 is_stmt 0 view .LVU4761 13633 00ec FFF7FEFF bl I2C_ITMasterSeqCplt 13634 .LVL1013: 5483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13635 .loc 1 5483 9 view .LVU4762 13636 00f0 C4E7 b .L852 13637 .LVL1014: 13638 .L859: 5489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/ccSHpINd.s page 452 13639 .loc 1 5489 9 is_stmt 1 view .LVU4763 13640 00f2 4021 movs r1, #64 13641 .LVL1015: 5489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13642 .loc 1 5489 9 is_stmt 0 view .LVU4764 13643 00f4 2046 mov r0, r4 13644 .LVL1016: 5489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13645 .loc 1 5489 9 view .LVU4765 13646 00f6 FFF7FEFF bl I2C_ITError 13647 .LVL1017: 13648 00fa BFE7 b .L852 13649 .LVL1018: 13650 .L853: 5493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13651 .loc 1 5493 8 is_stmt 1 view .LVU4766 5493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13652 .loc 1 5493 11 is_stmt 0 view .LVU4767 13653 00fc 11F0400F tst r1, #64 13654 0100 1CD0 beq .L860 5493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13655 .loc 1 5493 60 discriminator 1 view .LVU4768 13656 0102 12F0400F tst r2, #64 13657 0106 19D0 beq .L860 5496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13658 .loc 1 5496 5 is_stmt 1 view .LVU4769 5496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13659 .loc 1 5496 13 is_stmt 0 view .LVU4770 13660 0108 638D ldrh r3, [r4, #42] 13661 010a 9BB2 uxth r3, r3 5496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13662 .loc 1 5496 8 view .LVU4771 13663 010c 8BB9 cbnz r3, .L861 5498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13664 .loc 1 5498 7 is_stmt 1 view .LVU4772 5498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13665 .loc 1 5498 11 is_stmt 0 view .LVU4773 13666 010e 2368 ldr r3, [r4] 13667 0110 5A68 ldr r2, [r3, #4] 13668 .LVL1019: 5498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13669 .loc 1 5498 10 view .LVU4774 13670 0112 12F0007F tst r2, #33554432 13671 0116 B1D1 bne .L852 5501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13672 .loc 1 5501 9 is_stmt 1 view .LVU4775 5501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13673 .loc 1 5501 17 is_stmt 0 view .LVU4776 13674 0118 E26A ldr r2, [r4, #44] 5501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13675 .loc 1 5501 12 view .LVU4777 13676 011a 12F5803F cmn r2, #65536 13677 011e 04D1 bne .L862 5504:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13678 .loc 1 5504 11 is_stmt 1 view .LVU4778 5504:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13679 .loc 1 5504 25 is_stmt 0 view .LVU4779 ARM GAS /tmp/ccSHpINd.s page 453 13680 0120 5A68 ldr r2, [r3, #4] 5504:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13681 .loc 1 5504 31 view .LVU4780 13682 0122 42F48042 orr r2, r2, #16384 13683 0126 5A60 str r2, [r3, #4] 13684 0128 A8E7 b .L852 13685 .L862: 5509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13686 .loc 1 5509 11 is_stmt 1 view .LVU4781 13687 012a 2046 mov r0, r4 13688 .LVL1020: 5509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13689 .loc 1 5509 11 is_stmt 0 view .LVU4782 13690 012c FFF7FEFF bl I2C_ITMasterSeqCplt 13691 .LVL1021: 5509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13692 .loc 1 5509 11 view .LVU4783 13693 0130 A4E7 b .L852 13694 .LVL1022: 13695 .L861: 5517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13696 .loc 1 5517 7 is_stmt 1 view .LVU4784 13697 0132 4021 movs r1, #64 13698 .LVL1023: 5517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13699 .loc 1 5517 7 is_stmt 0 view .LVU4785 13700 0134 2046 mov r0, r4 13701 .LVL1024: 5517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13702 .loc 1 5517 7 view .LVU4786 13703 0136 FFF7FEFF bl I2C_ITError 13704 .LVL1025: 5517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13705 .loc 1 5517 7 view .LVU4787 13706 013a 9FE7 b .L852 13707 .LVL1026: 13708 .L860: 5520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13709 .loc 1 5520 8 is_stmt 1 view .LVU4788 5520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13710 .loc 1 5520 11 is_stmt 0 view .LVU4789 13711 013c 11F0200F tst r1, #32 13712 0140 9CD0 beq .L852 5520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13713 .loc 1 5520 63 discriminator 1 view .LVU4790 13714 0142 12F0200F tst r2, #32 13715 0146 99D0 beq .L852 5524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13716 .loc 1 5524 5 is_stmt 1 view .LVU4791 13717 0148 2046 mov r0, r4 13718 .LVL1027: 5524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13719 .loc 1 5524 5 is_stmt 0 view .LVU4792 13720 014a FFF7FEFF bl I2C_ITMasterCplt 13721 .LVL1028: 5524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13722 .loc 1 5524 5 view .LVU4793 ARM GAS /tmp/ccSHpINd.s page 454 13723 014e 95E7 b .L852 13724 .LVL1029: 13725 .L863: 13726 .LCFI144: 13727 .cfi_def_cfa_offset 0 13728 .cfi_restore 4 13729 .cfi_restore 14 5404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13730 .loc 1 5404 3 discriminator 1 view .LVU4794 13731 0150 0220 movs r0, #2 13732 .LVL1030: 5535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13733 .loc 1 5535 1 view .LVU4795 13734 0152 7047 bx lr 13735 .cfi_endproc 13736 .LFE193: 13738 .section .text.I2C_DMAError,"ax",%progbits 13739 .align 1 13740 .syntax unified 13741 .thumb 13742 .thumb_func 13744 I2C_DMAError: 13745 .LVL1031: 13746 .LFB211: 6948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U; 13747 .loc 1 6948 1 is_stmt 1 view -0 13748 .cfi_startproc 13749 @ args = 0, pretend = 0, frame = 0 13750 @ frame_needed = 0, uses_anonymous_args = 0 6948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U; 13751 .loc 1 6948 1 is_stmt 0 view .LVU4797 13752 0000 38B5 push {r3, r4, r5, lr} 13753 .LCFI145: 13754 .cfi_def_cfa_offset 16 13755 .cfi_offset 3, -16 13756 .cfi_offset 4, -12 13757 .cfi_offset 5, -8 13758 .cfi_offset 14, -4 6949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13759 .loc 1 6949 3 is_stmt 1 view .LVU4798 13760 .LVL1032: 6951:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13761 .loc 1 6951 3 view .LVU4799 6951:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13762 .loc 1 6951 22 is_stmt 0 view .LVU4800 13763 0002 846B ldr r4, [r0, #56] 13764 .LVL1033: 6953:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13765 .loc 1 6953 3 is_stmt 1 view .LVU4801 6953:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13766 .loc 1 6953 11 is_stmt 0 view .LVU4802 13767 0004 A36B ldr r3, [r4, #56] 6953:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13768 .loc 1 6953 6 view .LVU4803 13769 0006 7BB1 cbz r3, .L875 6955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13770 .loc 1 6955 5 is_stmt 1 view .LVU4804 ARM GAS /tmp/ccSHpINd.s page 455 6955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13771 .loc 1 6955 9 is_stmt 0 view .LVU4805 13772 0008 1B68 ldr r3, [r3] 13773 000a 5B68 ldr r3, [r3, #4] 6955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13774 .loc 1 6955 8 view .LVU4806 13775 000c 73B1 cbz r3, .L876 6949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13776 .loc 1 6949 12 view .LVU4807 13777 000e 0025 movs r5, #0 13778 .L872: 13779 .LVL1034: 6961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13780 .loc 1 6961 3 is_stmt 1 view .LVU4808 6961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13781 .loc 1 6961 11 is_stmt 0 view .LVU4809 13782 0010 E36B ldr r3, [r4, #60] 6961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13783 .loc 1 6961 6 view .LVU4810 13784 0012 1BB1 cbz r3, .L873 6963:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13785 .loc 1 6963 5 is_stmt 1 view .LVU4811 6963:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13786 .loc 1 6963 9 is_stmt 0 view .LVU4812 13787 0014 1B68 ldr r3, [r3] 13788 0016 5B68 ldr r3, [r3, #4] 6963:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13789 .loc 1 6963 8 view .LVU4813 13790 0018 03B9 cbnz r3, .L873 6965:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13791 .loc 1 6965 21 view .LVU4814 13792 001a 0125 movs r5, #1 13793 .LVL1035: 13794 .L873: 6970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13795 .loc 1 6970 3 is_stmt 1 view .LVU4815 6970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13796 .loc 1 6970 10 is_stmt 0 view .LVU4816 13797 001c FFF7FEFF bl HAL_DMA_GetError 13798 .LVL1036: 6970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13799 .loc 1 6970 6 discriminator 1 view .LVU4817 13800 0020 0228 cmp r0, #2 13801 0022 00D0 beq .L871 6970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13802 .loc 1 6970 55 discriminator 1 view .LVU4818 13803 0024 25B9 cbnz r5, .L879 13804 .L871: 6978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13805 .loc 1 6978 1 view .LVU4819 13806 0026 38BD pop {r3, r4, r5, pc} 13807 .LVL1037: 13808 .L875: 6949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13809 .loc 1 6949 12 view .LVU4820 13810 0028 0025 movs r5, #0 13811 002a F1E7 b .L872 ARM GAS /tmp/ccSHpINd.s page 456 13812 .L876: 6957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13813 .loc 1 6957 21 view .LVU4821 13814 002c 0125 movs r5, #1 13815 002e EFE7 b .L872 13816 .LVL1038: 13817 .L879: 6973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13818 .loc 1 6973 5 is_stmt 1 view .LVU4822 6973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13819 .loc 1 6973 9 is_stmt 0 view .LVU4823 13820 0030 2268 ldr r2, [r4] 6973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13821 .loc 1 6973 19 view .LVU4824 13822 0032 5368 ldr r3, [r2, #4] 6973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13823 .loc 1 6973 25 view .LVU4825 13824 0034 43F40043 orr r3, r3, #32768 13825 0038 5360 str r3, [r2, #4] 6976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13826 .loc 1 6976 5 is_stmt 1 view .LVU4826 13827 003a 1021 movs r1, #16 13828 003c 2046 mov r0, r4 13829 003e FFF7FEFF bl I2C_ITError 13830 .LVL1039: 6978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13831 .loc 1 6978 1 is_stmt 0 view .LVU4827 13832 0042 F0E7 b .L871 13833 .cfi_endproc 13834 .LFE211: 13836 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits 13837 .align 1 13838 .syntax unified 13839 .thumb 13840 .thumb_func 13842 I2C_DMAMasterTransmitCplt: 13843 .LVL1040: 13844 .LFB207: 6780:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13845 .loc 1 6780 1 is_stmt 1 view -0 13846 .cfi_startproc 13847 @ args = 0, pretend = 0, frame = 0 13848 @ frame_needed = 0, uses_anonymous_args = 0 6780:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13849 .loc 1 6780 1 is_stmt 0 view .LVU4829 13850 0000 10B5 push {r4, lr} 13851 .LCFI146: 13852 .cfi_def_cfa_offset 8 13853 .cfi_offset 4, -8 13854 .cfi_offset 14, -4 6782:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13855 .loc 1 6782 3 is_stmt 1 view .LVU4830 6782:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13856 .loc 1 6782 22 is_stmt 0 view .LVU4831 13857 0002 846B ldr r4, [r0, #56] 13858 .LVL1041: 6785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/ccSHpINd.s page 457 13859 .loc 1 6785 3 is_stmt 1 view .LVU4832 6785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13860 .loc 1 6785 7 is_stmt 0 view .LVU4833 13861 0004 2268 ldr r2, [r4] 6785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13862 .loc 1 6785 17 view .LVU4834 13863 0006 1368 ldr r3, [r2] 6785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13864 .loc 1 6785 23 view .LVU4835 13865 0008 23F48043 bic r3, r3, #16384 13866 000c 1360 str r3, [r2] 6788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13867 .loc 1 6788 3 is_stmt 1 view .LVU4836 6788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13868 .loc 1 6788 11 is_stmt 0 view .LVU4837 13869 000e 638D ldrh r3, [r4, #42] 13870 0010 9BB2 uxth r3, r3 6788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13871 .loc 1 6788 6 view .LVU4838 13872 0012 ABB1 cbz r3, .L887 6797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13873 .loc 1 6797 5 is_stmt 1 view .LVU4839 6797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13874 .loc 1 6797 9 is_stmt 0 view .LVU4840 13875 0014 616A ldr r1, [r4, #36] 6797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13876 .loc 1 6797 27 view .LVU4841 13877 0016 238D ldrh r3, [r4, #40] 6797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13878 .loc 1 6797 20 view .LVU4842 13879 0018 1944 add r1, r1, r3 13880 001a 6162 str r1, [r4, #36] 6800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13881 .loc 1 6800 5 is_stmt 1 view .LVU4843 6800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13882 .loc 1 6800 13 is_stmt 0 view .LVU4844 13883 001c 638D ldrh r3, [r4, #42] 13884 001e 9BB2 uxth r3, r3 6800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13885 .loc 1 6800 8 view .LVU4845 13886 0020 FF2B cmp r3, #255 13887 0022 12D9 bls .L883 6802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13888 .loc 1 6802 7 is_stmt 1 view .LVU4846 6802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13889 .loc 1 6802 22 is_stmt 0 view .LVU4847 13890 0024 FF23 movs r3, #255 13891 0026 2385 strh r3, [r4, #40] @ movhi 13892 .L884: 6810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13893 .loc 1 6810 5 is_stmt 1 view .LVU4848 6810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13894 .loc 1 6810 81 is_stmt 0 view .LVU4849 13895 0028 2268 ldr r2, [r4] 6810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13896 .loc 1 6810 9 view .LVU4850 13897 002a 238D ldrh r3, [r4, #40] ARM GAS /tmp/ccSHpINd.s page 458 13898 002c 2832 adds r2, r2, #40 13899 002e A06B ldr r0, [r4, #56] 13900 .LVL1042: 6810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13901 .loc 1 6810 9 view .LVU4851 13902 0030 FFF7FEFF bl HAL_DMA_Start_IT 13903 .LVL1043: 6810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13904 .loc 1 6810 8 discriminator 1 view .LVU4852 13905 0034 60B1 cbz r0, .L885 6814:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13906 .loc 1 6814 7 is_stmt 1 view .LVU4853 13907 0036 1021 movs r1, #16 13908 0038 2046 mov r0, r4 13909 003a FFF7FEFF bl I2C_ITError 13910 .LVL1044: 13911 .L880: 6822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13912 .loc 1 6822 1 is_stmt 0 view .LVU4854 13913 003e 10BD pop {r4, pc} 13914 .LVL1045: 13915 .L887: 6791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13916 .loc 1 6791 5 is_stmt 1 view .LVU4855 13917 0040 2021 movs r1, #32 13918 0042 2046 mov r0, r4 13919 .LVL1046: 6791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13920 .loc 1 6791 5 is_stmt 0 view .LVU4856 13921 0044 FFF7FEFF bl I2C_Enable_IRQ 13922 .LVL1047: 13923 0048 F9E7 b .L880 13924 .LVL1048: 13925 .L883: 6806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13926 .loc 1 6806 7 is_stmt 1 view .LVU4857 6806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13927 .loc 1 6806 28 is_stmt 0 view .LVU4858 13928 004a 638D ldrh r3, [r4, #42] 6806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13929 .loc 1 6806 22 view .LVU4859 13930 004c 2385 strh r3, [r4, #40] @ movhi 13931 004e EBE7 b .L884 13932 .LVL1049: 13933 .L885: 6819:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13934 .loc 1 6819 7 is_stmt 1 view .LVU4860 13935 0050 4021 movs r1, #64 13936 0052 2046 mov r0, r4 13937 0054 FFF7FEFF bl I2C_Enable_IRQ 13938 .LVL1050: 6822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13939 .loc 1 6822 1 is_stmt 0 view .LVU4861 13940 0058 F1E7 b .L880 13941 .cfi_endproc 13942 .LFE207: 13944 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits ARM GAS /tmp/ccSHpINd.s page 459 13945 .align 1 13946 .syntax unified 13947 .thumb 13948 .thumb_func 13950 I2C_DMAMasterReceiveCplt: 13951 .LVL1051: 13952 .LFB209: 6860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13953 .loc 1 6860 1 is_stmt 1 view -0 13954 .cfi_startproc 13955 @ args = 0, pretend = 0, frame = 0 13956 @ frame_needed = 0, uses_anonymous_args = 0 6860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13957 .loc 1 6860 1 is_stmt 0 view .LVU4863 13958 0000 10B5 push {r4, lr} 13959 .LCFI147: 13960 .cfi_def_cfa_offset 8 13961 .cfi_offset 4, -8 13962 .cfi_offset 14, -4 6862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13963 .loc 1 6862 3 is_stmt 1 view .LVU4864 6862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13964 .loc 1 6862 22 is_stmt 0 view .LVU4865 13965 0002 846B ldr r4, [r0, #56] 13966 .LVL1052: 6865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13967 .loc 1 6865 3 is_stmt 1 view .LVU4866 6865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13968 .loc 1 6865 7 is_stmt 0 view .LVU4867 13969 0004 2268 ldr r2, [r4] 6865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13970 .loc 1 6865 17 view .LVU4868 13971 0006 1368 ldr r3, [r2] 6865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13972 .loc 1 6865 23 view .LVU4869 13973 0008 23F40043 bic r3, r3, #32768 13974 000c 1360 str r3, [r2] 6868:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13975 .loc 1 6868 3 is_stmt 1 view .LVU4870 6868:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13976 .loc 1 6868 11 is_stmt 0 view .LVU4871 13977 000e 638D ldrh r3, [r4, #42] 13978 0010 9BB2 uxth r3, r3 6868:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13979 .loc 1 6868 6 view .LVU4872 13980 0012 7BB1 cbz r3, .L896 6877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13981 .loc 1 6877 5 is_stmt 1 view .LVU4873 6877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13982 .loc 1 6877 9 is_stmt 0 view .LVU4874 13983 0014 626A ldr r2, [r4, #36] 6877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13984 .loc 1 6877 27 view .LVU4875 13985 0016 238D ldrh r3, [r4, #40] 6877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13986 .loc 1 6877 20 view .LVU4876 13987 0018 1A44 add r2, r2, r3 ARM GAS /tmp/ccSHpINd.s page 460 13988 001a 6262 str r2, [r4, #36] 6880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13989 .loc 1 6880 5 is_stmt 1 view .LVU4877 6880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13990 .loc 1 6880 13 is_stmt 0 view .LVU4878 13991 001c 638D ldrh r3, [r4, #42] 13992 001e 9BB2 uxth r3, r3 6880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13993 .loc 1 6880 8 view .LVU4879 13994 0020 FF2B cmp r3, #255 13995 0022 0FD9 bls .L891 6883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13996 .loc 1 6883 7 is_stmt 1 view .LVU4880 6883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13997 .loc 1 6883 11 is_stmt 0 view .LVU4881 13998 0024 2368 ldr r3, [r4] 13999 0026 9B69 ldr r3, [r3, #24] 6883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14000 .loc 1 6883 10 view .LVU4882 14001 0028 13F4803F tst r3, #65536 14002 002c 07D0 beq .L892 6885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14003 .loc 1 6885 9 is_stmt 1 view .LVU4883 6885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14004 .loc 1 6885 24 is_stmt 0 view .LVU4884 14005 002e 0123 movs r3, #1 14006 0030 2385 strh r3, [r4, #40] @ movhi 14007 0032 09E0 b .L893 14008 .L896: 6871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14009 .loc 1 6871 5 is_stmt 1 view .LVU4885 14010 0034 2021 movs r1, #32 14011 0036 2046 mov r0, r4 14012 .LVL1053: 6871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14013 .loc 1 6871 5 is_stmt 0 view .LVU4886 14014 0038 FFF7FEFF bl I2C_Enable_IRQ 14015 .LVL1054: 14016 003c 0FE0 b .L888 14017 .LVL1055: 14018 .L892: 6889:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14019 .loc 1 6889 9 is_stmt 1 view .LVU4887 6889:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14020 .loc 1 6889 24 is_stmt 0 view .LVU4888 14021 003e FF23 movs r3, #255 14022 0040 2385 strh r3, [r4, #40] @ movhi 14023 0042 01E0 b .L893 14024 .L891: 6894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14025 .loc 1 6894 7 is_stmt 1 view .LVU4889 6894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14026 .loc 1 6894 28 is_stmt 0 view .LVU4890 14027 0044 638D ldrh r3, [r4, #42] 6894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14028 .loc 1 6894 22 view .LVU4891 14029 0046 2385 strh r3, [r4, #40] @ movhi ARM GAS /tmp/ccSHpINd.s page 461 14030 .L893: 6898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14031 .loc 1 6898 5 is_stmt 1 view .LVU4892 6898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14032 .loc 1 6898 55 is_stmt 0 view .LVU4893 14033 0048 2168 ldr r1, [r4] 6898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14034 .loc 1 6898 9 view .LVU4894 14035 004a 238D ldrh r3, [r4, #40] 14036 004c 2431 adds r1, r1, #36 14037 004e E06B ldr r0, [r4, #60] 14038 .LVL1056: 6898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14039 .loc 1 6898 9 view .LVU4895 14040 0050 FFF7FEFF bl HAL_DMA_Start_IT 14041 .LVL1057: 6898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14042 .loc 1 6898 8 discriminator 1 view .LVU4896 14043 0054 20B1 cbz r0, .L894 6902:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14044 .loc 1 6902 7 is_stmt 1 view .LVU4897 14045 0056 1021 movs r1, #16 14046 0058 2046 mov r0, r4 14047 005a FFF7FEFF bl I2C_ITError 14048 .LVL1058: 14049 .L888: 6910:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14050 .loc 1 6910 1 is_stmt 0 view .LVU4898 14051 005e 10BD pop {r4, pc} 14052 .LVL1059: 14053 .L894: 6907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14054 .loc 1 6907 7 is_stmt 1 view .LVU4899 14055 0060 4021 movs r1, #64 14056 0062 2046 mov r0, r4 14057 0064 FFF7FEFF bl I2C_Enable_IRQ 14058 .LVL1060: 6910:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14059 .loc 1 6910 1 is_stmt 0 view .LVU4900 14060 0068 F9E7 b .L888 14061 .cfi_endproc 14062 .LFE209: 14064 .section .text.I2C_Mem_ISR_IT,"ax",%progbits 14065 .align 1 14066 .syntax unified 14067 .thumb 14068 .thumb_func 14070 I2C_Mem_ISR_IT: 14071 .LVL1061: 14072 .LFB191: 5100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 14073 .loc 1 5100 1 is_stmt 1 view -0 14074 .cfi_startproc 14075 @ args = 0, pretend = 0, frame = 0 14076 @ frame_needed = 0, uses_anonymous_args = 0 5101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 14077 .loc 1 5101 3 view .LVU4902 ARM GAS /tmp/ccSHpINd.s page 462 5102:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14078 .loc 1 5102 3 view .LVU4903 5105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14079 .loc 1 5105 3 view .LVU4904 5105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14080 .loc 1 5105 3 view .LVU4905 14081 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 14082 0004 012B cmp r3, #1 14083 0006 00F0D580 beq .L914 5100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 14084 .loc 1 5100 1 is_stmt 0 view .LVU4906 14085 000a 70B5 push {r4, r5, r6, lr} 14086 .LCFI148: 14087 .cfi_def_cfa_offset 16 14088 .cfi_offset 4, -16 14089 .cfi_offset 5, -12 14090 .cfi_offset 6, -8 14091 .cfi_offset 14, -4 14092 000c 82B0 sub sp, sp, #8 14093 .LCFI149: 14094 .cfi_def_cfa_offset 24 14095 000e 0446 mov r4, r0 14096 0010 0D46 mov r5, r1 14097 0012 1646 mov r6, r2 5105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14098 .loc 1 5105 3 is_stmt 1 discriminator 2 view .LVU4907 14099 0014 0123 movs r3, #1 14100 0016 80F84030 strb r3, [r0, #64] 5105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14101 .loc 1 5105 3 discriminator 2 view .LVU4908 5107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14102 .loc 1 5107 3 view .LVU4909 5107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14103 .loc 1 5107 6 is_stmt 0 view .LVU4910 14104 001a 11F0100F tst r1, #16 14105 001e 02D0 beq .L899 5107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14106 .loc 1 5107 58 discriminator 1 view .LVU4911 14107 0020 12F0100F tst r2, #16 14108 0024 22D1 bne .L920 14109 .L899: 5121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 14110 .loc 1 5121 8 is_stmt 1 view .LVU4912 5121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 14111 .loc 1 5121 11 is_stmt 0 view .LVU4913 14112 0026 15F0040F tst r5, #4 14113 002a 29D0 beq .L901 5121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 14114 .loc 1 5121 65 discriminator 1 view .LVU4914 14115 002c 16F0040F tst r6, #4 14116 0030 26D0 beq .L901 5125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14117 .loc 1 5125 5 is_stmt 1 view .LVU4915 5125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14118 .loc 1 5125 16 is_stmt 0 view .LVU4916 14119 0032 25F00405 bic r5, r5, #4 14120 .LVL1062: ARM GAS /tmp/ccSHpINd.s page 463 5128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14121 .loc 1 5128 5 is_stmt 1 view .LVU4917 5128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14122 .loc 1 5128 36 is_stmt 0 view .LVU4918 14123 0036 2368 ldr r3, [r4] 5128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14124 .loc 1 5128 46 view .LVU4919 14125 0038 5A6A ldr r2, [r3, #36] 14126 .LVL1063: 5128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14127 .loc 1 5128 10 view .LVU4920 14128 003a 636A ldr r3, [r4, #36] 5128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14129 .loc 1 5128 21 view .LVU4921 14130 003c 1A70 strb r2, [r3] 5131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14131 .loc 1 5131 5 is_stmt 1 view .LVU4922 5131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14132 .loc 1 5131 9 is_stmt 0 view .LVU4923 14133 003e 636A ldr r3, [r4, #36] 5131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14134 .loc 1 5131 19 view .LVU4924 14135 0040 0133 adds r3, r3, #1 14136 0042 6362 str r3, [r4, #36] 5133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 14137 .loc 1 5133 5 is_stmt 1 view .LVU4925 5133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 14138 .loc 1 5133 9 is_stmt 0 view .LVU4926 14139 0044 238D ldrh r3, [r4, #40] 5133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 14140 .loc 1 5133 19 view .LVU4927 14141 0046 013B subs r3, r3, #1 14142 0048 2385 strh r3, [r4, #40] @ movhi 5134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14143 .loc 1 5134 5 is_stmt 1 view .LVU4928 5134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14144 .loc 1 5134 9 is_stmt 0 view .LVU4929 14145 004a 638D ldrh r3, [r4, #42] 14146 004c 9BB2 uxth r3, r3 5134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14147 .loc 1 5134 20 view .LVU4930 14148 004e 013B subs r3, r3, #1 14149 0050 9BB2 uxth r3, r3 14150 0052 6385 strh r3, [r4, #42] @ movhi 14151 .LVL1064: 14152 .L900: 5234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14153 .loc 1 5234 3 is_stmt 1 view .LVU4931 5236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14154 .loc 1 5236 3 view .LVU4932 5236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14155 .loc 1 5236 6 is_stmt 0 view .LVU4933 14156 0054 15F0200F tst r5, #32 14157 0058 03D0 beq .L913 5236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14158 .loc 1 5236 61 discriminator 1 view .LVU4934 14159 005a 16F0200F tst r6, #32 ARM GAS /tmp/ccSHpINd.s page 464 14160 005e 40F0A480 bne .L921 14161 .L913: 5244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14162 .loc 1 5244 3 is_stmt 1 view .LVU4935 5244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14163 .loc 1 5244 3 view .LVU4936 14164 0062 0020 movs r0, #0 14165 0064 84F84000 strb r0, [r4, #64] 5244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14166 .loc 1 5244 3 view .LVU4937 5246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14167 .loc 1 5246 3 view .LVU4938 5247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14168 .loc 1 5247 1 is_stmt 0 view .LVU4939 14169 0068 02B0 add sp, sp, #8 14170 .LCFI150: 14171 .cfi_remember_state 14172 .cfi_def_cfa_offset 16 14173 @ sp needed 14174 006a 70BD pop {r4, r5, r6, pc} 14175 .LVL1065: 14176 .L920: 14177 .LCFI151: 14178 .cfi_restore_state 5111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14179 .loc 1 5111 5 is_stmt 1 view .LVU4940 14180 006c 0368 ldr r3, [r0] 14181 006e 1022 movs r2, #16 14182 .LVL1066: 5111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14183 .loc 1 5111 5 is_stmt 0 view .LVU4941 14184 0070 DA61 str r2, [r3, #28] 5116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14185 .loc 1 5116 5 is_stmt 1 view .LVU4942 5116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14186 .loc 1 5116 9 is_stmt 0 view .LVU4943 14187 0072 436C ldr r3, [r0, #68] 5116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14188 .loc 1 5116 21 view .LVU4944 14189 0074 43F00403 orr r3, r3, #4 14190 0078 4364 str r3, [r0, #68] 5119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14191 .loc 1 5119 5 is_stmt 1 view .LVU4945 14192 007a FFF7FEFF bl I2C_Flush_TXDR 14193 .LVL1067: 5119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14194 .loc 1 5119 5 is_stmt 0 view .LVU4946 14195 007e E9E7 b .L900 14196 .LVL1068: 14197 .L901: 5136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14198 .loc 1 5136 8 is_stmt 1 view .LVU4947 5136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14199 .loc 1 5136 11 is_stmt 0 view .LVU4948 14200 0080 15F0020F tst r5, #2 14201 0084 1DD0 beq .L902 5136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) ARM GAS /tmp/ccSHpINd.s page 465 14202 .loc 1 5136 65 discriminator 1 view .LVU4949 14203 0086 16F0020F tst r6, #2 14204 008a 1AD0 beq .L902 5139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14205 .loc 1 5139 5 is_stmt 1 view .LVU4950 5139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14206 .loc 1 5139 13 is_stmt 0 view .LVU4951 14207 008c 236D ldr r3, [r4, #80] 5139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14208 .loc 1 5139 8 view .LVU4952 14209 008e B3F1FF3F cmp r3, #-1 14210 0092 06D0 beq .L922 5153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14211 .loc 1 5153 7 is_stmt 1 view .LVU4953 5153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14212 .loc 1 5153 11 is_stmt 0 view .LVU4954 14213 0094 2368 ldr r3, [r4] 5153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14214 .loc 1 5153 34 view .LVU4955 14215 0096 226D ldr r2, [r4, #80] 14216 .LVL1069: 5153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14217 .loc 1 5153 28 view .LVU4956 14218 0098 9A62 str r2, [r3, #40] 5156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14219 .loc 1 5156 7 is_stmt 1 view .LVU4957 5156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14220 .loc 1 5156 24 is_stmt 0 view .LVU4958 14221 009a 4FF0FF33 mov r3, #-1 14222 009e 2365 str r3, [r4, #80] 14223 00a0 D8E7 b .L900 14224 .LVL1070: 14225 .L922: 5142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14226 .loc 1 5142 7 is_stmt 1 view .LVU4959 5142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14227 .loc 1 5142 35 is_stmt 0 view .LVU4960 14228 00a2 626A ldr r2, [r4, #36] 14229 .LVL1071: 5142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14230 .loc 1 5142 11 view .LVU4961 14231 00a4 2368 ldr r3, [r4] 5142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14232 .loc 1 5142 30 view .LVU4962 14233 00a6 1278 ldrb r2, [r2] @ zero_extendqisi2 5142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14234 .loc 1 5142 28 view .LVU4963 14235 00a8 9A62 str r2, [r3, #40] 5145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14236 .loc 1 5145 7 is_stmt 1 view .LVU4964 5145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14237 .loc 1 5145 11 is_stmt 0 view .LVU4965 14238 00aa 636A ldr r3, [r4, #36] 5145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14239 .loc 1 5145 21 view .LVU4966 14240 00ac 0133 adds r3, r3, #1 14241 00ae 6362 str r3, [r4, #36] ARM GAS /tmp/ccSHpINd.s page 466 5147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 14242 .loc 1 5147 7 is_stmt 1 view .LVU4967 5147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 14243 .loc 1 5147 11 is_stmt 0 view .LVU4968 14244 00b0 238D ldrh r3, [r4, #40] 5147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 14245 .loc 1 5147 21 view .LVU4969 14246 00b2 013B subs r3, r3, #1 14247 00b4 2385 strh r3, [r4, #40] @ movhi 5148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14248 .loc 1 5148 7 is_stmt 1 view .LVU4970 5148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14249 .loc 1 5148 11 is_stmt 0 view .LVU4971 14250 00b6 638D ldrh r3, [r4, #42] 14251 00b8 9BB2 uxth r3, r3 5148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14252 .loc 1 5148 22 view .LVU4972 14253 00ba 013B subs r3, r3, #1 14254 00bc 9BB2 uxth r3, r3 14255 00be 6385 strh r3, [r4, #42] @ movhi 14256 00c0 C8E7 b .L900 14257 .LVL1072: 14258 .L902: 5159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14259 .loc 1 5159 8 is_stmt 1 view .LVU4973 5159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14260 .loc 1 5159 11 is_stmt 0 view .LVU4974 14261 00c2 15F0800F tst r5, #128 14262 00c6 34D0 beq .L904 5159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14263 .loc 1 5159 64 discriminator 1 view .LVU4975 14264 00c8 16F0400F tst r6, #64 14265 00cc 31D0 beq .L904 5162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14266 .loc 1 5162 5 is_stmt 1 view .LVU4976 5162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14267 .loc 1 5162 14 is_stmt 0 view .LVU4977 14268 00ce 638D ldrh r3, [r4, #42] 14269 00d0 9BB2 uxth r3, r3 5162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14270 .loc 1 5162 8 view .LVU4978 14271 00d2 4BB3 cbz r3, .L905 5162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14272 .loc 1 5162 41 discriminator 1 view .LVU4979 14273 00d4 238D ldrh r3, [r4, #40] 5162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14274 .loc 1 5162 33 discriminator 1 view .LVU4980 14275 00d6 3BBB cbnz r3, .L905 5164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14276 .loc 1 5164 7 is_stmt 1 view .LVU4981 5164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14277 .loc 1 5164 15 is_stmt 0 view .LVU4982 14278 00d8 638D ldrh r3, [r4, #42] 14279 00da 9BB2 uxth r3, r3 5164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14280 .loc 1 5164 10 view .LVU4983 14281 00dc FF2B cmp r3, #255 ARM GAS /tmp/ccSHpINd.s page 467 14282 00de 15D9 bls .L906 5167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14283 .loc 1 5167 9 is_stmt 1 view .LVU4984 5167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14284 .loc 1 5167 13 is_stmt 0 view .LVU4985 14285 00e0 2368 ldr r3, [r4] 14286 00e2 9B69 ldr r3, [r3, #24] 5167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14287 .loc 1 5167 12 view .LVU4986 14288 00e4 13F4803F tst r3, #65536 14289 00e8 0DD0 beq .L907 5169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14290 .loc 1 5169 11 is_stmt 1 view .LVU4987 5169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14291 .loc 1 5169 26 is_stmt 0 view .LVU4988 14292 00ea 0123 movs r3, #1 14293 00ec 2385 strh r3, [r4, #40] @ movhi 14294 .L908: 5175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14295 .loc 1 5175 9 is_stmt 1 view .LVU4989 5175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14296 .loc 1 5175 48 is_stmt 0 view .LVU4990 14297 00ee E16C ldr r1, [r4, #76] 14298 .LVL1073: 5175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14299 .loc 1 5175 9 view .LVU4991 14300 00f0 0023 movs r3, #0 14301 00f2 0093 str r3, [sp] 14302 00f4 4FF08073 mov r3, #16777216 14303 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 14304 .LVL1074: 5175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14305 .loc 1 5175 9 view .LVU4992 14306 00fc 89B2 uxth r1, r1 14307 00fe 2046 mov r0, r4 14308 .LVL1075: 5175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14309 .loc 1 5175 9 view .LVU4993 14310 0100 FFF7FEFF bl I2C_TransferConfig 14311 .LVL1076: 14312 0104 A6E7 b .L900 14313 .LVL1077: 14314 .L907: 5173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14315 .loc 1 5173 11 is_stmt 1 view .LVU4994 5173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14316 .loc 1 5173 26 is_stmt 0 view .LVU4995 14317 0106 FF23 movs r3, #255 14318 0108 2385 strh r3, [r4, #40] @ movhi 14319 010a F0E7 b .L908 14320 .L906: 5180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14321 .loc 1 5180 9 is_stmt 1 view .LVU4996 5180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14322 .loc 1 5180 30 is_stmt 0 view .LVU4997 14323 010c 628D ldrh r2, [r4, #42] 14324 .LVL1078: ARM GAS /tmp/ccSHpINd.s page 468 5180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14325 .loc 1 5180 30 view .LVU4998 14326 010e 92B2 uxth r2, r2 5180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14327 .loc 1 5180 24 view .LVU4999 14328 0110 2285 strh r2, [r4, #40] @ movhi 5181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14329 .loc 1 5181 9 is_stmt 1 view .LVU5000 5181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14330 .loc 1 5181 48 is_stmt 0 view .LVU5001 14331 0112 E16C ldr r1, [r4, #76] 14332 .LVL1079: 5181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14333 .loc 1 5181 9 view .LVU5002 14334 0114 0023 movs r3, #0 14335 0116 0093 str r3, [sp] 14336 0118 4FF00073 mov r3, #33554432 14337 011c D2B2 uxtb r2, r2 14338 011e 89B2 uxth r1, r1 14339 0120 2046 mov r0, r4 14340 .LVL1080: 5181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14341 .loc 1 5181 9 view .LVU5003 14342 0122 FFF7FEFF bl I2C_TransferConfig 14343 .LVL1081: 14344 0126 95E7 b .L900 14345 .LVL1082: 14346 .L905: 5189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14347 .loc 1 5189 7 is_stmt 1 view .LVU5004 14348 0128 4021 movs r1, #64 14349 .LVL1083: 5189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14350 .loc 1 5189 7 is_stmt 0 view .LVU5005 14351 012a 2046 mov r0, r4 14352 .LVL1084: 5189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14353 .loc 1 5189 7 view .LVU5006 14354 012c FFF7FEFF bl I2C_ITError 14355 .LVL1085: 5189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14356 .loc 1 5189 7 view .LVU5007 14357 0130 90E7 b .L900 14358 .LVL1086: 14359 .L904: 5192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14360 .loc 1 5192 8 is_stmt 1 view .LVU5008 5192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14361 .loc 1 5192 11 is_stmt 0 view .LVU5009 14362 0132 15F0400F tst r5, #64 14363 0136 8DD0 beq .L900 5192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14364 .loc 1 5192 63 discriminator 1 view .LVU5010 14365 0138 16F0400F tst r6, #64 14366 013c 8AD0 beq .L900 5196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14367 .loc 1 5196 5 is_stmt 1 view .LVU5011 ARM GAS /tmp/ccSHpINd.s page 469 14368 013e 0121 movs r1, #1 14369 .LVL1087: 5196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14370 .loc 1 5196 5 is_stmt 0 view .LVU5012 14371 0140 2046 mov r0, r4 14372 .LVL1088: 5196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14373 .loc 1 5196 5 view .LVU5013 14374 0142 FFF7FEFF bl I2C_Disable_IRQ 14375 .LVL1089: 5199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14376 .loc 1 5199 5 is_stmt 1 view .LVU5014 14377 0146 0221 movs r1, #2 14378 0148 2046 mov r0, r4 14379 014a FFF7FEFF bl I2C_Enable_IRQ 14380 .LVL1090: 5201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14381 .loc 1 5201 5 view .LVU5015 5201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14382 .loc 1 5201 13 is_stmt 0 view .LVU5016 14383 014e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 14384 0152 DBB2 uxtb r3, r3 5201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14385 .loc 1 5201 8 view .LVU5017 14386 0154 222B cmp r3, #34 14387 0156 16D0 beq .L915 5101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 14388 .loc 1 5101 12 view .LVU5018 14389 0158 1748 ldr r0, .L923 14390 .L909: 14391 .LVL1091: 5206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14392 .loc 1 5206 5 is_stmt 1 view .LVU5019 5206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14393 .loc 1 5206 13 is_stmt 0 view .LVU5020 14394 015a 638D ldrh r3, [r4, #42] 14395 015c 9BB2 uxth r3, r3 5206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14396 .loc 1 5206 8 view .LVU5021 14397 015e FF2B cmp r3, #255 14398 0160 16D9 bls .L910 5209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14399 .loc 1 5209 7 is_stmt 1 view .LVU5022 5209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14400 .loc 1 5209 11 is_stmt 0 view .LVU5023 14401 0162 2368 ldr r3, [r4] 14402 0164 9B69 ldr r3, [r3, #24] 5209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14403 .loc 1 5209 10 view .LVU5024 14404 0166 13F4803F tst r3, #65536 14405 016a 0ED0 beq .L911 5211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14406 .loc 1 5211 9 is_stmt 1 view .LVU5025 5211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14407 .loc 1 5211 24 is_stmt 0 view .LVU5026 14408 016c 0123 movs r3, #1 14409 016e 2385 strh r3, [r4, #40] @ movhi ARM GAS /tmp/ccSHpINd.s page 470 14410 .L912: 5219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14411 .loc 1 5219 7 is_stmt 1 view .LVU5027 5219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14412 .loc 1 5219 46 is_stmt 0 view .LVU5028 14413 0170 E16C ldr r1, [r4, #76] 5219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14414 .loc 1 5219 7 view .LVU5029 14415 0172 0090 str r0, [sp] 14416 0174 4FF08073 mov r3, #16777216 14417 0178 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 14418 017c 89B2 uxth r1, r1 14419 017e 2046 mov r0, r4 14420 .LVL1092: 5219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14421 .loc 1 5219 7 view .LVU5030 14422 0180 FFF7FEFF bl I2C_TransferConfig 14423 .LVL1093: 5219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14424 .loc 1 5219 7 view .LVU5031 14425 0184 66E7 b .L900 14426 .LVL1094: 14427 .L915: 5203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14428 .loc 1 5203 17 view .LVU5032 14429 0186 0D48 ldr r0, .L923+4 14430 0188 E7E7 b .L909 14431 .LVL1095: 14432 .L911: 5215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14433 .loc 1 5215 9 is_stmt 1 view .LVU5033 5215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14434 .loc 1 5215 24 is_stmt 0 view .LVU5034 14435 018a FF23 movs r3, #255 14436 018c 2385 strh r3, [r4, #40] @ movhi 14437 018e EFE7 b .L912 14438 .L910: 5224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14439 .loc 1 5224 7 is_stmt 1 view .LVU5035 5224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14440 .loc 1 5224 28 is_stmt 0 view .LVU5036 14441 0190 628D ldrh r2, [r4, #42] 14442 0192 92B2 uxth r2, r2 5224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14443 .loc 1 5224 22 view .LVU5037 14444 0194 2285 strh r2, [r4, #40] @ movhi 5227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14445 .loc 1 5227 7 is_stmt 1 view .LVU5038 5227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14446 .loc 1 5227 46 is_stmt 0 view .LVU5039 14447 0196 E16C ldr r1, [r4, #76] 5227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14448 .loc 1 5227 7 view .LVU5040 14449 0198 0090 str r0, [sp] 14450 019a 4FF00073 mov r3, #33554432 14451 019e D2B2 uxtb r2, r2 14452 01a0 89B2 uxth r1, r1 ARM GAS /tmp/ccSHpINd.s page 471 14453 01a2 2046 mov r0, r4 14454 .LVL1096: 5227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14455 .loc 1 5227 7 view .LVU5041 14456 01a4 FFF7FEFF bl I2C_TransferConfig 14457 .LVL1097: 5227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14458 .loc 1 5227 7 view .LVU5042 14459 01a8 54E7 b .L900 14460 .LVL1098: 14461 .L921: 5240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14462 .loc 1 5240 5 is_stmt 1 view .LVU5043 14463 01aa 2946 mov r1, r5 14464 01ac 2046 mov r0, r4 14465 01ae FFF7FEFF bl I2C_ITMasterCplt 14466 .LVL1099: 14467 01b2 56E7 b .L913 14468 .LVL1100: 14469 .L914: 14470 .LCFI152: 14471 .cfi_def_cfa_offset 0 14472 .cfi_restore 4 14473 .cfi_restore 5 14474 .cfi_restore 6 14475 .cfi_restore 14 5105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14476 .loc 1 5105 3 is_stmt 0 discriminator 1 view .LVU5044 14477 01b4 0220 movs r0, #2 14478 .LVL1101: 5247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14479 .loc 1 5247 1 view .LVU5045 14480 01b6 7047 bx lr 14481 .L924: 14482 .align 2 14483 .L923: 14484 01b8 00200080 .word -2147475456 14485 01bc 00240080 .word -2147474432 14486 .cfi_endproc 14487 .LFE191: 14489 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits 14490 .align 1 14491 .global HAL_I2C_ER_IRQHandler 14492 .syntax unified 14493 .thumb 14494 .thumb_func 14496 HAL_I2C_ER_IRQHandler: 14497 .LVL1102: 14498 .LFB176: 4658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 14499 .loc 1 4658 1 is_stmt 1 view -0 14500 .cfi_startproc 14501 @ args = 0, pretend = 0, frame = 0 14502 @ frame_needed = 0, uses_anonymous_args = 0 4658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 14503 .loc 1 4658 1 is_stmt 0 view .LVU5047 14504 0000 10B5 push {r4, lr} ARM GAS /tmp/ccSHpINd.s page 472 14505 .LCFI153: 14506 .cfi_def_cfa_offset 8 14507 .cfi_offset 4, -8 14508 .cfi_offset 14, -4 4659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14509 .loc 1 4659 3 is_stmt 1 view .LVU5048 4659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14510 .loc 1 4659 24 is_stmt 0 view .LVU5049 14511 0002 0268 ldr r2, [r0] 4659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14512 .loc 1 4659 12 view .LVU5050 14513 0004 9369 ldr r3, [r2, #24] 14514 .LVL1103: 4660:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmperror; 14515 .loc 1 4660 3 is_stmt 1 view .LVU5051 4660:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmperror; 14516 .loc 1 4660 12 is_stmt 0 view .LVU5052 14517 0006 1168 ldr r1, [r2] 14518 .LVL1104: 4661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14519 .loc 1 4661 3 is_stmt 1 view .LVU5053 4664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14520 .loc 1 4664 3 view .LVU5054 4664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14521 .loc 1 4664 6 is_stmt 0 view .LVU5055 14522 0008 13F4807F tst r3, #256 14523 000c 09D0 beq .L926 4664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14524 .loc 1 4664 57 discriminator 1 view .LVU5056 14525 000e 11F0800F tst r1, #128 14526 0012 06D0 beq .L926 4667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14527 .loc 1 4667 5 is_stmt 1 view .LVU5057 4667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14528 .loc 1 4667 9 is_stmt 0 view .LVU5058 14529 0014 446C ldr r4, [r0, #68] 4667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14530 .loc 1 4667 21 view .LVU5059 14531 0016 44F00104 orr r4, r4, #1 14532 001a 4464 str r4, [r0, #68] 4670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14533 .loc 1 4670 5 is_stmt 1 view .LVU5060 14534 001c 4FF48074 mov r4, #256 14535 0020 D461 str r4, [r2, #28] 14536 .L926: 4674:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14537 .loc 1 4674 3 view .LVU5061 4674:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14538 .loc 1 4674 6 is_stmt 0 view .LVU5062 14539 0022 13F4806F tst r3, #1024 14540 0026 0AD0 beq .L927 4674:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14541 .loc 1 4674 56 discriminator 1 view .LVU5063 14542 0028 11F0800F tst r1, #128 14543 002c 07D0 beq .L927 4677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14544 .loc 1 4677 5 is_stmt 1 view .LVU5064 ARM GAS /tmp/ccSHpINd.s page 473 4677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14545 .loc 1 4677 9 is_stmt 0 view .LVU5065 14546 002e 426C ldr r2, [r0, #68] 4677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14547 .loc 1 4677 21 view .LVU5066 14548 0030 42F00802 orr r2, r2, #8 14549 0034 4264 str r2, [r0, #68] 4680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14550 .loc 1 4680 5 is_stmt 1 view .LVU5067 14551 0036 0268 ldr r2, [r0] 14552 0038 4FF48064 mov r4, #1024 14553 003c D461 str r4, [r2, #28] 14554 .L927: 4684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14555 .loc 1 4684 3 view .LVU5068 4684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14556 .loc 1 4684 6 is_stmt 0 view .LVU5069 14557 003e 13F4007F tst r3, #512 14558 0042 0AD0 beq .L928 4684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14559 .loc 1 4684 57 discriminator 1 view .LVU5070 14560 0044 11F0800F tst r1, #128 14561 0048 07D0 beq .L928 4687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14562 .loc 1 4687 5 is_stmt 1 view .LVU5071 4687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14563 .loc 1 4687 9 is_stmt 0 view .LVU5072 14564 004a 436C ldr r3, [r0, #68] 14565 .LVL1105: 4687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14566 .loc 1 4687 21 view .LVU5073 14567 004c 43F00203 orr r3, r3, #2 14568 0050 4364 str r3, [r0, #68] 4690:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14569 .loc 1 4690 5 is_stmt 1 view .LVU5074 14570 0052 0368 ldr r3, [r0] 14571 0054 4FF40072 mov r2, #512 14572 0058 DA61 str r2, [r3, #28] 14573 .L928: 4694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14574 .loc 1 4694 3 view .LVU5075 4694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14575 .loc 1 4694 12 is_stmt 0 view .LVU5076 14576 005a 416C ldr r1, [r0, #68] 14577 .LVL1106: 4697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14578 .loc 1 4697 3 is_stmt 1 view .LVU5077 4697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14579 .loc 1 4697 6 is_stmt 0 view .LVU5078 14580 005c 11F00B0F tst r1, #11 14581 0060 00D1 bne .L931 14582 .LVL1107: 14583 .L925: 4701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14584 .loc 1 4701 1 view .LVU5079 14585 0062 10BD pop {r4, pc} 14586 .LVL1108: ARM GAS /tmp/ccSHpINd.s page 474 14587 .L931: 4699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14588 .loc 1 4699 5 is_stmt 1 view .LVU5080 14589 0064 FFF7FEFF bl I2C_ITError 14590 .LVL1109: 4701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14591 .loc 1 4701 1 is_stmt 0 view .LVU5081 14592 0068 FBE7 b .L925 14593 .cfi_endproc 14594 .LFE176: 14596 .section .text.I2C_DMAAbort,"ax",%progbits 14597 .align 1 14598 .syntax unified 14599 .thumb 14600 .thumb_func 14602 I2C_DMAAbort: 14603 .LVL1110: 14604 .LFB212: 6988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14605 .loc 1 6988 1 is_stmt 1 view -0 14606 .cfi_startproc 14607 @ args = 0, pretend = 0, frame = 0 14608 @ frame_needed = 0, uses_anonymous_args = 0 6988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14609 .loc 1 6988 1 is_stmt 0 view .LVU5083 14610 0000 08B5 push {r3, lr} 14611 .LCFI154: 14612 .cfi_def_cfa_offset 8 14613 .cfi_offset 3, -8 14614 .cfi_offset 14, -4 6990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14615 .loc 1 6990 3 is_stmt 1 view .LVU5084 6990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14616 .loc 1 6990 22 is_stmt 0 view .LVU5085 14617 0002 806B ldr r0, [r0, #56] 14618 .LVL1111: 6993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14619 .loc 1 6993 3 is_stmt 1 view .LVU5086 6993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14620 .loc 1 6993 11 is_stmt 0 view .LVU5087 14621 0004 836B ldr r3, [r0, #56] 6993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14622 .loc 1 6993 6 view .LVU5088 14623 0006 0BB1 cbz r3, .L933 6995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14624 .loc 1 6995 5 is_stmt 1 view .LVU5089 6995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14625 .loc 1 6995 37 is_stmt 0 view .LVU5090 14626 0008 0022 movs r2, #0 14627 000a 1A65 str r2, [r3, #80] 14628 .L933: 6997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14629 .loc 1 6997 3 is_stmt 1 view .LVU5091 6997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14630 .loc 1 6997 11 is_stmt 0 view .LVU5092 14631 000c C36B ldr r3, [r0, #60] 6997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/ccSHpINd.s page 475 14632 .loc 1 6997 6 view .LVU5093 14633 000e 0BB1 cbz r3, .L934 6999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14634 .loc 1 6999 5 is_stmt 1 view .LVU5094 6999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14635 .loc 1 6999 37 is_stmt 0 view .LVU5095 14636 0010 0022 movs r2, #0 14637 0012 1A65 str r2, [r3, #80] 14638 .L934: 7002:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14639 .loc 1 7002 3 is_stmt 1 view .LVU5096 14640 0014 FFF7FEFF bl I2C_TreatErrorCallback 14641 .LVL1112: 7003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14642 .loc 1 7003 1 is_stmt 0 view .LVU5097 14643 0018 08BD pop {r3, pc} 14644 .cfi_endproc 14645 .LFE212: 14647 .section .text.HAL_I2C_GetState,"ax",%progbits 14648 .align 1 14649 .global HAL_I2C_GetState 14650 .syntax unified 14651 .thumb 14652 .thumb_func 14654 HAL_I2C_GetState: 14655 .LVL1113: 14656 .LFB187: 4892:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Return I2C handle state */ 14657 .loc 1 4892 1 is_stmt 1 view -0 14658 .cfi_startproc 14659 @ args = 0, pretend = 0, frame = 0 14660 @ frame_needed = 0, uses_anonymous_args = 0 14661 @ link register save eliminated. 4894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14662 .loc 1 4894 3 view .LVU5099 4894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14663 .loc 1 4894 14 is_stmt 0 view .LVU5100 14664 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 14665 .LVL1114: 4895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14666 .loc 1 4895 1 view .LVU5101 14667 0004 7047 bx lr 14668 .cfi_endproc 14669 .LFE187: 14671 .section .text.HAL_I2C_GetMode,"ax",%progbits 14672 .align 1 14673 .global HAL_I2C_GetMode 14674 .syntax unified 14675 .thumb 14676 .thumb_func 14678 HAL_I2C_GetMode: 14679 .LVL1115: 14680 .LFB188: 4904:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return hi2c->Mode; 14681 .loc 1 4904 1 is_stmt 1 view -0 14682 .cfi_startproc 14683 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/ccSHpINd.s page 476 14684 @ frame_needed = 0, uses_anonymous_args = 0 14685 @ link register save eliminated. 4905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14686 .loc 1 4905 3 view .LVU5103 4905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14687 .loc 1 4905 14 is_stmt 0 view .LVU5104 14688 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 14689 .LVL1116: 4906:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14690 .loc 1 4906 1 view .LVU5105 14691 0004 7047 bx lr 14692 .cfi_endproc 14693 .LFE188: 14695 .section .text.HAL_I2C_GetError,"ax",%progbits 14696 .align 1 14697 .global HAL_I2C_GetError 14698 .syntax unified 14699 .thumb 14700 .thumb_func 14702 HAL_I2C_GetError: 14703 .LVL1117: 14704 .LFB189: 4915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return hi2c->ErrorCode; 14705 .loc 1 4915 1 is_stmt 1 view -0 14706 .cfi_startproc 14707 @ args = 0, pretend = 0, frame = 0 14708 @ frame_needed = 0, uses_anonymous_args = 0 14709 @ link register save eliminated. 4916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14710 .loc 1 4916 3 view .LVU5107 4916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14711 .loc 1 4916 14 is_stmt 0 view .LVU5108 14712 0000 406C ldr r0, [r0, #68] 14713 .LVL1118: 4917:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14714 .loc 1 4917 1 view .LVU5109 14715 0002 7047 bx lr 14716 .cfi_endproc 14717 .LFE189: 14719 .text 14720 .Letext0: 14721 .file 2 "/usr/lib/gcc/arm-none-eabi/13.2.1/include/stdint.h" 14722 .file 3 "Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f767xx.h" 14723 .file 4 "Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f7xx.h" 14724 .file 5 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h" 14725 .file 6 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma.h" 14726 .file 7 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c.h" 14727 .file 8 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h" ARM GAS /tmp/ccSHpINd.s page 477 DEFINED SYMBOLS *ABS*:00000000 stm32f7xx_hal_i2c.c /tmp/ccSHpINd.s:20 .text.I2C_Flush_TXDR:00000000 $t /tmp/ccSHpINd.s:25 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR /tmp/ccSHpINd.s:63 .text.I2C_TransferConfig:00000000 $t /tmp/ccSHpINd.s:68 .text.I2C_TransferConfig:00000000 I2C_TransferConfig /tmp/ccSHpINd.s:126 .text.I2C_Enable_IRQ:00000000 $t /tmp/ccSHpINd.s:131 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ /tmp/ccSHpINd.s:293 .text.I2C_Enable_IRQ:00000090 $d /tmp/ccSHpINd.s:13416 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA /tmp/ccSHpINd.s:13116 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA /tmp/ccSHpINd.s:12707 .text.I2C_Mem_ISR_DMA:00000000 I2C_Mem_ISR_DMA /tmp/ccSHpINd.s:300 .text.I2C_Disable_IRQ:00000000 $t /tmp/ccSHpINd.s:305 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ /tmp/ccSHpINd.s:429 .text.I2C_ConvertOtherXferOptions:00000000 $t /tmp/ccSHpINd.s:434 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions /tmp/ccSHpINd.s:475 .text.I2C_IsErrorOccurred:00000000 $t /tmp/ccSHpINd.s:480 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred /tmp/ccSHpINd.s:761 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t /tmp/ccSHpINd.s:766 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout /tmp/ccSHpINd.s:864 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t /tmp/ccSHpINd.s:869 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout /tmp/ccSHpINd.s:981 .text.I2C_RequestMemoryWrite:00000000 $t /tmp/ccSHpINd.s:986 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite /tmp/ccSHpINd.s:1105 .text.I2C_RequestMemoryWrite:00000078 $d /tmp/ccSHpINd.s:1110 .text.I2C_RequestMemoryRead:00000000 $t /tmp/ccSHpINd.s:1115 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead /tmp/ccSHpINd.s:1234 .text.I2C_RequestMemoryRead:00000074 $d /tmp/ccSHpINd.s:1239 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t /tmp/ccSHpINd.s:1244 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout /tmp/ccSHpINd.s:1342 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t /tmp/ccSHpINd.s:1347 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout /tmp/ccSHpINd.s:1512 .text.HAL_I2C_MspInit:00000000 $t /tmp/ccSHpINd.s:1518 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit /tmp/ccSHpINd.s:1533 .text.HAL_I2C_Init:00000000 $t /tmp/ccSHpINd.s:1539 .text.HAL_I2C_Init:00000000 HAL_I2C_Init /tmp/ccSHpINd.s:1734 .text.HAL_I2C_Init:000000c4 $d /tmp/ccSHpINd.s:1739 .text.HAL_I2C_MspDeInit:00000000 $t /tmp/ccSHpINd.s:1745 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit /tmp/ccSHpINd.s:1760 .text.HAL_I2C_DeInit:00000000 $t /tmp/ccSHpINd.s:1766 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit /tmp/ccSHpINd.s:1831 .text.HAL_I2C_Master_Transmit:00000000 $t /tmp/ccSHpINd.s:1837 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit /tmp/ccSHpINd.s:2197 .text.HAL_I2C_Master_Transmit:000001a0 $d /tmp/ccSHpINd.s:2202 .text.HAL_I2C_Master_Receive:00000000 $t /tmp/ccSHpINd.s:2208 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive /tmp/ccSHpINd.s:2517 .text.HAL_I2C_Master_Receive:00000178 $d /tmp/ccSHpINd.s:2522 .text.HAL_I2C_Slave_Transmit:00000000 $t /tmp/ccSHpINd.s:2528 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit /tmp/ccSHpINd.s:2980 .text.HAL_I2C_Slave_Receive:00000000 $t /tmp/ccSHpINd.s:2986 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive /tmp/ccSHpINd.s:3337 .text.HAL_I2C_Master_Transmit_IT:00000000 $t /tmp/ccSHpINd.s:3343 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT /tmp/ccSHpINd.s:3542 .text.HAL_I2C_Master_Transmit_IT:000000bc $d /tmp/ccSHpINd.s:12303 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT /tmp/ccSHpINd.s:3549 .text.HAL_I2C_Master_Receive_IT:00000000 $t /tmp/ccSHpINd.s:3555 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT ARM GAS /tmp/ccSHpINd.s page 478 /tmp/ccSHpINd.s:3708 .text.HAL_I2C_Master_Receive_IT:0000008c $d /tmp/ccSHpINd.s:3715 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t /tmp/ccSHpINd.s:3721 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT /tmp/ccSHpINd.s:3865 .text.HAL_I2C_Slave_Transmit_IT:00000084 $d /tmp/ccSHpINd.s:11709 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT /tmp/ccSHpINd.s:3871 .text.HAL_I2C_Slave_Receive_IT:00000000 $t /tmp/ccSHpINd.s:3877 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT /tmp/ccSHpINd.s:3980 .text.HAL_I2C_Slave_Receive_IT:0000005c $d /tmp/ccSHpINd.s:3986 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t /tmp/ccSHpINd.s:3992 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA /tmp/ccSHpINd.s:4340 .text.HAL_I2C_Master_Transmit_DMA:0000015c $d /tmp/ccSHpINd.s:13842 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt /tmp/ccSHpINd.s:13744 .text.I2C_DMAError:00000000 I2C_DMAError /tmp/ccSHpINd.s:4350 .text.HAL_I2C_Master_Receive_DMA:00000000 $t /tmp/ccSHpINd.s:4356 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA /tmp/ccSHpINd.s:4658 .text.HAL_I2C_Master_Receive_DMA:00000138 $d /tmp/ccSHpINd.s:13950 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt /tmp/ccSHpINd.s:4668 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t /tmp/ccSHpINd.s:4674 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA /tmp/ccSHpINd.s:4979 .text.HAL_I2C_Slave_Transmit_DMA:00000130 $d /tmp/ccSHpINd.s:10399 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt /tmp/ccSHpINd.s:4987 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t /tmp/ccSHpINd.s:4993 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA /tmp/ccSHpINd.s:5215 .text.HAL_I2C_Slave_Receive_DMA:000000e4 $d /tmp/ccSHpINd.s:10456 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt /tmp/ccSHpINd.s:5223 .text.HAL_I2C_Mem_Write:00000000 $t /tmp/ccSHpINd.s:5229 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write /tmp/ccSHpINd.s:5587 .text.HAL_I2C_Mem_Read:00000000 $t /tmp/ccSHpINd.s:5593 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read /tmp/ccSHpINd.s:5951 .text.HAL_I2C_Mem_Read:000001ac $d /tmp/ccSHpINd.s:5956 .text.HAL_I2C_Mem_Write_IT:00000000 $t /tmp/ccSHpINd.s:5962 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT /tmp/ccSHpINd.s:6139 .text.HAL_I2C_Mem_Write_IT:000000ac $d /tmp/ccSHpINd.s:14070 .text.I2C_Mem_ISR_IT:00000000 I2C_Mem_ISR_IT /tmp/ccSHpINd.s:6146 .text.HAL_I2C_Mem_Read_IT:00000000 $t /tmp/ccSHpINd.s:6152 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT /tmp/ccSHpINd.s:6326 .text.HAL_I2C_Mem_Read_IT:000000a8 $d /tmp/ccSHpINd.s:6333 .text.HAL_I2C_Mem_Write_DMA:00000000 $t /tmp/ccSHpINd.s:6339 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA /tmp/ccSHpINd.s:6624 .text.HAL_I2C_Mem_Write_DMA:00000120 $d /tmp/ccSHpINd.s:6633 .text.HAL_I2C_Mem_Read_DMA:00000000 $t /tmp/ccSHpINd.s:6639 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA /tmp/ccSHpINd.s:6926 .text.HAL_I2C_Mem_Read_DMA:00000120 $d /tmp/ccSHpINd.s:6935 .text.HAL_I2C_IsDeviceReady:00000000 $t /tmp/ccSHpINd.s:6941 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady /tmp/ccSHpINd.s:7232 .text.HAL_I2C_IsDeviceReady:00000134 $d /tmp/ccSHpINd.s:7238 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t /tmp/ccSHpINd.s:7244 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT /tmp/ccSHpINd.s:7511 .text.HAL_I2C_Master_Seq_Transmit_IT:00000104 $d /tmp/ccSHpINd.s:7517 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t /tmp/ccSHpINd.s:7523 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA /tmp/ccSHpINd.s:7945 .text.HAL_I2C_Master_Seq_Transmit_DMA:000001d0 $d /tmp/ccSHpINd.s:7954 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t /tmp/ccSHpINd.s:7960 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT /tmp/ccSHpINd.s:8148 .text.HAL_I2C_Master_Seq_Receive_IT:000000ac $d /tmp/ccSHpINd.s:8154 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t /tmp/ccSHpINd.s:8160 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA ARM GAS /tmp/ccSHpINd.s page 479 /tmp/ccSHpINd.s:8492 .text.HAL_I2C_Master_Seq_Receive_DMA:00000160 $d /tmp/ccSHpINd.s:8501 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t /tmp/ccSHpINd.s:8507 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT /tmp/ccSHpINd.s:8718 .text.HAL_I2C_Slave_Seq_Transmit_IT:000000dc $d /tmp/ccSHpINd.s:14602 .text.I2C_DMAAbort:00000000 I2C_DMAAbort /tmp/ccSHpINd.s:8724 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t /tmp/ccSHpINd.s:8730 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA /tmp/ccSHpINd.s:9120 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000019c $d /tmp/ccSHpINd.s:9128 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t /tmp/ccSHpINd.s:9134 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT /tmp/ccSHpINd.s:9345 .text.HAL_I2C_Slave_Seq_Receive_IT:000000dc $d /tmp/ccSHpINd.s:9351 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t /tmp/ccSHpINd.s:9357 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA /tmp/ccSHpINd.s:9745 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000019c $d /tmp/ccSHpINd.s:9753 .text.HAL_I2C_EnableListen_IT:00000000 $t /tmp/ccSHpINd.s:9759 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT /tmp/ccSHpINd.s:9806 .text.HAL_I2C_EnableListen_IT:00000028 $d /tmp/ccSHpINd.s:9811 .text.HAL_I2C_DisableListen_IT:00000000 $t /tmp/ccSHpINd.s:9817 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT /tmp/ccSHpINd.s:9883 .text.HAL_I2C_Master_Abort_IT:00000000 $t /tmp/ccSHpINd.s:9889 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT /tmp/ccSHpINd.s:10038 .text.HAL_I2C_Master_Abort_IT:00000084 $d /tmp/ccSHpINd.s:10043 .text.HAL_I2C_EV_IRQHandler:00000000 $t /tmp/ccSHpINd.s:10049 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler /tmp/ccSHpINd.s:10087 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t /tmp/ccSHpINd.s:10093 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback /tmp/ccSHpINd.s:10108 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t /tmp/ccSHpINd.s:10114 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback /tmp/ccSHpINd.s:10129 .text.I2C_ITMasterSeqCplt:00000000 $t /tmp/ccSHpINd.s:10134 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt /tmp/ccSHpINd.s:10219 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t /tmp/ccSHpINd.s:10225 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback /tmp/ccSHpINd.s:10240 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t /tmp/ccSHpINd.s:10246 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback /tmp/ccSHpINd.s:10261 .text.I2C_ITSlaveSeqCplt:00000000 $t /tmp/ccSHpINd.s:10266 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt /tmp/ccSHpINd.s:10394 .text.I2C_DMASlaveTransmitCplt:00000000 $t /tmp/ccSHpINd.s:10451 .text.I2C_DMASlaveReceiveCplt:00000000 $t /tmp/ccSHpINd.s:10512 .text.HAL_I2C_AddrCallback:00000000 $t /tmp/ccSHpINd.s:10518 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback /tmp/ccSHpINd.s:10535 .text.I2C_ITAddrCplt:00000000 $t /tmp/ccSHpINd.s:10540 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt /tmp/ccSHpINd.s:10700 .text.HAL_I2C_ListenCpltCallback:00000000 $t /tmp/ccSHpINd.s:10706 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback /tmp/ccSHpINd.s:10721 .text.I2C_ITListenCplt:00000000 $t /tmp/ccSHpINd.s:10726 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt /tmp/ccSHpINd.s:10830 .text.I2C_ITListenCplt:00000064 $d /tmp/ccSHpINd.s:10835 .text.HAL_I2C_MemTxCpltCallback:00000000 $t /tmp/ccSHpINd.s:10841 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback /tmp/ccSHpINd.s:10856 .text.HAL_I2C_MemRxCpltCallback:00000000 $t /tmp/ccSHpINd.s:10862 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback /tmp/ccSHpINd.s:10877 .text.HAL_I2C_ErrorCallback:00000000 $t /tmp/ccSHpINd.s:10883 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback /tmp/ccSHpINd.s:10898 .text.HAL_I2C_AbortCpltCallback:00000000 $t /tmp/ccSHpINd.s:10904 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback /tmp/ccSHpINd.s:10919 .text.I2C_TreatErrorCallback:00000000 $t /tmp/ccSHpINd.s:10924 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback ARM GAS /tmp/ccSHpINd.s page 480 /tmp/ccSHpINd.s:10981 .text.I2C_ITError:00000000 $t /tmp/ccSHpINd.s:10986 .text.I2C_ITError:00000000 I2C_ITError /tmp/ccSHpINd.s:11264 .text.I2C_ITError:00000124 $d /tmp/ccSHpINd.s:11271 .text.I2C_ITSlaveCplt:00000000 $t /tmp/ccSHpINd.s:11276 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt /tmp/ccSHpINd.s:11323 .text.I2C_ITSlaveCplt:0000001e $d /tmp/ccSHpINd.s:11333 .text.I2C_ITSlaveCplt:00000028 $t /tmp/ccSHpINd.s:11699 .text.I2C_ITSlaveCplt:000001ec $d /tmp/ccSHpINd.s:11704 .text.I2C_Slave_ISR_IT:00000000 $t /tmp/ccSHpINd.s:12021 .text.I2C_ITMasterCplt:00000000 $t /tmp/ccSHpINd.s:12026 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt /tmp/ccSHpINd.s:12298 .text.I2C_Master_ISR_IT:00000000 $t /tmp/ccSHpINd.s:12702 .text.I2C_Mem_ISR_DMA:00000000 $t /tmp/ccSHpINd.s:13105 .text.I2C_Mem_ISR_DMA:000001c8 $d /tmp/ccSHpINd.s:13111 .text.I2C_Slave_ISR_DMA:00000000 $t /tmp/ccSHpINd.s:13254 .text.I2C_Slave_ISR_DMA:00000096 $d /tmp/ccSHpINd.s:13265 .text.I2C_Slave_ISR_DMA:000000a0 $t /tmp/ccSHpINd.s:13411 .text.I2C_Master_ISR_DMA:00000000 $t /tmp/ccSHpINd.s:13739 .text.I2C_DMAError:00000000 $t /tmp/ccSHpINd.s:13837 .text.I2C_DMAMasterTransmitCplt:00000000 $t /tmp/ccSHpINd.s:13945 .text.I2C_DMAMasterReceiveCplt:00000000 $t /tmp/ccSHpINd.s:14065 .text.I2C_Mem_ISR_IT:00000000 $t /tmp/ccSHpINd.s:14484 .text.I2C_Mem_ISR_IT:000001b8 $d /tmp/ccSHpINd.s:14490 .text.HAL_I2C_ER_IRQHandler:00000000 $t /tmp/ccSHpINd.s:14496 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler /tmp/ccSHpINd.s:14597 .text.I2C_DMAAbort:00000000 $t /tmp/ccSHpINd.s:14648 .text.HAL_I2C_GetState:00000000 $t /tmp/ccSHpINd.s:14654 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState /tmp/ccSHpINd.s:14672 .text.HAL_I2C_GetMode:00000000 $t /tmp/ccSHpINd.s:14678 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode /tmp/ccSHpINd.s:14696 .text.HAL_I2C_GetError:00000000 $t /tmp/ccSHpINd.s:14702 .text.HAL_I2C_GetError:00000000 HAL_I2C_GetError UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort_IT HAL_DMA_GetState HAL_DMA_GetError