ARM GAS /tmp/cchwqEfL.s page 1 1 .cpu cortex-m7 2 .eabi_attribute 28, 1 3 .eabi_attribute 20, 1 4 .eabi_attribute 21, 1 5 .eabi_attribute 23, 3 6 .eabi_attribute 24, 1 7 .eabi_attribute 25, 1 8 .eabi_attribute 26, 1 9 .eabi_attribute 30, 1 10 .eabi_attribute 34, 1 11 .eabi_attribute 18, 4 12 .file "stm32f7xx_hal_i2c.c" 13 .text 14 .Ltext0: 15 .cfi_sections .debug_frame 16 .section .text.I2C_Flush_TXDR,"ax",%progbits 17 .align 1 18 .arch armv7e-m 19 .syntax unified 20 .thumb 21 .thumb_func 22 .fpu fpv5-d16 24 I2C_Flush_TXDR: 25 .LVL0: 26 .LFB206: 27 .file 1 "Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c" 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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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/cchwqEfL.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 67 .fpu fpv5-d16 69 I2C_TransferConfig: 70 .LVL1: 71 .LFB218: ARM GAS /tmp/cchwqEfL.s page 121 6773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 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 **** */ ARM GAS /tmp/cchwqEfL.s page 122 6830:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) 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 **** } ARM GAS /tmp/cchwqEfL.s page 123 6887:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** else 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. ARM GAS /tmp/cchwqEfL.s page 124 6944:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @param hdma DMA handle 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 **** } ARM GAS /tmp/cchwqEfL.s page 125 7001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 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, ARM GAS /tmp/cchwqEfL.s page 126 7058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t Tickstart) 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; ARM GAS /tmp/cchwqEfL.s page 127 7115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 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); ARM GAS /tmp/cchwqEfL.s page 128 7172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 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 */ ARM GAS /tmp/cchwqEfL.s page 129 7229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) 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 **** { ARM GAS /tmp/cchwqEfL.s page 130 7286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR; 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: ARM GAS /tmp/cchwqEfL.s page 131 7343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode . 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 **** { 72 .loc 1 7356 1 is_stmt 1 view -0 73 .cfi_startproc 74 @ args = 4, pretend = 0, frame = 0 75 @ frame_needed = 0, uses_anonymous_args = 0 76 @ link register save eliminated. 77 .loc 1 7356 1 is_stmt 0 view .LVU12 78 0000 10B4 push {r4} 79 .LCFI0: 80 .cfi_def_cfa_offset 4 81 .cfi_offset 4, -4 82 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)); 83 .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)); 84 .loc 1 7359 3 view .LVU14 7360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request)); 85 .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) | \ 86 .loc 1 7363 3 view .LVU16 87 .loc 1 7363 52 is_stmt 0 view .LVU17 88 0004 C1F30901 ubfx r1, r1, #0, #10 89 .LVL2: 90 .loc 1 7363 68 view .LVU18 91 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) | \ 92 .loc 1 7364 88 view .LVU19 93 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) | \ 94 .loc 1 7363 19 view .LVU20 95 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) | \ 96 .loc 1 7363 12 view .LVU21 97 0010 21F00041 bic r1, r1, #-2147483648 98 .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, \ 99 .loc 1 7368 3 is_stmt 1 view .LVU22 100 0014 0268 ldr r2, [r0] ARM GAS /tmp/cchwqEfL.s page 132 101 .LVL4: 102 .loc 1 7368 3 is_stmt 0 view .LVU23 103 0016 5368 ldr r3, [r2, #4] 104 .LVL5: 105 .loc 1 7368 3 view .LVU24 106 0018 640D lsrs r4, r4, #21 107 001a 04F48064 and r4, r4, #1024 108 001e 44F07F74 orr r4, r4, #66846720 109 0022 44F45834 orr r4, r4, #221184 110 0026 44F47F74 orr r4, r4, #1020 111 002a 44F00304 orr r4, r4, #3 112 002e 23EA0404 bic r4, r3, r4 113 0032 2143 orrs r1, r1, r4 114 .LVL6: 115 .loc 1 7368 3 view .LVU25 116 0034 5160 str r1, [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 **** } 117 .loc 1 7372 1 view .LVU26 118 0036 5DF8044B ldr r4, [sp], #4 119 .LCFI1: 120 .cfi_restore 4 121 .cfi_def_cfa_offset 0 122 .LVL7: 123 .loc 1 7372 1 view .LVU27 124 003a 7047 bx lr 125 .cfi_endproc 126 .LFE218: 128 .section .text.I2C_Enable_IRQ,"ax",%progbits 129 .align 1 130 .syntax unified 131 .thumb 132 .thumb_func 133 .fpu fpv5-d16 135 I2C_Enable_IRQ: 136 .LVL8: 137 .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 **** { 138 .loc 1 7382 1 is_stmt 1 view -0 139 .cfi_startproc 140 @ args = 0, pretend = 0, frame = 0 141 @ frame_needed = 0, uses_anonymous_args = 0 142 @ link register save eliminated. 7383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpisr = 0U; 143 .loc 1 7383 3 view .LVU29 7384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 133 7385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Master_ISR_DMA) && \ 144 .loc 1 7385 3 view .LVU30 145 .loc 1 7385 12 is_stmt 0 view .LVU31 146 0000 436B ldr r3, [r0, #52] 147 .loc 1 7385 6 view .LVU32 148 0002 234A ldr r2, .L24 149 0004 9342 cmp r3, r2 150 0006 1FD0 beq .L7 151 .loc 1 7385 45 discriminator 1 view .LVU33 152 0008 224A ldr r2, .L24+4 153 000a 9342 cmp r3, r2 154 000c 1CD0 beq .L7 7386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \ 155 .loc 1 7386 44 view .LVU34 156 000e 224A ldr r2, .L24+8 157 0010 9342 cmp r3, r2 158 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) 159 .loc 1 7389 5 is_stmt 1 view .LVU35 160 .loc 1 7389 8 is_stmt 0 view .LVU36 161 0014 11F4004F tst r1, #32768 162 0018 11D1 bne .L18 7383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 163 .loc 1 7383 12 view .LVU37 164 001a 0023 movs r3, #0 165 .L8: 166 .LVL9: 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) 167 .loc 1 7395 5 is_stmt 1 view .LVU38 168 .loc 1 7395 8 is_stmt 0 view .LVU39 169 001c 11F0010F tst r1, #1 170 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; 171 .loc 1 7398 7 is_stmt 1 view .LVU40 172 .loc 1 7398 14 is_stmt 0 view .LVU41 173 0022 43F0F203 orr r3, r3, #242 174 .LVL10: 175 .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) 176 .loc 1 7401 5 is_stmt 1 view .LVU42 177 .loc 1 7401 8 is_stmt 0 view .LVU43 178 0026 11F0020F tst r1, #2 179 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; ARM GAS /tmp/cchwqEfL.s page 134 180 .loc 1 7404 7 is_stmt 1 view .LVU44 181 .loc 1 7404 14 is_stmt 0 view .LVU45 182 002c 43F0F403 orr r3, r3, #244 183 .LVL11: 184 .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) 185 .loc 1 7407 5 is_stmt 1 view .LVU46 186 .loc 1 7407 8 is_stmt 0 view .LVU47 187 0030 1029 cmp r1, #16 188 0032 06D0 beq .L20 189 .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) 190 .loc 1 7413 5 is_stmt 1 view .LVU48 191 .loc 1 7413 8 is_stmt 0 view .LVU49 192 0034 2029 cmp r1, #32 193 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; 194 .loc 1 7416 7 is_stmt 1 view .LVU50 195 .loc 1 7416 14 is_stmt 0 view .LVU51 196 0038 43F02003 orr r3, r3, #32 197 .LVL12: 198 .loc 1 7416 14 view .LVU52 199 003c 18E0 b .L12 200 .LVL13: 201 .L18: 7392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 202 .loc 1 7392 14 view .LVU53 203 003e B823 movs r3, #184 204 0040 ECE7 b .L8 205 .LVL14: 206 .L20: 7410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 207 .loc 1 7410 7 is_stmt 1 view .LVU54 7410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 208 .loc 1 7410 14 is_stmt 0 view .LVU55 209 0042 43F09003 orr r3, r3, #144 210 .LVL15: 7410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 211 .loc 1 7410 14 view .LVU56 212 0046 F5E7 b .L11 213 .LVL16: 214 .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) ARM GAS /tmp/cchwqEfL.s page 135 215 .loc 1 7422 5 is_stmt 1 view .LVU57 216 .loc 1 7422 8 is_stmt 0 view .LVU58 217 0048 11F4004F tst r1, #32768 218 004c 15D1 bne .L19 7383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 219 .loc 1 7383 12 view .LVU59 220 004e 0023 movs r3, #0 221 .L13: 222 .LVL17: 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) 223 .loc 1 7428 5 is_stmt 1 view .LVU60 224 .loc 1 7428 8 is_stmt 0 view .LVU61 225 0050 11F0010F tst r1, #1 226 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; 227 .loc 1 7431 7 is_stmt 1 view .LVU62 228 .loc 1 7431 14 is_stmt 0 view .LVU63 229 0056 43F0F203 orr r3, r3, #242 230 .LVL18: 231 .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) 232 .loc 1 7434 5 is_stmt 1 view .LVU64 233 .loc 1 7434 8 is_stmt 0 view .LVU65 234 005a 11F0020F tst r1, #2 235 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; 236 .loc 1 7437 7 is_stmt 1 view .LVU66 237 .loc 1 7437 14 is_stmt 0 view .LVU67 238 0060 43F0F403 orr r3, r3, #244 239 .LVL19: 240 .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) 241 .loc 1 7440 5 is_stmt 1 view .LVU68 242 .loc 1 7440 8 is_stmt 0 view .LVU69 243 0064 1029 cmp r1, #16 244 0066 0AD0 beq .L21 245 .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) 246 .loc 1 7446 5 is_stmt 1 view .LVU70 ARM GAS /tmp/cchwqEfL.s page 136 247 .loc 1 7446 8 is_stmt 0 view .LVU71 248 0068 2029 cmp r1, #32 249 006a 0BD0 beq .L22 250 .L17: 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) 251 .loc 1 7452 5 is_stmt 1 view .LVU72 252 .loc 1 7452 8 is_stmt 0 view .LVU73 253 006c 4029 cmp r1, #64 254 006e 0CD0 beq .L23 255 .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); 256 .loc 1 7462 3 is_stmt 1 view .LVU74 257 0070 0168 ldr r1, [r0] 258 .LVL20: 259 .loc 1 7462 3 is_stmt 0 view .LVU75 260 0072 0A68 ldr r2, [r1] 261 0074 1343 orrs r3, r3, r2 262 .LVL21: 263 .loc 1 7462 3 view .LVU76 264 0076 0B60 str r3, [r1] 7463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 265 .loc 1 7463 1 view .LVU77 266 0078 7047 bx lr 267 .LVL22: 268 .L19: 7425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 269 .loc 1 7425 14 view .LVU78 270 007a B823 movs r3, #184 271 007c E8E7 b .L13 272 .LVL23: 273 .L21: 7443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 274 .loc 1 7443 7 is_stmt 1 view .LVU79 7443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 275 .loc 1 7443 14 is_stmt 0 view .LVU80 276 007e 43F09003 orr r3, r3, #144 277 .LVL24: 7443:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 278 .loc 1 7443 14 view .LVU81 279 0082 F1E7 b .L16 280 .L22: 7449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 281 .loc 1 7449 7 is_stmt 1 view .LVU82 ARM GAS /tmp/cchwqEfL.s page 137 7449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 282 .loc 1 7449 14 is_stmt 0 view .LVU83 283 0084 43F06003 orr r3, r3, #96 284 .LVL25: 7449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 285 .loc 1 7449 14 view .LVU84 286 0088 F0E7 b .L17 287 .L23: 7455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 288 .loc 1 7455 7 is_stmt 1 view .LVU85 7455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 289 .loc 1 7455 14 is_stmt 0 view .LVU86 290 008a 43F04003 orr r3, r3, #64 291 .LVL26: 7455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 292 .loc 1 7455 14 view .LVU87 293 008e EFE7 b .L12 294 .L25: 295 .align 2 296 .L24: 297 0090 00000000 .word I2C_Master_ISR_DMA 298 0094 00000000 .word I2C_Slave_ISR_DMA 299 0098 00000000 .word I2C_Mem_ISR_DMA 300 .cfi_endproc 301 .LFE219: 303 .section .text.I2C_Disable_IRQ,"ax",%progbits 304 .align 1 305 .syntax unified 306 .thumb 307 .thumb_func 308 .fpu fpv5-d16 310 I2C_Disable_IRQ: 311 .LVL27: 312 .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 **** { 313 .loc 1 7473 1 is_stmt 1 view -0 314 .cfi_startproc 315 @ args = 0, pretend = 0, frame = 0 316 @ frame_needed = 0, uses_anonymous_args = 0 317 @ link register save eliminated. 7474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpisr = 0U; 318 .loc 1 7474 3 view .LVU89 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) 319 .loc 1 7476 3 view .LVU90 320 .loc 1 7476 6 is_stmt 0 view .LVU91 321 0000 11F0010F tst r1, #1 322 0004 09D0 beq .L33 ARM GAS /tmp/cchwqEfL.s page 138 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; 323 .loc 1 7479 5 is_stmt 1 view .LVU92 324 .LVL28: 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) 325 .loc 1 7481 5 view .LVU93 326 .loc 1 7481 24 is_stmt 0 view .LVU94 327 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 328 .loc 1 7481 8 view .LVU95 329 000a 03F02803 and r3, r3, #40 330 000e 282B cmp r3, #40 331 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; 332 .loc 1 7484 14 view .LVU96 333 0012 F223 movs r3, #242 334 0014 02E0 b .L27 335 .L36: 7479:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 336 .loc 1 7479 12 view .LVU97 337 0016 4223 movs r3, #66 338 0018 00E0 b .L27 339 .LVL29: 340 .L33: 7474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 341 .loc 1 7474 12 view .LVU98 342 001a 0023 movs r3, #0 343 .LVL30: 344 .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) 345 .loc 1 7488 3 is_stmt 1 view .LVU99 346 .loc 1 7488 6 is_stmt 0 view .LVU100 347 001c 11F0020F tst r1, #2 348 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; 349 .loc 1 7491 5 is_stmt 1 view .LVU101 350 .loc 1 7491 12 is_stmt 0 view .LVU102 351 0022 43F0440C orr ip, r3, #68 352 .LVL31: 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) 353 .loc 1 7493 5 is_stmt 1 view .LVU103 354 .loc 1 7493 24 is_stmt 0 view .LVU104 355 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 356 .loc 1 7493 8 view .LVU105 357 002a 02F02802 and r2, r2, #40 358 002e 282A cmp r2, #40 359 0030 10D0 beq .L35 7494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/cchwqEfL.s page 139 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; 360 .loc 1 7496 7 is_stmt 1 view .LVU106 361 .loc 1 7496 14 is_stmt 0 view .LVU107 362 0032 43F0F403 orr r3, r3, #244 363 .LVL32: 364 .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) 365 .loc 1 7500 3 is_stmt 1 view .LVU108 366 .loc 1 7500 6 is_stmt 0 view .LVU109 367 0036 11F4004F tst r1, #32768 368 003a 0DD1 bne .L37 369 .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) 370 .loc 1 7506 3 is_stmt 1 view .LVU110 371 .loc 1 7506 6 is_stmt 0 view .LVU111 372 003c 1029 cmp r1, #16 373 003e 0ED0 beq .L38 374 .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) 375 .loc 1 7512 3 is_stmt 1 view .LVU112 376 .loc 1 7512 6 is_stmt 0 view .LVU113 377 0040 2029 cmp r1, #32 378 0042 0FD0 beq .L39 379 .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) 380 .loc 1 7518 3 is_stmt 1 view .LVU114 381 .loc 1 7518 6 is_stmt 0 view .LVU115 382 0044 4029 cmp r1, #64 383 0046 10D0 beq .L40 384 .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 */ ARM GAS /tmp/cchwqEfL.s page 140 7527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr); 385 .loc 1 7527 3 is_stmt 1 view .LVU116 386 0048 0168 ldr r1, [r0] 387 .LVL33: 388 .loc 1 7527 3 is_stmt 0 view .LVU117 389 004a 0A68 ldr r2, [r1] 390 004c 22EA0303 bic r3, r2, r3 391 .LVL34: 392 .loc 1 7527 3 view .LVU118 393 0050 0B60 str r3, [r1] 7528:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 394 .loc 1 7528 1 view .LVU119 395 0052 7047 bx lr 396 .LVL35: 397 .L35: 7491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 398 .loc 1 7491 12 view .LVU120 399 0054 6346 mov r3, ip 400 0056 EEE7 b .L28 401 .LVL36: 402 .L37: 7503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 403 .loc 1 7503 5 is_stmt 1 view .LVU121 7503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 404 .loc 1 7503 12 is_stmt 0 view .LVU122 405 0058 43F0B803 orr r3, r3, #184 406 .LVL37: 7503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 407 .loc 1 7503 12 view .LVU123 408 005c EEE7 b .L29 409 .L38: 7509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 410 .loc 1 7509 5 is_stmt 1 view .LVU124 7509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 411 .loc 1 7509 12 is_stmt 0 view .LVU125 412 005e 43F09003 orr r3, r3, #144 413 .LVL38: 7509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 414 .loc 1 7509 12 view .LVU126 415 0062 EDE7 b .L30 416 .L39: 7515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 417 .loc 1 7515 5 is_stmt 1 view .LVU127 7515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 418 .loc 1 7515 12 is_stmt 0 view .LVU128 419 0064 43F02003 orr r3, r3, #32 420 .LVL39: 7515:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 421 .loc 1 7515 12 view .LVU129 422 0068 ECE7 b .L31 423 .L40: 7521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 424 .loc 1 7521 5 is_stmt 1 view .LVU130 7521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 425 .loc 1 7521 12 is_stmt 0 view .LVU131 426 006a 43F04003 orr r3, r3, #64 427 .LVL40: ARM GAS /tmp/cchwqEfL.s page 141 7521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 428 .loc 1 7521 12 view .LVU132 429 006e EBE7 b .L32 430 .cfi_endproc 431 .LFE220: 433 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits 434 .align 1 435 .syntax unified 436 .thumb 437 .thumb_func 438 .fpu fpv5-d16 440 I2C_ConvertOtherXferOptions: 441 .LVL41: 442 .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 **** { 443 .loc 1 7536 1 is_stmt 1 view -0 444 .cfi_startproc 445 @ args = 0, pretend = 0, frame = 0 446 @ frame_needed = 0, uses_anonymous_args = 0 447 @ 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) 448 .loc 1 7540 3 view .LVU134 449 .loc 1 7540 11 is_stmt 0 view .LVU135 450 0000 C36A ldr r3, [r0, #44] 451 .loc 1 7540 6 view .LVU136 452 0002 AA2B cmp r3, #170 453 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) 454 .loc 1 7548 8 is_stmt 1 view .LVU137 455 .loc 1 7548 16 is_stmt 0 view .LVU138 456 0006 C36A ldr r3, [r0, #44] 457 .loc 1 7548 11 view .LVU139 458 0008 B3F52A4F cmp r3, #43520 459 000c 03D0 beq .L45 460 .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 **** { ARM GAS /tmp/cchwqEfL.s page 142 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 **** } 461 .loc 1 7556 1 view .LVU140 462 000e 7047 bx lr 463 .L44: 7542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 464 .loc 1 7542 5 is_stmt 1 view .LVU141 7542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 465 .loc 1 7542 23 is_stmt 0 view .LVU142 466 0010 0023 movs r3, #0 467 0012 C362 str r3, [r0, #44] 468 0014 7047 bx lr 469 .L45: 7550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 470 .loc 1 7550 5 is_stmt 1 view .LVU143 7550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 471 .loc 1 7550 23 is_stmt 0 view .LVU144 472 0016 4FF00073 mov r3, #33554432 473 001a C362 str r3, [r0, #44] 7555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 474 .loc 1 7555 3 is_stmt 1 view .LVU145 475 .loc 1 7556 1 is_stmt 0 view .LVU146 476 001c F7E7 b .L41 477 .cfi_endproc 478 .LFE221: 480 .section .text.I2C_IsErrorOccurred,"ax",%progbits 481 .align 1 482 .syntax unified 483 .thumb 484 .thumb_func 485 .fpu fpv5-d16 487 I2C_IsErrorOccurred: 488 .LVL42: 489 .LFB217: 7214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 490 .loc 1 7214 1 is_stmt 1 view -0 491 .cfi_startproc 492 @ args = 0, pretend = 0, frame = 0 493 @ frame_needed = 0, uses_anonymous_args = 0 7214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 494 .loc 1 7214 1 is_stmt 0 view .LVU148 495 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 496 .LCFI2: 497 .cfi_def_cfa_offset 24 498 .cfi_offset 4, -24 499 .cfi_offset 5, -20 500 .cfi_offset 6, -16 501 .cfi_offset 7, -12 502 .cfi_offset 8, -8 503 .cfi_offset 14, -4 504 0004 0446 mov r4, r0 7215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 505 .loc 1 7215 3 is_stmt 1 view .LVU149 506 .LVL43: 7216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t error_code = 0; 507 .loc 1 7216 3 view .LVU150 ARM GAS /tmp/cchwqEfL.s page 143 7216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t error_code = 0; 508 .loc 1 7216 27 is_stmt 0 view .LVU151 509 0006 0368 ldr r3, [r0] 7216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t error_code = 0; 510 .loc 1 7216 12 view .LVU152 511 0008 9E69 ldr r6, [r3, #24] 512 .LVL44: 7217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 513 .loc 1 7217 3 is_stmt 1 view .LVU153 7218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmp1; 514 .loc 1 7218 3 view .LVU154 7219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 515 .loc 1 7219 3 view .LVU155 7220:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 516 .loc 1 7220 3 view .LVU156 7222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 517 .loc 1 7222 3 view .LVU157 7222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 518 .loc 1 7222 6 is_stmt 0 view .LVU158 519 000a 16F01006 ands r6, r6, #16 520 .LVL45: 7222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 521 .loc 1 7222 6 view .LVU159 522 000e 7ED0 beq .L63 523 0010 0D46 mov r5, r1 524 0012 9046 mov r8, r2 7225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 525 .loc 1 7225 5 is_stmt 1 view .LVU160 526 0014 1022 movs r2, #16 527 .LVL46: 7225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 528 .loc 1 7225 5 is_stmt 0 view .LVU161 529 0016 DA61 str r2, [r3, #28] 7229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 530 .loc 1 7229 5 is_stmt 1 view .LVU162 7217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 531 .loc 1 7217 12 is_stmt 0 view .LVU163 532 0018 0026 movs r6, #0 7215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 533 .loc 1 7215 21 view .LVU164 534 001a 3746 mov r7, r6 535 .LVL47: 536 .L49: 7229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 537 .loc 1 7229 11 is_stmt 1 view .LVU165 7229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 538 .loc 1 7229 13 is_stmt 0 view .LVU166 539 001c 2368 ldr r3, [r4] 540 001e 9869 ldr r0, [r3, #24] 7229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 541 .loc 1 7229 11 view .LVU167 542 0020 10F0200F tst r0, #32 543 0024 32D1 bne .L55 7229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 544 .loc 1 7229 64 discriminator 1 view .LVU168 545 0026 8FBB cbnz r7, .L55 7232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/cchwqEfL.s page 144 546 .loc 1 7232 7 is_stmt 1 view .LVU169 7232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 547 .loc 1 7232 10 is_stmt 0 view .LVU170 548 0028 B5F1FF3F cmp r5, #-1 549 002c F6D0 beq .L49 7234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 550 .loc 1 7234 9 is_stmt 1 view .LVU171 7234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 551 .loc 1 7234 15 is_stmt 0 view .LVU172 552 002e FFF7FEFF bl HAL_GetTick 553 .LVL48: 7234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 554 .loc 1 7234 29 view .LVU173 555 0032 A0EB0800 sub r0, r0, r8 7234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 556 .loc 1 7234 12 view .LVU174 557 0036 A842 cmp r0, r5 558 0038 01D8 bhi .L50 7234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 559 .loc 1 7234 53 discriminator 1 view .LVU175 560 003a 002D cmp r5, #0 561 003c EED1 bne .L49 562 .L50: 7236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 563 .loc 1 7236 11 is_stmt 1 view .LVU176 7236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 564 .loc 1 7236 33 is_stmt 0 view .LVU177 565 003e 2168 ldr r1, [r4] 7236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 566 .loc 1 7236 43 view .LVU178 567 0040 4A68 ldr r2, [r1, #4] 7236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 568 .loc 1 7236 16 view .LVU179 569 0042 02F48042 and r2, r2, #16384 570 .LVL49: 7237:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 571 .loc 1 7237 11 is_stmt 1 view .LVU180 7237:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 572 .loc 1 7237 16 is_stmt 0 view .LVU181 573 0046 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 574 004a DBB2 uxtb r3, r3 575 .LVL50: 7240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 576 .loc 1 7240 11 is_stmt 1 view .LVU182 7240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 577 .loc 1 7240 16 is_stmt 0 view .LVU183 578 004c 8869 ldr r0, [r1, #24] 7240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 579 .loc 1 7240 14 view .LVU184 580 004e 10F4004F tst r0, #32768 581 0052 04D0 beq .L53 7242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 582 .loc 1 7242 21 view .LVU185 583 0054 203B subs r3, r3, #32 584 .LVL51: 7242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 585 .loc 1 7242 21 view .LVU186 ARM GAS /tmp/cchwqEfL.s page 145 586 0056 18BF it ne 587 0058 0123 movne r3, #1 588 .LVL52: 7241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 589 .loc 1 7241 38 view .LVU187 590 005a 02B9 cbnz r2, .L53 591 005c 73B9 cbnz r3, .L65 592 .LVL53: 593 .L53: 7251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 594 .loc 1 7251 17 is_stmt 1 view .LVU188 7251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 595 .loc 1 7251 18 is_stmt 0 view .LVU189 596 005e 2368 ldr r3, [r4] 597 0060 9B69 ldr r3, [r3, #24] 7251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 598 .loc 1 7251 17 view .LVU190 599 0062 13F0200F tst r3, #32 600 0066 D9D1 bne .L49 7254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 601 .loc 1 7254 13 is_stmt 1 view .LVU191 7254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 602 .loc 1 7254 18 is_stmt 0 view .LVU192 603 0068 FFF7FEFF bl HAL_GetTick 604 .LVL54: 7254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 605 .loc 1 7254 32 view .LVU193 606 006c A0EB0800 sub r0, r0, r8 7254:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 607 .loc 1 7254 16 view .LVU194 608 0070 1928 cmp r0, #25 609 0072 F4D9 bls .L53 7256:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 610 .loc 1 7256 15 is_stmt 1 view .LVU195 7256:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 611 .loc 1 7256 26 is_stmt 0 view .LVU196 612 0074 46F02006 orr r6, r6, #32 613 .LVL55: 7258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 614 .loc 1 7258 15 is_stmt 1 view .LVU197 7260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 615 .loc 1 7260 15 view .LVU198 7258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 616 .loc 1 7258 22 is_stmt 0 view .LVU199 617 0078 0127 movs r7, #1 7260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 618 .loc 1 7260 15 view .LVU200 619 007a CFE7 b .L49 620 .LVL56: 621 .L65: 7245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 622 .loc 1 7245 13 is_stmt 1 view .LVU201 7245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 623 .loc 1 7245 33 is_stmt 0 view .LVU202 624 007c 4B68 ldr r3, [r1, #4] 625 007e 43F48043 orr r3, r3, #16384 626 0082 4B60 str r3, [r1, #4] ARM GAS /tmp/cchwqEfL.s page 146 7248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 627 .loc 1 7248 13 is_stmt 1 view .LVU203 7248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 628 .loc 1 7248 25 is_stmt 0 view .LVU204 629 0084 FFF7FEFF bl HAL_GetTick 630 .LVL57: 7248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 631 .loc 1 7248 25 view .LVU205 632 0088 8046 mov r8, r0 633 .LVL58: 7248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 634 .loc 1 7248 25 view .LVU206 635 008a E8E7 b .L53 636 .LVL59: 637 .L55: 7268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 638 .loc 1 7268 5 is_stmt 1 view .LVU207 7268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 639 .loc 1 7268 8 is_stmt 0 view .LVU208 640 008c 0FB9 cbnz r7, .L57 7271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 641 .loc 1 7271 7 is_stmt 1 view .LVU209 642 008e 2022 movs r2, #32 643 0090 DA61 str r2, [r3, #28] 644 .L57: 7274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 645 .loc 1 7274 5 view .LVU210 7274:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 646 .loc 1 7274 16 is_stmt 0 view .LVU211 647 0092 46F00406 orr r6, r6, #4 648 .LVL60: 7276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 649 .loc 1 7276 5 is_stmt 1 view .LVU212 7276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 650 .loc 1 7276 12 is_stmt 0 view .LVU213 651 0096 0125 movs r5, #1 652 .LVL61: 653 .L47: 7280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 654 .loc 1 7280 3 is_stmt 1 view .LVU214 7280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 655 .loc 1 7280 16 is_stmt 0 view .LVU215 656 0098 2268 ldr r2, [r4] 7280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 657 .loc 1 7280 10 view .LVU216 658 009a 9369 ldr r3, [r2, #24] 659 .LVL62: 7284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 660 .loc 1 7284 3 is_stmt 1 view .LVU217 7284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 661 .loc 1 7284 6 is_stmt 0 view .LVU218 662 009c 13F4807F tst r3, #256 663 00a0 05D0 beq .L58 7286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 664 .loc 1 7286 5 is_stmt 1 view .LVU219 7286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 665 .loc 1 7286 16 is_stmt 0 view .LVU220 ARM GAS /tmp/cchwqEfL.s page 147 666 00a2 46F00106 orr r6, r6, #1 667 .LVL63: 7289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 668 .loc 1 7289 5 is_stmt 1 view .LVU221 669 00a6 4FF48071 mov r1, #256 670 00aa D161 str r1, [r2, #28] 7291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 671 .loc 1 7291 5 view .LVU222 672 .LVL64: 7291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 673 .loc 1 7291 12 is_stmt 0 view .LVU223 674 00ac 0125 movs r5, #1 675 .LVL65: 676 .L58: 7295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 677 .loc 1 7295 3 is_stmt 1 view .LVU224 7295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 678 .loc 1 7295 6 is_stmt 0 view .LVU225 679 00ae 13F4806F tst r3, #1024 680 00b2 06D0 beq .L59 7297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 681 .loc 1 7297 5 is_stmt 1 view .LVU226 7297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 682 .loc 1 7297 16 is_stmt 0 view .LVU227 683 00b4 46F00806 orr r6, r6, #8 684 .LVL66: 7300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 685 .loc 1 7300 5 is_stmt 1 view .LVU228 686 00b8 2268 ldr r2, [r4] 687 00ba 4FF48061 mov r1, #1024 688 00be D161 str r1, [r2, #28] 7302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 689 .loc 1 7302 5 view .LVU229 690 .LVL67: 7302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 691 .loc 1 7302 12 is_stmt 0 view .LVU230 692 00c0 0125 movs r5, #1 693 .LVL68: 694 .L59: 7306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 695 .loc 1 7306 3 is_stmt 1 view .LVU231 7306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 696 .loc 1 7306 6 is_stmt 0 view .LVU232 697 00c2 13F4007F tst r3, #512 698 00c6 24D0 beq .L60 7308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 699 .loc 1 7308 5 is_stmt 1 view .LVU233 7308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 700 .loc 1 7308 16 is_stmt 0 view .LVU234 701 00c8 46F00206 orr r6, r6, #2 702 .LVL69: 7311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 703 .loc 1 7311 5 is_stmt 1 view .LVU235 704 00cc 2368 ldr r3, [r4] 705 .LVL70: 7311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 706 .loc 1 7311 5 is_stmt 0 view .LVU236 ARM GAS /tmp/cchwqEfL.s page 148 707 00ce 4FF40072 mov r2, #512 708 00d2 DA61 str r2, [r3, #28] 7313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 709 .loc 1 7313 5 is_stmt 1 view .LVU237 710 .LVL71: 7316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 711 .loc 1 7316 3 view .LVU238 7313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 712 .loc 1 7313 12 is_stmt 0 view .LVU239 713 00d4 0125 movs r5, #1 714 .LVL72: 715 .L61: 7319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 716 .loc 1 7319 5 is_stmt 1 view .LVU240 717 00d6 2046 mov r0, r4 718 00d8 FFF7FEFF bl I2C_Flush_TXDR 719 .LVL73: 7322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 720 .loc 1 7322 5 view .LVU241 721 00dc 2268 ldr r2, [r4] 722 00de 5368 ldr r3, [r2, #4] 723 00e0 23F0FF73 bic r3, r3, #33423360 724 00e4 23F48B33 bic r3, r3, #71168 725 00e8 23F4FF73 bic r3, r3, #510 726 00ec 23F00103 bic r3, r3, #1 727 00f0 5360 str r3, [r2, #4] 7324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 728 .loc 1 7324 5 view .LVU242 7324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 729 .loc 1 7324 21 is_stmt 0 view .LVU243 730 00f2 636C ldr r3, [r4, #68] 731 00f4 1E43 orrs r6, r6, r3 732 .LVL74: 7324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 733 .loc 1 7324 21 view .LVU244 734 00f6 6664 str r6, [r4, #68] 7325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 735 .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; 736 .loc 1 7325 17 is_stmt 0 view .LVU246 737 00f8 2023 movs r3, #32 738 00fa 84F84130 strb r3, [r4, #65] 7326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 739 .loc 1 7326 5 is_stmt 1 view .LVU247 7326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 740 .loc 1 7326 16 is_stmt 0 view .LVU248 741 00fe 0023 movs r3, #0 742 0100 84F84230 strb r3, [r4, #66] 7329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 743 .loc 1 7329 5 is_stmt 1 view .LVU249 7329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 744 .loc 1 7329 5 view .LVU250 745 0104 84F84030 strb r3, [r4, #64] 746 .L62: 7329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 747 .loc 1 7329 5 discriminator 1 view .LVU251 7332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/cchwqEfL.s page 149 748 .loc 1 7332 3 discriminator 1 view .LVU252 7333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 749 .loc 1 7333 1 is_stmt 0 discriminator 1 view .LVU253 750 0108 2846 mov r0, r5 751 010a BDE8F081 pop {r4, r5, r6, r7, r8, pc} 752 .LVL75: 753 .L63: 7215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 754 .loc 1 7215 21 view .LVU254 755 010e 0025 movs r5, #0 756 0110 C2E7 b .L47 757 .LVL76: 758 .L60: 7316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 759 .loc 1 7316 3 is_stmt 1 view .LVU255 7316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 760 .loc 1 7316 6 is_stmt 0 view .LVU256 761 0112 002D cmp r5, #0 762 0114 F8D0 beq .L62 763 0116 DEE7 b .L61 764 .cfi_endproc 765 .LFE217: 767 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits 768 .align 1 769 .syntax unified 770 .thumb 771 .thumb_func 772 .fpu fpv5-d16 774 I2C_WaitOnTXISFlagUntilTimeout: 775 .LVL77: 776 .LFB214: 7059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 777 .loc 1 7059 1 is_stmt 1 view -0 778 .cfi_startproc 779 @ args = 0, pretend = 0, frame = 0 780 @ 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) 781 .loc 1 7059 1 is_stmt 0 view .LVU258 782 0000 70B5 push {r4, r5, r6, lr} 783 .LCFI3: 784 .cfi_def_cfa_offset 16 785 .cfi_offset 4, -16 786 .cfi_offset 5, -12 787 .cfi_offset 6, -8 788 .cfi_offset 14, -4 789 0002 0446 mov r4, r0 790 0004 0D46 mov r5, r1 791 0006 1646 mov r6, r2 7060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 792 .loc 1 7060 3 is_stmt 1 view .LVU259 793 .LVL78: 794 .L69: 7060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 795 .loc 1 7060 9 view .LVU260 7060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 796 .loc 1 7060 10 is_stmt 0 view .LVU261 797 0008 2368 ldr r3, [r4] ARM GAS /tmp/cchwqEfL.s page 150 798 000a 9B69 ldr r3, [r3, #24] 7060:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 799 .loc 1 7060 9 view .LVU262 800 000c 13F0020F tst r3, #2 801 0010 22D1 bne .L74 7063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 802 .loc 1 7063 5 is_stmt 1 view .LVU263 7063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 803 .loc 1 7063 9 is_stmt 0 view .LVU264 804 0012 3246 mov r2, r6 805 0014 2946 mov r1, r5 806 0016 2046 mov r0, r4 807 0018 FFF7FEFF bl I2C_IsErrorOccurred 808 .LVL79: 7063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 809 .loc 1 7063 8 view .LVU265 810 001c F0B9 cbnz r0, .L72 7069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 811 .loc 1 7069 5 is_stmt 1 view .LVU266 7069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 812 .loc 1 7069 8 is_stmt 0 view .LVU267 813 001e B5F1FF3F cmp r5, #-1 814 0022 F1D0 beq .L69 7071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 815 .loc 1 7071 7 is_stmt 1 view .LVU268 7071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 816 .loc 1 7071 13 is_stmt 0 view .LVU269 817 0024 FFF7FEFF bl HAL_GetTick 818 .LVL80: 7071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 819 .loc 1 7071 27 view .LVU270 820 0028 801B subs r0, r0, r6 7071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 821 .loc 1 7071 10 view .LVU271 822 002a A842 cmp r0, r5 823 002c 01D8 bhi .L70 7071:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 824 .loc 1 7071 51 discriminator 1 view .LVU272 825 002e 002D cmp r5, #0 826 0030 EAD1 bne .L69 827 .L70: 7073:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 828 .loc 1 7073 9 is_stmt 1 view .LVU273 7073:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 829 .loc 1 7073 14 is_stmt 0 view .LVU274 830 0032 2368 ldr r3, [r4] 831 0034 9B69 ldr r3, [r3, #24] 7073:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 832 .loc 1 7073 12 view .LVU275 833 0036 13F0020F tst r3, #2 834 003a E5D1 bne .L69 7075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 835 .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; 836 .loc 1 7075 27 is_stmt 0 view .LVU277 837 003c 636C ldr r3, [r4, #68] 838 003e 43F02003 orr r3, r3, #32 ARM GAS /tmp/cchwqEfL.s page 151 839 0042 6364 str r3, [r4, #68] 7076:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 840 .loc 1 7076 11 is_stmt 1 view .LVU278 7076:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 841 .loc 1 7076 23 is_stmt 0 view .LVU279 842 0044 2023 movs r3, #32 843 0046 84F84130 strb r3, [r4, #65] 7077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 844 .loc 1 7077 11 is_stmt 1 view .LVU280 7077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 845 .loc 1 7077 22 is_stmt 0 view .LVU281 846 004a 0023 movs r3, #0 847 004c 84F84230 strb r3, [r4, #66] 7080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 848 .loc 1 7080 11 is_stmt 1 view .LVU282 7080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 849 .loc 1 7080 11 view .LVU283 850 0050 84F84030 strb r3, [r4, #64] 7080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 851 .loc 1 7080 11 view .LVU284 7082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 852 .loc 1 7082 11 view .LVU285 7082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 853 .loc 1 7082 18 is_stmt 0 view .LVU286 854 0054 0120 movs r0, #1 855 0056 00E0 b .L68 856 .L74: 7087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 857 .loc 1 7087 10 view .LVU287 858 0058 0020 movs r0, #0 859 .L68: 7088:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 860 .loc 1 7088 1 view .LVU288 861 005a 70BD pop {r4, r5, r6, pc} 862 .LVL81: 863 .L72: 7065:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 864 .loc 1 7065 14 view .LVU289 865 005c 0120 movs r0, #1 866 005e FCE7 b .L68 867 .cfi_endproc 868 .LFE214: 870 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits 871 .align 1 872 .syntax unified 873 .thumb 874 .thumb_func 875 .fpu fpv5-d16 877 I2C_WaitOnFlagUntilTimeout: 878 .LVL82: 879 .LFB213: 7019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 880 .loc 1 7019 1 is_stmt 1 view -0 881 .cfi_startproc 882 @ args = 4, pretend = 0, frame = 0 883 @ 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) ARM GAS /tmp/cchwqEfL.s page 152 884 .loc 1 7019 1 is_stmt 0 view .LVU291 885 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 886 .LCFI4: 887 .cfi_def_cfa_offset 24 888 .cfi_offset 4, -24 889 .cfi_offset 5, -20 890 .cfi_offset 6, -16 891 .cfi_offset 7, -12 892 .cfi_offset 8, -8 893 .cfi_offset 14, -4 894 0004 0446 mov r4, r0 895 0006 0F46 mov r7, r1 896 0008 1646 mov r6, r2 897 000a 1D46 mov r5, r3 898 000c DDF81880 ldr r8, [sp, #24] 7020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 899 .loc 1 7020 3 is_stmt 1 view .LVU292 900 .LVL83: 901 .L78: 7020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 902 .loc 1 7020 9 view .LVU293 7020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 903 .loc 1 7020 10 is_stmt 0 view .LVU294 904 0010 2368 ldr r3, [r4] 905 0012 9B69 ldr r3, [r3, #24] 906 0014 37EA0303 bics r3, r7, r3 907 0018 0CBF ite eq 908 001a 0123 moveq r3, #1 909 001c 0023 movne r3, #0 7020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 910 .loc 1 7020 9 view .LVU295 911 001e B342 cmp r3, r6 912 0020 27D1 bne .L83 7023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 913 .loc 1 7023 5 is_stmt 1 view .LVU296 7023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 914 .loc 1 7023 9 is_stmt 0 view .LVU297 915 0022 4246 mov r2, r8 916 0024 2946 mov r1, r5 917 0026 2046 mov r0, r4 918 0028 FFF7FEFF bl I2C_IsErrorOccurred 919 .LVL84: 7023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 920 .loc 1 7023 8 view .LVU298 921 002c 20BB cbnz r0, .L81 7029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 922 .loc 1 7029 5 is_stmt 1 view .LVU299 7029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 923 .loc 1 7029 8 is_stmt 0 view .LVU300 924 002e B5F1FF3F cmp r5, #-1 925 0032 EDD0 beq .L78 7031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 926 .loc 1 7031 7 is_stmt 1 view .LVU301 7031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 927 .loc 1 7031 13 is_stmt 0 view .LVU302 928 0034 FFF7FEFF bl HAL_GetTick 929 .LVL85: ARM GAS /tmp/cchwqEfL.s page 153 7031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 930 .loc 1 7031 27 view .LVU303 931 0038 A0EB0800 sub r0, r0, r8 7031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 932 .loc 1 7031 10 view .LVU304 933 003c A842 cmp r0, r5 934 003e 01D8 bhi .L79 7031:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 935 .loc 1 7031 51 discriminator 1 view .LVU305 936 0040 002D cmp r5, #0 937 0042 E5D1 bne .L78 938 .L79: 7033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 939 .loc 1 7033 9 is_stmt 1 view .LVU306 7033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 940 .loc 1 7033 14 is_stmt 0 view .LVU307 941 0044 2368 ldr r3, [r4] 942 0046 9B69 ldr r3, [r3, #24] 943 0048 37EA0303 bics r3, r7, r3 944 004c 0CBF ite eq 945 004e 0123 moveq r3, #1 946 0050 0023 movne r3, #0 7033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 947 .loc 1 7033 12 view .LVU308 948 0052 B342 cmp r3, r6 949 0054 DCD1 bne .L78 7035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 950 .loc 1 7035 11 is_stmt 1 view .LVU309 7035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 951 .loc 1 7035 27 is_stmt 0 view .LVU310 952 0056 636C ldr r3, [r4, #68] 953 0058 43F02003 orr r3, r3, #32 954 005c 6364 str r3, [r4, #68] 7036:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 955 .loc 1 7036 11 is_stmt 1 view .LVU311 7036:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 956 .loc 1 7036 23 is_stmt 0 view .LVU312 957 005e 2023 movs r3, #32 958 0060 84F84130 strb r3, [r4, #65] 7037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 959 .loc 1 7037 11 is_stmt 1 view .LVU313 7037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 960 .loc 1 7037 22 is_stmt 0 view .LVU314 961 0064 0023 movs r3, #0 962 0066 84F84230 strb r3, [r4, #66] 7040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 963 .loc 1 7040 11 is_stmt 1 view .LVU315 7040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 964 .loc 1 7040 11 view .LVU316 965 006a 84F84030 strb r3, [r4, #64] 7040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 966 .loc 1 7040 11 view .LVU317 7041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 967 .loc 1 7041 11 view .LVU318 7041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 968 .loc 1 7041 18 is_stmt 0 view .LVU319 969 006e 0120 movs r0, #1 ARM GAS /tmp/cchwqEfL.s page 154 970 0070 00E0 b .L77 971 .L83: 7046:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 972 .loc 1 7046 10 view .LVU320 973 0072 0020 movs r0, #0 974 .L77: 7047:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 975 .loc 1 7047 1 view .LVU321 976 0074 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 977 .LVL86: 978 .L81: 7025:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 979 .loc 1 7025 14 view .LVU322 980 0078 0120 movs r0, #1 981 007a FBE7 b .L77 982 .cfi_endproc 983 .LFE213: 985 .section .text.I2C_RequestMemoryWrite,"ax",%progbits 986 .align 1 987 .syntax unified 988 .thumb 989 .thumb_func 990 .fpu fpv5-d16 992 I2C_RequestMemoryWrite: 993 .LVL87: 994 .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 995 .loc 1 5856 1 is_stmt 1 view -0 996 .cfi_startproc 997 @ args = 8, pretend = 0, frame = 0 998 @ 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 999 .loc 1 5856 1 is_stmt 0 view .LVU324 1000 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1001 .LCFI5: 1002 .cfi_def_cfa_offset 24 1003 .cfi_offset 4, -24 1004 .cfi_offset 5, -20 1005 .cfi_offset 6, -16 1006 .cfi_offset 7, -12 1007 .cfi_offset 8, -8 1008 .cfi_offset 14, -4 1009 0004 82B0 sub sp, sp, #8 1010 .LCFI6: 1011 .cfi_def_cfa_offset 32 1012 0006 0446 mov r4, r0 1013 0008 9046 mov r8, r2 1014 000a 1D46 mov r5, r3 1015 000c 089E ldr r6, [sp, #32] 1016 000e 099F ldr r7, [sp, #36] 5857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1017 .loc 1 5857 3 is_stmt 1 view .LVU325 1018 0010 194B ldr r3, .L93 1019 .LVL88: 5857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1020 .loc 1 5857 3 is_stmt 0 view .LVU326 1021 0012 0093 str r3, [sp] ARM GAS /tmp/cchwqEfL.s page 155 1022 0014 4FF08073 mov r3, #16777216 1023 0018 EAB2 uxtb r2, r5 1024 .LVL89: 5857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1025 .loc 1 5857 3 view .LVU327 1026 001a FFF7FEFF bl I2C_TransferConfig 1027 .LVL90: 5860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1028 .loc 1 5860 3 is_stmt 1 view .LVU328 5860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1029 .loc 1 5860 7 is_stmt 0 view .LVU329 1030 001e 3A46 mov r2, r7 1031 0020 3146 mov r1, r6 1032 0022 2046 mov r0, r4 1033 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1034 .LVL91: 5860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1035 .loc 1 5860 6 view .LVU330 1036 0028 F8B9 cbnz r0, .L88 5866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1037 .loc 1 5866 3 is_stmt 1 view .LVU331 5866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1038 .loc 1 5866 6 is_stmt 0 view .LVU332 1039 002a 012D cmp r5, #1 1040 002c 0ED1 bne .L86 5869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1041 .loc 1 5869 5 is_stmt 1 view .LVU333 5869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1042 .loc 1 5869 9 is_stmt 0 view .LVU334 1043 002e 2368 ldr r3, [r4] 5869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1044 .loc 1 5869 28 view .LVU335 1045 0030 5FFA88F2 uxtb r2, r8 5869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1046 .loc 1 5869 26 view .LVU336 1047 0034 9A62 str r2, [r3, #40] 1048 .L87: 5888:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1049 .loc 1 5888 3 is_stmt 1 view .LVU337 5888:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1050 .loc 1 5888 7 is_stmt 0 view .LVU338 1051 0036 0097 str r7, [sp] 1052 0038 3346 mov r3, r6 1053 003a 0022 movs r2, #0 1054 003c 8021 movs r1, #128 1055 003e 2046 mov r0, r4 1056 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1057 .LVL92: 5888:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1058 .loc 1 5888 6 view .LVU339 1059 0044 A8B9 cbnz r0, .L92 1060 .L85: 5894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1061 .loc 1 5894 1 view .LVU340 1062 0046 02B0 add sp, sp, #8 1063 .LCFI7: 1064 .cfi_remember_state ARM GAS /tmp/cchwqEfL.s page 156 1065 .cfi_def_cfa_offset 24 1066 @ sp needed 1067 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1068 .LVL93: 1069 .L86: 1070 .LCFI8: 1071 .cfi_restore_state 5875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1072 .loc 1 5875 5 is_stmt 1 view .LVU341 5875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1073 .loc 1 5875 9 is_stmt 0 view .LVU342 1074 004c 2368 ldr r3, [r4] 5875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1075 .loc 1 5875 28 view .LVU343 1076 004e 4FEA1822 lsr r2, r8, #8 5875:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1077 .loc 1 5875 26 view .LVU344 1078 0052 9A62 str r2, [r3, #40] 5878:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1079 .loc 1 5878 5 is_stmt 1 view .LVU345 5878:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1080 .loc 1 5878 9 is_stmt 0 view .LVU346 1081 0054 3A46 mov r2, r7 1082 0056 3146 mov r1, r6 1083 0058 2046 mov r0, r4 1084 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1085 .LVL94: 5878:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1086 .loc 1 5878 8 view .LVU347 1087 005e 30B9 cbnz r0, .L89 5884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1088 .loc 1 5884 5 is_stmt 1 view .LVU348 5884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1089 .loc 1 5884 9 is_stmt 0 view .LVU349 1090 0060 2368 ldr r3, [r4] 5884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1091 .loc 1 5884 28 view .LVU350 1092 0062 5FFA88F2 uxtb r2, r8 5884:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1093 .loc 1 5884 26 view .LVU351 1094 0066 9A62 str r2, [r3, #40] 1095 0068 E5E7 b .L87 1096 .L88: 5862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1097 .loc 1 5862 12 view .LVU352 1098 006a 0120 movs r0, #1 1099 006c EBE7 b .L85 1100 .L89: 5880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1101 .loc 1 5880 14 view .LVU353 1102 006e 0120 movs r0, #1 1103 0070 E9E7 b .L85 1104 .L92: 5890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1105 .loc 1 5890 12 view .LVU354 1106 0072 0120 movs r0, #1 1107 0074 E7E7 b .L85 ARM GAS /tmp/cchwqEfL.s page 157 1108 .L94: 1109 0076 00BF .align 2 1110 .L93: 1111 0078 00200080 .word -2147475456 1112 .cfi_endproc 1113 .LFE196: 1115 .section .text.I2C_RequestMemoryRead,"ax",%progbits 1116 .align 1 1117 .syntax unified 1118 .thumb 1119 .thumb_func 1120 .fpu fpv5-d16 1122 I2C_RequestMemoryRead: 1123 .LVL95: 1124 .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 1125 .loc 1 5911 1 is_stmt 1 view -0 1126 .cfi_startproc 1127 @ args = 8, pretend = 0, frame = 0 1128 @ 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 1129 .loc 1 5911 1 is_stmt 0 view .LVU356 1130 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1131 .LCFI9: 1132 .cfi_def_cfa_offset 24 1133 .cfi_offset 4, -24 1134 .cfi_offset 5, -20 1135 .cfi_offset 6, -16 1136 .cfi_offset 7, -12 1137 .cfi_offset 8, -8 1138 .cfi_offset 14, -4 1139 0004 82B0 sub sp, sp, #8 1140 .LCFI10: 1141 .cfi_def_cfa_offset 32 1142 0006 0446 mov r4, r0 1143 0008 9046 mov r8, r2 1144 000a 1D46 mov r5, r3 1145 000c 089E ldr r6, [sp, #32] 1146 000e 099F ldr r7, [sp, #36] 5912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1147 .loc 1 5912 3 is_stmt 1 view .LVU357 1148 0010 184B ldr r3, .L104 1149 .LVL96: 5912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1150 .loc 1 5912 3 is_stmt 0 view .LVU358 1151 0012 0093 str r3, [sp] 1152 0014 0023 movs r3, #0 1153 0016 EAB2 uxtb r2, r5 1154 .LVL97: 5912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1155 .loc 1 5912 3 view .LVU359 1156 0018 FFF7FEFF bl I2C_TransferConfig 1157 .LVL98: 5915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1158 .loc 1 5915 3 is_stmt 1 view .LVU360 5915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1159 .loc 1 5915 7 is_stmt 0 view .LVU361 ARM GAS /tmp/cchwqEfL.s page 158 1160 001c 3A46 mov r2, r7 1161 001e 3146 mov r1, r6 1162 0020 2046 mov r0, r4 1163 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1164 .LVL99: 5915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1165 .loc 1 5915 6 view .LVU362 1166 0026 F8B9 cbnz r0, .L99 5921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1167 .loc 1 5921 3 is_stmt 1 view .LVU363 5921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1168 .loc 1 5921 6 is_stmt 0 view .LVU364 1169 0028 012D cmp r5, #1 1170 002a 0ED1 bne .L97 5924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1171 .loc 1 5924 5 is_stmt 1 view .LVU365 5924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1172 .loc 1 5924 9 is_stmt 0 view .LVU366 1173 002c 2368 ldr r3, [r4] 5924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1174 .loc 1 5924 28 view .LVU367 1175 002e 5FFA88F2 uxtb r2, r8 5924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1176 .loc 1 5924 26 view .LVU368 1177 0032 9A62 str r2, [r3, #40] 1178 .L98: 5943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1179 .loc 1 5943 3 is_stmt 1 view .LVU369 5943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1180 .loc 1 5943 7 is_stmt 0 view .LVU370 1181 0034 0097 str r7, [sp] 1182 0036 3346 mov r3, r6 1183 0038 0022 movs r2, #0 1184 003a 4021 movs r1, #64 1185 003c 2046 mov r0, r4 1186 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1187 .LVL100: 5943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1188 .loc 1 5943 6 view .LVU371 1189 0042 A8B9 cbnz r0, .L103 1190 .L96: 5949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1191 .loc 1 5949 1 view .LVU372 1192 0044 02B0 add sp, sp, #8 1193 .LCFI11: 1194 .cfi_remember_state 1195 .cfi_def_cfa_offset 24 1196 @ sp needed 1197 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1198 .LVL101: 1199 .L97: 1200 .LCFI12: 1201 .cfi_restore_state 5930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1202 .loc 1 5930 5 is_stmt 1 view .LVU373 5930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1203 .loc 1 5930 9 is_stmt 0 view .LVU374 ARM GAS /tmp/cchwqEfL.s page 159 1204 004a 2368 ldr r3, [r4] 5930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1205 .loc 1 5930 28 view .LVU375 1206 004c 4FEA1822 lsr r2, r8, #8 5930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1207 .loc 1 5930 26 view .LVU376 1208 0050 9A62 str r2, [r3, #40] 5933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1209 .loc 1 5933 5 is_stmt 1 view .LVU377 5933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1210 .loc 1 5933 9 is_stmt 0 view .LVU378 1211 0052 3A46 mov r2, r7 1212 0054 3146 mov r1, r6 1213 0056 2046 mov r0, r4 1214 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1215 .LVL102: 5933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1216 .loc 1 5933 8 view .LVU379 1217 005c 30B9 cbnz r0, .L100 5939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1218 .loc 1 5939 5 is_stmt 1 view .LVU380 5939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1219 .loc 1 5939 9 is_stmt 0 view .LVU381 1220 005e 2368 ldr r3, [r4] 5939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1221 .loc 1 5939 28 view .LVU382 1222 0060 5FFA88F2 uxtb r2, r8 5939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1223 .loc 1 5939 26 view .LVU383 1224 0064 9A62 str r2, [r3, #40] 1225 0066 E5E7 b .L98 1226 .L99: 5917:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1227 .loc 1 5917 12 view .LVU384 1228 0068 0120 movs r0, #1 1229 006a EBE7 b .L96 1230 .L100: 5935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1231 .loc 1 5935 14 view .LVU385 1232 006c 0120 movs r0, #1 1233 006e E9E7 b .L96 1234 .L103: 5945:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1235 .loc 1 5945 12 view .LVU386 1236 0070 0120 movs r0, #1 1237 0072 E7E7 b .L96 1238 .L105: 1239 .align 2 1240 .L104: 1241 0074 00200080 .word -2147475456 1242 .cfi_endproc 1243 .LFE197: 1245 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits 1246 .align 1 1247 .syntax unified 1248 .thumb 1249 .thumb_func ARM GAS /tmp/cchwqEfL.s page 160 1250 .fpu fpv5-d16 1252 I2C_WaitOnSTOPFlagUntilTimeout: 1253 .LVL103: 1254 .LFB215: 7100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1255 .loc 1 7100 1 is_stmt 1 view -0 1256 .cfi_startproc 1257 @ args = 0, pretend = 0, frame = 0 1258 @ 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) 1259 .loc 1 7100 1 is_stmt 0 view .LVU388 1260 0000 70B5 push {r4, r5, r6, lr} 1261 .LCFI13: 1262 .cfi_def_cfa_offset 16 1263 .cfi_offset 4, -16 1264 .cfi_offset 5, -12 1265 .cfi_offset 6, -8 1266 .cfi_offset 14, -4 1267 0002 0446 mov r4, r0 1268 0004 0D46 mov r5, r1 1269 0006 1646 mov r6, r2 7101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1270 .loc 1 7101 3 is_stmt 1 view .LVU389 7101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1271 .loc 1 7101 9 is_stmt 0 view .LVU390 1272 0008 04E0 b .L107 1273 .LVL104: 1274 .L109: 7112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1275 .loc 1 7112 7 is_stmt 1 view .LVU391 7112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1276 .loc 1 7112 12 is_stmt 0 view .LVU392 1277 000a 2368 ldr r3, [r4] 1278 000c 9B69 ldr r3, [r3, #24] 7112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1279 .loc 1 7112 10 view .LVU393 1280 000e 13F0200F tst r3, #32 1281 0012 12D0 beq .L113 1282 .L107: 7101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1283 .loc 1 7101 9 is_stmt 1 view .LVU394 7101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1284 .loc 1 7101 10 is_stmt 0 view .LVU395 1285 0014 2368 ldr r3, [r4] 1286 0016 9B69 ldr r3, [r3, #24] 7101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1287 .loc 1 7101 9 view .LVU396 1288 0018 13F0200F tst r3, #32 1289 001c 1BD1 bne .L114 7104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1290 .loc 1 7104 5 is_stmt 1 view .LVU397 7104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1291 .loc 1 7104 9 is_stmt 0 view .LVU398 1292 001e 3246 mov r2, r6 1293 0020 2946 mov r1, r5 1294 0022 2046 mov r0, r4 1295 0024 FFF7FEFF bl I2C_IsErrorOccurred ARM GAS /tmp/cchwqEfL.s page 161 1296 .LVL105: 7104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1297 .loc 1 7104 8 view .LVU399 1298 0028 B8B9 cbnz r0, .L111 7110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1299 .loc 1 7110 5 is_stmt 1 view .LVU400 7110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1300 .loc 1 7110 11 is_stmt 0 view .LVU401 1301 002a FFF7FEFF bl HAL_GetTick 1302 .LVL106: 7110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1303 .loc 1 7110 25 view .LVU402 1304 002e 801B subs r0, r0, r6 7110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1305 .loc 1 7110 8 view .LVU403 1306 0030 A842 cmp r0, r5 1307 0032 EAD8 bhi .L109 7110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1308 .loc 1 7110 49 discriminator 1 view .LVU404 1309 0034 002D cmp r5, #0 1310 0036 EDD1 bne .L107 1311 0038 E7E7 b .L109 1312 .L113: 7114:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1313 .loc 1 7114 9 is_stmt 1 view .LVU405 7114:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1314 .loc 1 7114 25 is_stmt 0 view .LVU406 1315 003a 636C ldr r3, [r4, #68] 1316 003c 43F02003 orr r3, r3, #32 1317 0040 6364 str r3, [r4, #68] 7115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1318 .loc 1 7115 9 is_stmt 1 view .LVU407 7115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1319 .loc 1 7115 21 is_stmt 0 view .LVU408 1320 0042 2023 movs r3, #32 1321 0044 84F84130 strb r3, [r4, #65] 7116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1322 .loc 1 7116 9 is_stmt 1 view .LVU409 7116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1323 .loc 1 7116 20 is_stmt 0 view .LVU410 1324 0048 0023 movs r3, #0 1325 004a 84F84230 strb r3, [r4, #66] 7119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1326 .loc 1 7119 9 is_stmt 1 view .LVU411 7119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1327 .loc 1 7119 9 view .LVU412 1328 004e 84F84030 strb r3, [r4, #64] 7119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1329 .loc 1 7119 9 view .LVU413 7121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1330 .loc 1 7121 9 view .LVU414 7121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1331 .loc 1 7121 16 is_stmt 0 view .LVU415 1332 0052 0120 movs r0, #1 1333 0054 00E0 b .L108 1334 .L114: 7125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/cchwqEfL.s page 162 1335 .loc 1 7125 10 view .LVU416 1336 0056 0020 movs r0, #0 1337 .L108: 7126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1338 .loc 1 7126 1 view .LVU417 1339 0058 70BD pop {r4, r5, r6, pc} 1340 .LVL107: 1341 .L111: 7106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1342 .loc 1 7106 14 view .LVU418 1343 005a 0120 movs r0, #1 1344 005c FCE7 b .L108 1345 .cfi_endproc 1346 .LFE215: 1348 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits 1349 .align 1 1350 .syntax unified 1351 .thumb 1352 .thumb_func 1353 .fpu fpv5-d16 1355 I2C_WaitOnRXNEFlagUntilTimeout: 1356 .LVL108: 1357 .LFB216: 7138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1358 .loc 1 7138 1 is_stmt 1 view -0 1359 .cfi_startproc 1360 @ args = 0, pretend = 0, frame = 0 1361 @ frame_needed = 0, uses_anonymous_args = 0 7138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1362 .loc 1 7138 1 is_stmt 0 view .LVU420 1363 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 1364 .LCFI14: 1365 .cfi_def_cfa_offset 24 1366 .cfi_offset 3, -24 1367 .cfi_offset 4, -20 1368 .cfi_offset 5, -16 1369 .cfi_offset 6, -12 1370 .cfi_offset 7, -8 1371 .cfi_offset 14, -4 1372 0002 0446 mov r4, r0 1373 0004 0E46 mov r6, r1 1374 0006 1746 mov r7, r2 7139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1375 .loc 1 7139 3 is_stmt 1 view .LVU421 1376 .LVL109: 7141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1377 .loc 1 7141 3 view .LVU422 7139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1378 .loc 1 7139 21 is_stmt 0 view .LVU423 1379 0008 0025 movs r5, #0 7141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1380 .loc 1 7141 9 view .LVU424 1381 000a 18E0 b .L116 1382 .LVL110: 1383 .L120: 7183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1384 .loc 1 7183 9 is_stmt 1 view .LVU425 ARM GAS /tmp/cchwqEfL.s page 163 7183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1385 .loc 1 7183 25 is_stmt 0 view .LVU426 1386 000c 0023 movs r3, #0 1387 000e 6364 str r3, [r4, #68] 1388 .LVL111: 1389 .L118: 7188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1390 .loc 1 7188 5 is_stmt 1 view .LVU427 7188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1391 .loc 1 7188 12 is_stmt 0 view .LVU428 1392 0010 FFF7FEFF bl HAL_GetTick 1393 .LVL112: 7188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1394 .loc 1 7188 26 view .LVU429 1395 0014 C01B subs r0, r0, r7 7188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1396 .loc 1 7188 8 view .LVU430 1397 0016 B042 cmp r0, r6 1398 0018 00D8 bhi .L121 7188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1399 .loc 1 7188 50 discriminator 2 view .LVU431 1400 001a 86B9 cbnz r6, .L116 1401 .L121: 7188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1402 .loc 1 7188 70 discriminator 3 view .LVU432 1403 001c 7DB9 cbnz r5, .L116 7190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1404 .loc 1 7190 7 is_stmt 1 view .LVU433 7190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1405 .loc 1 7190 12 is_stmt 0 view .LVU434 1406 001e 2368 ldr r3, [r4] 1407 0020 9B69 ldr r3, [r3, #24] 7190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1408 .loc 1 7190 10 view .LVU435 1409 0022 13F0040F tst r3, #4 1410 0026 0AD1 bne .L116 7192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1411 .loc 1 7192 9 is_stmt 1 view .LVU436 7192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1412 .loc 1 7192 25 is_stmt 0 view .LVU437 1413 0028 636C ldr r3, [r4, #68] 1414 002a 43F02003 orr r3, r3, #32 1415 002e 6364 str r3, [r4, #68] 7193:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1416 .loc 1 7193 9 is_stmt 1 view .LVU438 7193:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1417 .loc 1 7193 21 is_stmt 0 view .LVU439 1418 0030 2023 movs r3, #32 1419 0032 84F84130 strb r3, [r4, #65] 7196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1420 .loc 1 7196 9 is_stmt 1 view .LVU440 7196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1421 .loc 1 7196 9 view .LVU441 1422 0036 0023 movs r3, #0 1423 0038 84F84030 strb r3, [r4, #64] 7196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1424 .loc 1 7196 9 view .LVU442 ARM GAS /tmp/cchwqEfL.s page 164 7198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1425 .loc 1 7198 9 view .LVU443 1426 .LVL113: 7198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1427 .loc 1 7198 16 is_stmt 0 view .LVU444 1428 003c 0125 movs r5, #1 1429 .LVL114: 1430 .L116: 7141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1431 .loc 1 7141 9 is_stmt 1 view .LVU445 7141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1432 .loc 1 7141 11 is_stmt 0 view .LVU446 1433 003e 2368 ldr r3, [r4] 1434 0040 9B69 ldr r3, [r3, #24] 7141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1435 .loc 1 7141 9 view .LVU447 1436 0042 13F0040F tst r3, #4 1437 0046 2ED1 bne .L123 7141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1438 .loc 1 7141 61 discriminator 1 view .LVU448 1439 0048 6DBB cbnz r5, .L123 7144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1440 .loc 1 7144 5 is_stmt 1 view .LVU449 7144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1441 .loc 1 7144 9 is_stmt 0 view .LVU450 1442 004a 3A46 mov r2, r7 1443 004c 3146 mov r1, r6 1444 004e 2046 mov r0, r4 1445 0050 FFF7FEFF bl I2C_IsErrorOccurred 1446 .LVL115: 7144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1447 .loc 1 7144 8 view .LVU451 1448 0054 00B1 cbz r0, .L117 7146:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1449 .loc 1 7146 14 view .LVU452 1450 0056 0125 movs r5, #1 1451 .LVL116: 1452 .L117: 7150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1453 .loc 1 7150 5 is_stmt 1 view .LVU453 7150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1454 .loc 1 7150 10 is_stmt 0 view .LVU454 1455 0058 2368 ldr r3, [r4] 1456 005a 9A69 ldr r2, [r3, #24] 7150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1457 .loc 1 7150 8 view .LVU455 1458 005c 12F0200F tst r2, #32 1459 0060 D6D0 beq .L118 7150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1460 .loc 1 7150 59 discriminator 1 view .LVU456 1461 0062 002D cmp r5, #0 1462 0064 D4D1 bne .L118 7154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1463 .loc 1 7154 7 is_stmt 1 view .LVU457 7154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1464 .loc 1 7154 12 is_stmt 0 view .LVU458 1465 0066 9A69 ldr r2, [r3, #24] ARM GAS /tmp/cchwqEfL.s page 165 7162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1466 .loc 1 7162 7 is_stmt 1 view .LVU459 7162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1467 .loc 1 7162 11 is_stmt 0 view .LVU460 1468 0068 9A69 ldr r2, [r3, #24] 7162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1469 .loc 1 7162 10 view .LVU461 1470 006a 12F0100F tst r2, #16 1471 006e CDD0 beq .L120 7164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 1472 .loc 1 7164 9 is_stmt 1 view .LVU462 1473 0070 1022 movs r2, #16 1474 0072 DA61 str r2, [r3, #28] 7165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1475 .loc 1 7165 9 view .LVU463 7165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1476 .loc 1 7165 25 is_stmt 0 view .LVU464 1477 0074 0423 movs r3, #4 1478 0076 6364 str r3, [r4, #68] 7168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1479 .loc 1 7168 9 is_stmt 1 view .LVU465 1480 0078 2368 ldr r3, [r4] 1481 007a 2022 movs r2, #32 1482 007c DA61 str r2, [r3, #28] 7171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1483 .loc 1 7171 9 view .LVU466 1484 007e 2168 ldr r1, [r4] 1485 0080 4B68 ldr r3, [r1, #4] 1486 0082 23F0FF73 bic r3, r3, #33423360 1487 0086 23F48B33 bic r3, r3, #71168 1488 008a 23F4FF73 bic r3, r3, #510 1489 008e 23F00103 bic r3, r3, #1 1490 0092 4B60 str r3, [r1, #4] 7173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1491 .loc 1 7173 9 view .LVU467 7173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1492 .loc 1 7173 21 is_stmt 0 view .LVU468 1493 0094 84F84120 strb r2, [r4, #65] 7174:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1494 .loc 1 7174 9 is_stmt 1 view .LVU469 7174:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1495 .loc 1 7174 20 is_stmt 0 view .LVU470 1496 0098 0023 movs r3, #0 1497 009a 84F84230 strb r3, [r4, #66] 7177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1498 .loc 1 7177 9 is_stmt 1 view .LVU471 7177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1499 .loc 1 7177 9 view .LVU472 1500 009e 84F84030 strb r3, [r4, #64] 7177:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1501 .loc 1 7177 9 view .LVU473 7179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1502 .loc 1 7179 9 view .LVU474 1503 .LVL117: 7179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1504 .loc 1 7179 16 is_stmt 0 view .LVU475 1505 00a2 0125 movs r5, #1 ARM GAS /tmp/cchwqEfL.s page 166 1506 00a4 B4E7 b .L118 1507 .LVL118: 1508 .L123: 7202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1509 .loc 1 7202 3 is_stmt 1 view .LVU476 7203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1510 .loc 1 7203 1 is_stmt 0 view .LVU477 1511 00a6 2846 mov r0, r5 1512 00a8 F8BD pop {r3, r4, r5, r6, r7, pc} 7203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1513 .loc 1 7203 1 view .LVU478 1514 .cfi_endproc 1515 .LFE216: 1517 .section .text.HAL_I2C_MspInit,"ax",%progbits 1518 .align 1 1519 .weak HAL_I2C_MspInit 1520 .syntax unified 1521 .thumb 1522 .thumb_func 1523 .fpu fpv5-d16 1525 HAL_I2C_MspInit: 1526 .LVL119: 1527 .LFB143: 697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1528 .loc 1 697 1 is_stmt 1 view -0 1529 .cfi_startproc 1530 @ args = 0, pretend = 0, frame = 0 1531 @ frame_needed = 0, uses_anonymous_args = 0 1532 @ link register save eliminated. 699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1533 .loc 1 699 3 view .LVU480 704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1534 .loc 1 704 1 is_stmt 0 view .LVU481 1535 0000 7047 bx lr 1536 .cfi_endproc 1537 .LFE143: 1539 .section .text.HAL_I2C_Init,"ax",%progbits 1540 .align 1 1541 .global HAL_I2C_Init 1542 .syntax unified 1543 .thumb 1544 .thumb_func 1545 .fpu fpv5-d16 1547 HAL_I2C_Init: 1548 .LVL120: 1549 .LFB141: 536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1550 .loc 1 536 1 is_stmt 1 view -0 1551 .cfi_startproc 1552 @ args = 0, pretend = 0, frame = 0 1553 @ frame_needed = 0, uses_anonymous_args = 0 538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1554 .loc 1 538 3 view .LVU483 538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1555 .loc 1 538 6 is_stmt 0 view .LVU484 1556 0000 0028 cmp r0, #0 1557 0002 5DD0 beq .L135 ARM GAS /tmp/cchwqEfL.s page 167 536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1558 .loc 1 536 1 view .LVU485 1559 0004 10B5 push {r4, lr} 1560 .LCFI15: 1561 .cfi_def_cfa_offset 8 1562 .cfi_offset 4, -8 1563 .cfi_offset 14, -4 1564 0006 0446 mov r4, r0 544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 1565 .loc 1 544 3 is_stmt 1 view .LVU486 545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 1566 .loc 1 545 3 view .LVU487 546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 1567 .loc 1 546 3 view .LVU488 547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 1568 .loc 1 547 3 view .LVU489 548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 1569 .loc 1 548 3 view .LVU490 549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 1570 .loc 1 549 3 view .LVU491 550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 1571 .loc 1 550 3 view .LVU492 551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1572 .loc 1 551 3 view .LVU493 553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1573 .loc 1 553 3 view .LVU494 553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1574 .loc 1 553 11 is_stmt 0 view .LVU495 1575 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1576 .loc 1 553 6 view .LVU496 1577 000c 002B cmp r3, #0 1578 000e 46D0 beq .L140 1579 .LVL121: 1580 .L130: 584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1581 .loc 1 584 3 is_stmt 1 view .LVU497 584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1582 .loc 1 584 15 is_stmt 0 view .LVU498 1583 0010 2423 movs r3, #36 1584 0012 84F84130 strb r3, [r4, #65] 587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1585 .loc 1 587 3 is_stmt 1 view .LVU499 1586 0016 2268 ldr r2, [r4] 1587 0018 1368 ldr r3, [r2] 1588 001a 23F00103 bic r3, r3, #1 1589 001e 1360 str r3, [r2] 591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1590 .loc 1 591 3 view .LVU500 591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1591 .loc 1 591 39 is_stmt 0 view .LVU501 1592 0020 6368 ldr r3, [r4, #4] 591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1593 .loc 1 591 7 view .LVU502 1594 0022 2268 ldr r2, [r4] 591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1595 .loc 1 591 47 view .LVU503 ARM GAS /tmp/cchwqEfL.s page 168 1596 0024 23F07063 bic r3, r3, #251658240 591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1597 .loc 1 591 27 view .LVU504 1598 0028 1361 str r3, [r2, #16] 595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1599 .loc 1 595 3 is_stmt 1 view .LVU505 595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1600 .loc 1 595 7 is_stmt 0 view .LVU506 1601 002a 2268 ldr r2, [r4] 595:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1602 .loc 1 595 24 view .LVU507 1603 002c 9368 ldr r3, [r2, #8] 1604 002e 23F40043 bic r3, r3, #32768 1605 0032 9360 str r3, [r2, #8] 598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1606 .loc 1 598 3 is_stmt 1 view .LVU508 598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1607 .loc 1 598 17 is_stmt 0 view .LVU509 1608 0034 E368 ldr r3, [r4, #12] 598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1609 .loc 1 598 6 view .LVU510 1610 0036 012B cmp r3, #1 1611 0038 36D0 beq .L141 604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1612 .loc 1 604 5 is_stmt 1 view .LVU511 604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1613 .loc 1 604 75 is_stmt 0 view .LVU512 1614 003a A368 ldr r3, [r4, #8] 604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1615 .loc 1 604 9 view .LVU513 1616 003c 2268 ldr r2, [r4] 604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1617 .loc 1 604 63 view .LVU514 1618 003e 43F40443 orr r3, r3, #33792 604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1619 .loc 1 604 26 view .LVU515 1620 0042 9360 str r3, [r2, #8] 1621 .L132: 609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1622 .loc 1 609 3 is_stmt 1 view .LVU516 609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1623 .loc 1 609 17 is_stmt 0 view .LVU517 1624 0044 E368 ldr r3, [r4, #12] 609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1625 .loc 1 609 6 view .LVU518 1626 0046 022B cmp r3, #2 1627 0048 34D0 beq .L142 616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1628 .loc 1 616 5 is_stmt 1 view .LVU519 1629 004a 2268 ldr r2, [r4] 1630 004c 5368 ldr r3, [r2, #4] 1631 004e 23F40063 bic r3, r3, #2048 1632 0052 5360 str r3, [r2, #4] 1633 .L134: 619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1634 .loc 1 619 3 view .LVU520 619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 169 1635 .loc 1 619 7 is_stmt 0 view .LVU521 1636 0054 2268 ldr r2, [r4] 619:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1637 .loc 1 619 23 view .LVU522 1638 0056 5168 ldr r1, [r2, #4] 1639 0058 1A4B ldr r3, .L143 1640 005a 0B43 orrs r3, r3, r1 1641 005c 5360 str r3, [r2, #4] 623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1642 .loc 1 623 3 is_stmt 1 view .LVU523 623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1643 .loc 1 623 7 is_stmt 0 view .LVU524 1644 005e 2268 ldr r2, [r4] 623:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1645 .loc 1 623 24 view .LVU525 1646 0060 D368 ldr r3, [r2, #12] 1647 0062 23F40043 bic r3, r3, #32768 1648 0066 D360 str r3, [r2, #12] 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1649 .loc 1 626 3 is_stmt 1 view .LVU526 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1650 .loc 1 626 37 is_stmt 0 view .LVU527 1651 0068 2369 ldr r3, [r4, #16] 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1652 .loc 1 626 66 view .LVU528 1653 006a 6269 ldr r2, [r4, #20] 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1654 .loc 1 626 54 view .LVU529 1655 006c 1343 orrs r3, r3, r2 627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1656 .loc 1 627 38 view .LVU530 1657 006e A169 ldr r1, [r4, #24] 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1658 .loc 1 626 7 view .LVU531 1659 0070 2268 ldr r2, [r4] 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1660 .loc 1 626 79 view .LVU532 1661 0072 43EA0123 orr r3, r3, r1, lsl #8 626:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1662 .loc 1 626 24 view .LVU533 1663 0076 D360 str r3, [r2, #12] 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1664 .loc 1 631 3 is_stmt 1 view .LVU534 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1665 .loc 1 631 36 is_stmt 0 view .LVU535 1666 0078 E369 ldr r3, [r4, #28] 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1667 .loc 1 631 65 view .LVU536 1668 007a 216A ldr r1, [r4, #32] 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1669 .loc 1 631 7 view .LVU537 1670 007c 2268 ldr r2, [r4] 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1671 .loc 1 631 53 view .LVU538 1672 007e 0B43 orrs r3, r3, r1 631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1673 .loc 1 631 23 view .LVU539 ARM GAS /tmp/cchwqEfL.s page 170 1674 0080 1360 str r3, [r2] 634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1675 .loc 1 634 3 is_stmt 1 view .LVU540 1676 0082 2268 ldr r2, [r4] 1677 0084 1368 ldr r3, [r2] 1678 0086 43F00103 orr r3, r3, #1 1679 008a 1360 str r3, [r2] 636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1680 .loc 1 636 3 view .LVU541 636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1681 .loc 1 636 19 is_stmt 0 view .LVU542 1682 008c 0020 movs r0, #0 1683 008e 6064 str r0, [r4, #68] 637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1684 .loc 1 637 3 is_stmt 1 view .LVU543 637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1685 .loc 1 637 15 is_stmt 0 view .LVU544 1686 0090 2023 movs r3, #32 1687 0092 84F84130 strb r3, [r4, #65] 638:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1688 .loc 1 638 3 is_stmt 1 view .LVU545 638:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1689 .loc 1 638 23 is_stmt 0 view .LVU546 1690 0096 2063 str r0, [r4, #48] 639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1691 .loc 1 639 3 is_stmt 1 view .LVU547 639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1692 .loc 1 639 14 is_stmt 0 view .LVU548 1693 0098 84F84200 strb r0, [r4, #66] 641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1694 .loc 1 641 3 is_stmt 1 view .LVU549 642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1695 .loc 1 642 1 is_stmt 0 view .LVU550 1696 009c 10BD pop {r4, pc} 1697 .LVL122: 1698 .L140: 556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1699 .loc 1 556 5 is_stmt 1 view .LVU551 556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1700 .loc 1 556 16 is_stmt 0 view .LVU552 1701 009e 80F84030 strb r3, [r0, #64] 580:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1702 .loc 1 580 5 is_stmt 1 view .LVU553 1703 00a2 FFF7FEFF bl HAL_I2C_MspInit 1704 .LVL123: 580:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1705 .loc 1 580 5 is_stmt 0 view .LVU554 1706 00a6 B3E7 b .L130 1707 .L141: 600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1708 .loc 1 600 5 is_stmt 1 view .LVU555 600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1709 .loc 1 600 56 is_stmt 0 view .LVU556 1710 00a8 A368 ldr r3, [r4, #8] 600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1711 .loc 1 600 9 view .LVU557 1712 00aa 2268 ldr r2, [r4] ARM GAS /tmp/cchwqEfL.s page 171 600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1713 .loc 1 600 44 view .LVU558 1714 00ac 43F40043 orr r3, r3, #32768 600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1715 .loc 1 600 26 view .LVU559 1716 00b0 9360 str r3, [r2, #8] 1717 00b2 C7E7 b .L132 1718 .L142: 611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1719 .loc 1 611 5 is_stmt 1 view .LVU560 1720 00b4 2268 ldr r2, [r4] 1721 00b6 5368 ldr r3, [r2, #4] 1722 00b8 43F40063 orr r3, r3, #2048 1723 00bc 5360 str r3, [r2, #4] 1724 00be C9E7 b .L134 1725 .LVL124: 1726 .L135: 1727 .LCFI16: 1728 .cfi_def_cfa_offset 0 1729 .cfi_restore 4 1730 .cfi_restore 14 540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1731 .loc 1 540 12 is_stmt 0 view .LVU561 1732 00c0 0120 movs r0, #1 1733 .LVL125: 642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1734 .loc 1 642 1 view .LVU562 1735 00c2 7047 bx lr 1736 .L144: 1737 .align 2 1738 .L143: 1739 00c4 00800002 .word 33587200 1740 .cfi_endproc 1741 .LFE141: 1743 .section .text.HAL_I2C_MspDeInit,"ax",%progbits 1744 .align 1 1745 .weak HAL_I2C_MspDeInit 1746 .syntax unified 1747 .thumb 1748 .thumb_func 1749 .fpu fpv5-d16 1751 HAL_I2C_MspDeInit: 1752 .LVL126: 1753 .LFB144: 713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1754 .loc 1 713 1 is_stmt 1 view -0 1755 .cfi_startproc 1756 @ args = 0, pretend = 0, frame = 0 1757 @ frame_needed = 0, uses_anonymous_args = 0 1758 @ link register save eliminated. 715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1759 .loc 1 715 3 view .LVU564 720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1760 .loc 1 720 1 is_stmt 0 view .LVU565 1761 0000 7047 bx lr 1762 .cfi_endproc 1763 .LFE144: ARM GAS /tmp/cchwqEfL.s page 172 1765 .section .text.HAL_I2C_DeInit,"ax",%progbits 1766 .align 1 1767 .global HAL_I2C_DeInit 1768 .syntax unified 1769 .thumb 1770 .thumb_func 1771 .fpu fpv5-d16 1773 HAL_I2C_DeInit: 1774 .LVL127: 1775 .LFB142: 651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1776 .loc 1 651 1 is_stmt 1 view -0 1777 .cfi_startproc 1778 @ args = 0, pretend = 0, frame = 0 1779 @ frame_needed = 0, uses_anonymous_args = 0 653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1780 .loc 1 653 3 view .LVU567 653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1781 .loc 1 653 6 is_stmt 0 view .LVU568 1782 0000 A8B1 cbz r0, .L148 651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1783 .loc 1 651 1 view .LVU569 1784 0002 10B5 push {r4, lr} 1785 .LCFI17: 1786 .cfi_def_cfa_offset 8 1787 .cfi_offset 4, -8 1788 .cfi_offset 14, -4 1789 0004 0446 mov r4, r0 659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1790 .loc 1 659 3 is_stmt 1 view .LVU570 661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1791 .loc 1 661 3 view .LVU571 661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1792 .loc 1 661 15 is_stmt 0 view .LVU572 1793 0006 2423 movs r3, #36 1794 0008 80F84130 strb r3, [r0, #65] 664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1795 .loc 1 664 3 is_stmt 1 view .LVU573 1796 000c 0268 ldr r2, [r0] 1797 000e 1368 ldr r3, [r2] 1798 0010 23F00103 bic r3, r3, #1 1799 0014 1360 str r3, [r2] 676:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1800 .loc 1 676 3 view .LVU574 1801 0016 FFF7FEFF bl HAL_I2C_MspDeInit 1802 .LVL128: 679:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1803 .loc 1 679 3 view .LVU575 679:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1804 .loc 1 679 19 is_stmt 0 view .LVU576 1805 001a 0020 movs r0, #0 1806 001c 6064 str r0, [r4, #68] 680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1807 .loc 1 680 3 is_stmt 1 view .LVU577 680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1808 .loc 1 680 15 is_stmt 0 view .LVU578 1809 001e 84F84100 strb r0, [r4, #65] ARM GAS /tmp/cchwqEfL.s page 173 681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1810 .loc 1 681 3 is_stmt 1 view .LVU579 681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1811 .loc 1 681 23 is_stmt 0 view .LVU580 1812 0022 2063 str r0, [r4, #48] 682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1813 .loc 1 682 3 is_stmt 1 view .LVU581 682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1814 .loc 1 682 14 is_stmt 0 view .LVU582 1815 0024 84F84200 strb r0, [r4, #66] 685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1816 .loc 1 685 3 is_stmt 1 view .LVU583 685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1817 .loc 1 685 3 view .LVU584 1818 0028 84F84000 strb r0, [r4, #64] 685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1819 .loc 1 685 3 view .LVU585 687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1820 .loc 1 687 3 view .LVU586 688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1821 .loc 1 688 1 is_stmt 0 view .LVU587 1822 002c 10BD pop {r4, pc} 1823 .LVL129: 1824 .L148: 1825 .LCFI18: 1826 .cfi_def_cfa_offset 0 1827 .cfi_restore 4 1828 .cfi_restore 14 655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1829 .loc 1 655 12 view .LVU588 1830 002e 0120 movs r0, #1 1831 .LVL130: 688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1832 .loc 1 688 1 view .LVU589 1833 0030 7047 bx lr 1834 .cfi_endproc 1835 .LFE142: 1837 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits 1838 .align 1 1839 .global HAL_I2C_Master_Transmit 1840 .syntax unified 1841 .thumb 1842 .thumb_func 1843 .fpu fpv5-d16 1845 HAL_I2C_Master_Transmit: 1846 .LVL131: 1847 .LFB145: 1121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 1848 .loc 1 1121 1 is_stmt 1 view -0 1849 .cfi_startproc 1850 @ args = 4, pretend = 0, frame = 0 1851 @ frame_needed = 0, uses_anonymous_args = 0 1121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 1852 .loc 1 1121 1 is_stmt 0 view .LVU591 1853 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 1854 .LCFI19: 1855 .cfi_def_cfa_offset 32 ARM GAS /tmp/cchwqEfL.s page 174 1856 .cfi_offset 4, -32 1857 .cfi_offset 5, -28 1858 .cfi_offset 6, -24 1859 .cfi_offset 7, -20 1860 .cfi_offset 8, -16 1861 .cfi_offset 9, -12 1862 .cfi_offset 10, -8 1863 .cfi_offset 14, -4 1864 0004 82B0 sub sp, sp, #8 1865 .LCFI20: 1866 .cfi_def_cfa_offset 40 1867 0006 0F46 mov r7, r1 1868 0008 0A9E ldr r6, [sp, #40] 1122:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 1869 .loc 1 1122 3 is_stmt 1 view .LVU592 1123:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1870 .loc 1 1123 3 view .LVU593 1125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1871 .loc 1 1125 3 view .LVU594 1125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1872 .loc 1 1125 11 is_stmt 0 view .LVU595 1873 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 1874 .LVL132: 1125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1875 .loc 1 1125 11 view .LVU596 1876 000e C9B2 uxtb r1, r1 1125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1877 .loc 1 1125 6 view .LVU597 1878 0010 2029 cmp r1, #32 1879 0012 40F0B780 bne .L163 1880 0016 0446 mov r4, r0 1881 0018 9046 mov r8, r2 1882 001a 9946 mov r9, r3 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1883 .loc 1 1128 5 is_stmt 1 view .LVU598 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1884 .loc 1 1128 5 view .LVU599 1885 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 1886 .LVL133: 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1887 .loc 1 1128 5 is_stmt 0 view .LVU600 1888 0020 012B cmp r3, #1 1889 0022 00F0B380 beq .L164 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1890 .loc 1 1128 5 is_stmt 1 discriminator 2 view .LVU601 1891 0026 4FF0010A mov r10, #1 1892 002a 80F840A0 strb r10, [r0, #64] 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1893 .loc 1 1128 5 discriminator 2 view .LVU602 1131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1894 .loc 1 1131 5 discriminator 2 view .LVU603 1131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1895 .loc 1 1131 17 is_stmt 0 discriminator 2 view .LVU604 1896 002e FFF7FEFF bl HAL_GetTick 1897 .LVL134: 1131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1898 .loc 1 1131 17 discriminator 2 view .LVU605 ARM GAS /tmp/cchwqEfL.s page 175 1899 0032 0546 mov r5, r0 1900 .LVL135: 1133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1901 .loc 1 1133 5 is_stmt 1 discriminator 2 view .LVU606 1133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1902 .loc 1 1133 9 is_stmt 0 discriminator 2 view .LVU607 1903 0034 0090 str r0, [sp] 1904 0036 1923 movs r3, #25 1905 0038 5246 mov r2, r10 1906 003a 4FF40041 mov r1, #32768 1907 003e 2046 mov r0, r4 1908 .LVL136: 1133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1909 .loc 1 1133 9 discriminator 2 view .LVU608 1910 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1911 .LVL137: 1133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1912 .loc 1 1133 8 discriminator 2 view .LVU609 1913 0044 0028 cmp r0, #0 1914 0046 40F0A380 bne .L165 1138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1915 .loc 1 1138 5 is_stmt 1 view .LVU610 1138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1916 .loc 1 1138 21 is_stmt 0 view .LVU611 1917 004a 2123 movs r3, #33 1918 004c 84F84130 strb r3, [r4, #65] 1139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1919 .loc 1 1139 5 is_stmt 1 view .LVU612 1139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1920 .loc 1 1139 21 is_stmt 0 view .LVU613 1921 0050 1023 movs r3, #16 1922 0052 84F84230 strb r3, [r4, #66] 1140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1923 .loc 1 1140 5 is_stmt 1 view .LVU614 1140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1924 .loc 1 1140 21 is_stmt 0 view .LVU615 1925 0056 0023 movs r3, #0 1926 0058 6364 str r3, [r4, #68] 1143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 1927 .loc 1 1143 5 is_stmt 1 view .LVU616 1143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 1928 .loc 1 1143 21 is_stmt 0 view .LVU617 1929 005a C4F82480 str r8, [r4, #36] 1144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1930 .loc 1 1144 5 is_stmt 1 view .LVU618 1144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1931 .loc 1 1144 21 is_stmt 0 view .LVU619 1932 005e A4F82A90 strh r9, [r4, #42] @ movhi 1145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1933 .loc 1 1145 5 is_stmt 1 view .LVU620 1145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1934 .loc 1 1145 21 is_stmt 0 view .LVU621 1935 0062 6363 str r3, [r4, #52] 1147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1936 .loc 1 1147 5 is_stmt 1 view .LVU622 1147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1937 .loc 1 1147 13 is_stmt 0 view .LVU623 ARM GAS /tmp/cchwqEfL.s page 176 1938 0064 638D ldrh r3, [r4, #42] 1939 0066 9BB2 uxth r3, r3 1147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1940 .loc 1 1147 8 view .LVU624 1941 0068 FF2B cmp r3, #255 1942 006a 1ED9 bls .L155 1149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1943 .loc 1 1149 7 is_stmt 1 view .LVU625 1149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1944 .loc 1 1149 22 is_stmt 0 view .LVU626 1945 006c FF23 movs r3, #255 1946 006e 2385 strh r3, [r4, #40] @ movhi 1150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1947 .loc 1 1150 7 is_stmt 1 view .LVU627 1948 .LVL138: 1150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 1949 .loc 1 1150 16 is_stmt 0 view .LVU628 1950 0070 4FF08073 mov r3, #16777216 1951 .LVL139: 1952 .L156: 1158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1953 .loc 1 1158 5 is_stmt 1 view .LVU629 1158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1954 .loc 1 1158 13 is_stmt 0 view .LVU630 1955 0074 228D ldrh r2, [r4, #40] 1158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 1956 .loc 1 1158 8 view .LVU631 1957 0076 EAB1 cbz r2, .L157 1162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1958 .loc 1 1162 7 is_stmt 1 view .LVU632 1162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1959 .loc 1 1162 11 is_stmt 0 view .LVU633 1960 0078 2268 ldr r2, [r4] 1162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1961 .loc 1 1162 30 view .LVU634 1962 007a 98F80010 ldrb r1, [r8] @ zero_extendqisi2 1162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1963 .loc 1 1162 28 view .LVU635 1964 007e 9162 str r1, [r2, #40] 1165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1965 .loc 1 1165 7 is_stmt 1 view .LVU636 1165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1966 .loc 1 1165 11 is_stmt 0 view .LVU637 1967 0080 626A ldr r2, [r4, #36] 1165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1968 .loc 1 1165 21 view .LVU638 1969 0082 0132 adds r2, r2, #1 1970 0084 6262 str r2, [r4, #36] 1167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 1971 .loc 1 1167 7 is_stmt 1 view .LVU639 1167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 1972 .loc 1 1167 11 is_stmt 0 view .LVU640 1973 0086 628D ldrh r2, [r4, #42] 1974 0088 92B2 uxth r2, r2 1167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 1975 .loc 1 1167 22 view .LVU641 1976 008a 013A subs r2, r2, #1 ARM GAS /tmp/cchwqEfL.s page 177 1977 008c 92B2 uxth r2, r2 1978 008e 6285 strh r2, [r4, #42] @ movhi 1168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1979 .loc 1 1168 7 is_stmt 1 view .LVU642 1168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1980 .loc 1 1168 11 is_stmt 0 view .LVU643 1981 0090 228D ldrh r2, [r4, #40] 1168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 1982 .loc 1 1168 21 view .LVU644 1983 0092 013A subs r2, r2, #1 1984 0094 92B2 uxth r2, r2 1985 0096 2285 strh r2, [r4, #40] @ movhi 1172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1986 .loc 1 1172 7 is_stmt 1 view .LVU645 1987 0098 0132 adds r2, r2, #1 1988 009a 4149 ldr r1, .L171 1989 009c 0091 str r1, [sp] 1990 009e D2B2 uxtb r2, r2 1991 00a0 3946 mov r1, r7 1992 00a2 2046 mov r0, r4 1993 00a4 FFF7FEFF bl I2C_TransferConfig 1994 .LVL140: 1172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1995 .loc 1 1172 7 is_stmt 0 view .LVU646 1996 00a8 18E0 b .L159 1997 .L155: 1154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1998 .loc 1 1154 7 is_stmt 1 view .LVU647 1154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1999 .loc 1 1154 28 is_stmt 0 view .LVU648 2000 00aa 638D ldrh r3, [r4, #42] 1154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2001 .loc 1 1154 22 view .LVU649 2002 00ac 2385 strh r3, [r4, #40] @ movhi 1155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2003 .loc 1 1155 7 is_stmt 1 view .LVU650 2004 .LVL141: 1155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2005 .loc 1 1155 16 is_stmt 0 view .LVU651 2006 00ae 4FF00073 mov r3, #33554432 2007 00b2 DFE7 b .L156 2008 .LVL142: 2009 .L157: 1179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 2010 .loc 1 1179 7 is_stmt 1 view .LVU652 2011 00b4 3A49 ldr r1, .L171 2012 00b6 0091 str r1, [sp] 2013 00b8 D2B2 uxtb r2, r2 2014 00ba 3946 mov r1, r7 2015 00bc 2046 mov r0, r4 2016 00be FFF7FEFF bl I2C_TransferConfig 2017 .LVL143: 1179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 2018 .loc 1 1179 7 is_stmt 0 view .LVU653 2019 00c2 0BE0 b .L159 2020 .L161: 1215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, ARM GAS /tmp/cchwqEfL.s page 178 2021 .loc 1 1215 11 is_stmt 1 view .LVU654 1215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2022 .loc 1 1215 32 is_stmt 0 view .LVU655 2023 00c4 628D ldrh r2, [r4, #42] 2024 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, 2025 .loc 1 1215 26 view .LVU656 2026 00c8 2285 strh r2, [r4, #40] @ movhi 1216:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2027 .loc 1 1216 11 is_stmt 1 view .LVU657 2028 00ca 0023 movs r3, #0 2029 00cc 0093 str r3, [sp] 2030 00ce 4FF00073 mov r3, #33554432 2031 00d2 D2B2 uxtb r2, r2 2032 00d4 3946 mov r1, r7 2033 00d6 2046 mov r0, r4 2034 00d8 FFF7FEFF bl I2C_TransferConfig 2035 .LVL144: 2036 .L159: 1183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2037 .loc 1 1183 11 view .LVU658 1183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2038 .loc 1 1183 16 is_stmt 0 view .LVU659 2039 00dc 638D ldrh r3, [r4, #42] 2040 00de 9BB2 uxth r3, r3 1183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2041 .loc 1 1183 11 view .LVU660 2042 00e0 002B cmp r3, #0 2043 00e2 33D0 beq .L170 1186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2044 .loc 1 1186 7 is_stmt 1 view .LVU661 1186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2045 .loc 1 1186 11 is_stmt 0 view .LVU662 2046 00e4 2A46 mov r2, r5 2047 00e6 3146 mov r1, r6 2048 00e8 2046 mov r0, r4 2049 00ea FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2050 .LVL145: 1186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2051 .loc 1 1186 10 view .LVU663 2052 00ee 0028 cmp r0, #0 2053 00f0 50D1 bne .L166 1191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2054 .loc 1 1191 7 is_stmt 1 view .LVU664 1191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2055 .loc 1 1191 35 is_stmt 0 view .LVU665 2056 00f2 626A ldr r2, [r4, #36] 1191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2057 .loc 1 1191 11 view .LVU666 2058 00f4 2368 ldr r3, [r4] 1191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2059 .loc 1 1191 30 view .LVU667 2060 00f6 1278 ldrb r2, [r2] @ zero_extendqisi2 1191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2061 .loc 1 1191 28 view .LVU668 2062 00f8 9A62 str r2, [r3, #40] 1194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 179 2063 .loc 1 1194 7 is_stmt 1 view .LVU669 1194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2064 .loc 1 1194 11 is_stmt 0 view .LVU670 2065 00fa 636A ldr r3, [r4, #36] 1194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2066 .loc 1 1194 21 view .LVU671 2067 00fc 0133 adds r3, r3, #1 2068 00fe 6362 str r3, [r4, #36] 1196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 2069 .loc 1 1196 7 is_stmt 1 view .LVU672 1196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 2070 .loc 1 1196 11 is_stmt 0 view .LVU673 2071 0100 638D ldrh r3, [r4, #42] 2072 0102 9BB2 uxth r3, r3 1196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 2073 .loc 1 1196 22 view .LVU674 2074 0104 013B subs r3, r3, #1 2075 0106 9BB2 uxth r3, r3 2076 0108 6385 strh r3, [r4, #42] @ movhi 1197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2077 .loc 1 1197 7 is_stmt 1 view .LVU675 1197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2078 .loc 1 1197 11 is_stmt 0 view .LVU676 2079 010a 238D ldrh r3, [r4, #40] 1197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2080 .loc 1 1197 21 view .LVU677 2081 010c 013B subs r3, r3, #1 2082 010e 9BB2 uxth r3, r3 2083 0110 2385 strh r3, [r4, #40] @ movhi 1199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2084 .loc 1 1199 7 is_stmt 1 view .LVU678 1199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2085 .loc 1 1199 16 is_stmt 0 view .LVU679 2086 0112 628D ldrh r2, [r4, #42] 2087 0114 92B2 uxth r2, r2 1199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2088 .loc 1 1199 10 view .LVU680 2089 0116 002A cmp r2, #0 2090 0118 E0D0 beq .L159 1199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2091 .loc 1 1199 35 discriminator 1 view .LVU681 2092 011a 002B cmp r3, #0 2093 011c DED1 bne .L159 1202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2094 .loc 1 1202 9 is_stmt 1 view .LVU682 1202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2095 .loc 1 1202 13 is_stmt 0 view .LVU683 2096 011e 0095 str r5, [sp] 2097 0120 3346 mov r3, r6 2098 0122 0022 movs r2, #0 2099 0124 8021 movs r1, #128 2100 0126 2046 mov r0, r4 2101 0128 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2102 .LVL146: 1202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2103 .loc 1 1202 12 view .LVU684 2104 012c A0BB cbnz r0, .L167 ARM GAS /tmp/cchwqEfL.s page 180 1207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2105 .loc 1 1207 9 is_stmt 1 view .LVU685 1207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2106 .loc 1 1207 17 is_stmt 0 view .LVU686 2107 012e 638D ldrh r3, [r4, #42] 2108 0130 9BB2 uxth r3, r3 1207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2109 .loc 1 1207 12 view .LVU687 2110 0132 FF2B cmp r3, #255 2111 0134 C6D9 bls .L161 1209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2112 .loc 1 1209 11 is_stmt 1 view .LVU688 1209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2113 .loc 1 1209 26 is_stmt 0 view .LVU689 2114 0136 FF22 movs r2, #255 2115 0138 2285 strh r2, [r4, #40] @ movhi 1210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2116 .loc 1 1210 11 is_stmt 1 view .LVU690 2117 013a 0023 movs r3, #0 2118 013c 0093 str r3, [sp] 2119 013e 4FF08073 mov r3, #16777216 2120 0142 3946 mov r1, r7 2121 0144 2046 mov r0, r4 2122 0146 FFF7FEFF bl I2C_TransferConfig 2123 .LVL147: 2124 014a C7E7 b .L159 2125 .L170: 1224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2126 .loc 1 1224 5 view .LVU691 1224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2127 .loc 1 1224 9 is_stmt 0 view .LVU692 2128 014c 2A46 mov r2, r5 2129 014e 3146 mov r1, r6 2130 0150 2046 mov r0, r4 2131 0152 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2132 .LVL148: 1224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2133 .loc 1 1224 8 view .LVU693 2134 0156 08BB cbnz r0, .L168 1230:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2135 .loc 1 1230 5 is_stmt 1 view .LVU694 2136 0158 2368 ldr r3, [r4] 2137 015a 2022 movs r2, #32 2138 015c DA61 str r2, [r3, #28] 1233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2139 .loc 1 1233 5 view .LVU695 2140 015e 2168 ldr r1, [r4] 2141 0160 4B68 ldr r3, [r1, #4] 2142 0162 23F0FF73 bic r3, r3, #33423360 2143 0166 23F48B33 bic r3, r3, #71168 2144 016a 23F4FF73 bic r3, r3, #510 2145 016e 23F00103 bic r3, r3, #1 2146 0172 4B60 str r3, [r1, #4] 1235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2147 .loc 1 1235 5 view .LVU696 1235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2148 .loc 1 1235 17 is_stmt 0 view .LVU697 ARM GAS /tmp/cchwqEfL.s page 181 2149 0174 84F84120 strb r2, [r4, #65] 1236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2150 .loc 1 1236 5 is_stmt 1 view .LVU698 1236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2151 .loc 1 1236 17 is_stmt 0 view .LVU699 2152 0178 0023 movs r3, #0 2153 017a 84F84230 strb r3, [r4, #66] 1239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2154 .loc 1 1239 5 is_stmt 1 view .LVU700 1239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2155 .loc 1 1239 5 view .LVU701 2156 017e 84F84030 strb r3, [r4, #64] 1239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2157 .loc 1 1239 5 view .LVU702 1241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2158 .loc 1 1241 5 view .LVU703 1241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2159 .loc 1 1241 12 is_stmt 0 view .LVU704 2160 0182 00E0 b .L154 2161 .LVL149: 2162 .L163: 1245:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2163 .loc 1 1245 12 view .LVU705 2164 0184 0220 movs r0, #2 2165 .LVL150: 2166 .L154: 1247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2167 .loc 1 1247 1 view .LVU706 2168 0186 02B0 add sp, sp, #8 2169 .LCFI21: 2170 .cfi_remember_state 2171 .cfi_def_cfa_offset 32 2172 @ sp needed 2173 0188 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2174 .LVL151: 2175 .L164: 2176 .LCFI22: 2177 .cfi_restore_state 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2178 .loc 1 1128 5 view .LVU707 2179 018c 0220 movs r0, #2 2180 .LVL152: 1128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2181 .loc 1 1128 5 view .LVU708 2182 018e FAE7 b .L154 2183 .LVL153: 2184 .L165: 1135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2185 .loc 1 1135 14 view .LVU709 2186 0190 0120 movs r0, #1 2187 0192 F8E7 b .L154 2188 .L166: 1188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2189 .loc 1 1188 16 view .LVU710 2190 0194 0120 movs r0, #1 2191 0196 F6E7 b .L154 2192 .L167: ARM GAS /tmp/cchwqEfL.s page 182 1204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2193 .loc 1 1204 18 view .LVU711 2194 0198 0120 movs r0, #1 2195 019a F4E7 b .L154 2196 .L168: 1226:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2197 .loc 1 1226 14 view .LVU712 2198 019c 0120 movs r0, #1 2199 019e F2E7 b .L154 2200 .L172: 2201 .align 2 2202 .L171: 2203 01a0 00200080 .word -2147475456 2204 .cfi_endproc 2205 .LFE145: 2207 .section .text.HAL_I2C_Master_Receive,"ax",%progbits 2208 .align 1 2209 .global HAL_I2C_Master_Receive 2210 .syntax unified 2211 .thumb 2212 .thumb_func 2213 .fpu fpv5-d16 2215 HAL_I2C_Master_Receive: 2216 .LVL154: 2217 .LFB146: 1262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 2218 .loc 1 1262 1 is_stmt 1 view -0 2219 .cfi_startproc 2220 @ args = 4, pretend = 0, frame = 0 2221 @ frame_needed = 0, uses_anonymous_args = 0 1262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 2222 .loc 1 1262 1 is_stmt 0 view .LVU714 2223 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 2224 .LCFI23: 2225 .cfi_def_cfa_offset 32 2226 .cfi_offset 4, -32 2227 .cfi_offset 5, -28 2228 .cfi_offset 6, -24 2229 .cfi_offset 7, -20 2230 .cfi_offset 8, -16 2231 .cfi_offset 9, -12 2232 .cfi_offset 10, -8 2233 .cfi_offset 14, -4 2234 0004 82B0 sub sp, sp, #8 2235 .LCFI24: 2236 .cfi_def_cfa_offset 40 2237 0006 0F46 mov r7, r1 2238 0008 0A9E ldr r6, [sp, #40] 1263:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2239 .loc 1 1263 3 is_stmt 1 view .LVU715 1265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2240 .loc 1 1265 3 view .LVU716 1265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2241 .loc 1 1265 11 is_stmt 0 view .LVU717 2242 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 2243 .LVL155: 1265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/cchwqEfL.s page 183 2244 .loc 1 1265 11 view .LVU718 2245 000e C9B2 uxtb r1, r1 1265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2246 .loc 1 1265 6 view .LVU719 2247 0010 2029 cmp r1, #32 2248 0012 40F0A380 bne .L181 2249 0016 0446 mov r4, r0 2250 0018 9046 mov r8, r2 2251 001a 9946 mov r9, r3 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2252 .loc 1 1268 5 is_stmt 1 view .LVU720 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2253 .loc 1 1268 5 view .LVU721 2254 001c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2255 .LVL156: 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2256 .loc 1 1268 5 is_stmt 0 view .LVU722 2257 0020 012B cmp r3, #1 2258 0022 00F09F80 beq .L182 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2259 .loc 1 1268 5 is_stmt 1 discriminator 2 view .LVU723 2260 0026 4FF0010A mov r10, #1 2261 002a 80F840A0 strb r10, [r0, #64] 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2262 .loc 1 1268 5 discriminator 2 view .LVU724 1271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2263 .loc 1 1271 5 discriminator 2 view .LVU725 1271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2264 .loc 1 1271 17 is_stmt 0 discriminator 2 view .LVU726 2265 002e FFF7FEFF bl HAL_GetTick 2266 .LVL157: 1271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2267 .loc 1 1271 17 discriminator 2 view .LVU727 2268 0032 0546 mov r5, r0 2269 .LVL158: 1273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2270 .loc 1 1273 5 is_stmt 1 discriminator 2 view .LVU728 1273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2271 .loc 1 1273 9 is_stmt 0 discriminator 2 view .LVU729 2272 0034 0090 str r0, [sp] 2273 0036 1923 movs r3, #25 2274 0038 5246 mov r2, r10 2275 003a 4FF40041 mov r1, #32768 2276 003e 2046 mov r0, r4 2277 .LVL159: 1273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2278 .loc 1 1273 9 discriminator 2 view .LVU730 2279 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2280 .LVL160: 1273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2281 .loc 1 1273 8 discriminator 2 view .LVU731 2282 0044 0028 cmp r0, #0 2283 0046 40F08F80 bne .L183 1278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2284 .loc 1 1278 5 is_stmt 1 view .LVU732 1278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2285 .loc 1 1278 21 is_stmt 0 view .LVU733 ARM GAS /tmp/cchwqEfL.s page 184 2286 004a 2223 movs r3, #34 2287 004c 84F84130 strb r3, [r4, #65] 1279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2288 .loc 1 1279 5 is_stmt 1 view .LVU734 1279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2289 .loc 1 1279 21 is_stmt 0 view .LVU735 2290 0050 1023 movs r3, #16 2291 0052 84F84230 strb r3, [r4, #66] 1280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2292 .loc 1 1280 5 is_stmt 1 view .LVU736 1280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2293 .loc 1 1280 21 is_stmt 0 view .LVU737 2294 0056 0023 movs r3, #0 2295 0058 6364 str r3, [r4, #68] 1283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2296 .loc 1 1283 5 is_stmt 1 view .LVU738 1283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2297 .loc 1 1283 21 is_stmt 0 view .LVU739 2298 005a C4F82480 str r8, [r4, #36] 1284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2299 .loc 1 1284 5 is_stmt 1 view .LVU740 1284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2300 .loc 1 1284 21 is_stmt 0 view .LVU741 2301 005e A4F82A90 strh r9, [r4, #42] @ movhi 1285:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2302 .loc 1 1285 5 is_stmt 1 view .LVU742 1285:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2303 .loc 1 1285 21 is_stmt 0 view .LVU743 2304 0062 6363 str r3, [r4, #52] 1289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2305 .loc 1 1289 5 is_stmt 1 view .LVU744 1289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2306 .loc 1 1289 13 is_stmt 0 view .LVU745 2307 0064 638D ldrh r3, [r4, #42] 2308 0066 9BB2 uxth r3, r3 1289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2309 .loc 1 1289 8 view .LVU746 2310 0068 FF2B cmp r3, #255 2311 006a 0BD9 bls .L175 1291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2312 .loc 1 1291 7 is_stmt 1 view .LVU747 1291:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2313 .loc 1 1291 22 is_stmt 0 view .LVU748 2314 006c 5246 mov r2, r10 2315 006e A4F828A0 strh r10, [r4, #40] @ movhi 1292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2316 .loc 1 1292 7 is_stmt 1 view .LVU749 2317 0072 414B ldr r3, .L189 2318 0074 0093 str r3, [sp] 2319 0076 4FF08073 mov r3, #16777216 2320 007a 3946 mov r1, r7 2321 007c 2046 mov r0, r4 2322 007e FFF7FEFF bl I2C_TransferConfig 2323 .LVL161: 2324 0082 18E0 b .L177 2325 .L175: 1297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, ARM GAS /tmp/cchwqEfL.s page 185 2326 .loc 1 1297 7 view .LVU750 1297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2327 .loc 1 1297 28 is_stmt 0 view .LVU751 2328 0084 628D ldrh r2, [r4, #42] 2329 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, 2330 .loc 1 1297 22 view .LVU752 2331 0088 2285 strh r2, [r4, #40] @ movhi 1298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2332 .loc 1 1298 7 is_stmt 1 view .LVU753 2333 008a 3B4B ldr r3, .L189 2334 008c 0093 str r3, [sp] 2335 008e 4FF00073 mov r3, #33554432 2336 0092 D2B2 uxtb r2, r2 2337 0094 3946 mov r1, r7 2338 0096 2046 mov r0, r4 2339 0098 FFF7FEFF bl I2C_TransferConfig 2340 .LVL162: 2341 009c 0BE0 b .L177 2342 .L179: 1335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2343 .loc 1 1335 11 view .LVU754 1335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2344 .loc 1 1335 32 is_stmt 0 view .LVU755 2345 009e 628D ldrh r2, [r4, #42] 2346 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, 2347 .loc 1 1335 26 view .LVU756 2348 00a2 2285 strh r2, [r4, #40] @ movhi 1336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2349 .loc 1 1336 11 is_stmt 1 view .LVU757 2350 00a4 0023 movs r3, #0 2351 00a6 0093 str r3, [sp] 2352 00a8 4FF00073 mov r3, #33554432 2353 00ac D2B2 uxtb r2, r2 2354 00ae 3946 mov r1, r7 2355 00b0 2046 mov r0, r4 2356 00b2 FFF7FEFF bl I2C_TransferConfig 2357 .LVL163: 2358 .L177: 1302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2359 .loc 1 1302 11 view .LVU758 1302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2360 .loc 1 1302 16 is_stmt 0 view .LVU759 2361 00b6 638D ldrh r3, [r4, #42] 2362 00b8 9BB2 uxth r3, r3 1302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2363 .loc 1 1302 11 view .LVU760 2364 00ba 002B cmp r3, #0 2365 00bc 32D0 beq .L188 1305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2366 .loc 1 1305 7 is_stmt 1 view .LVU761 1305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2367 .loc 1 1305 11 is_stmt 0 view .LVU762 2368 00be 2A46 mov r2, r5 2369 00c0 3146 mov r1, r6 2370 00c2 2046 mov r0, r4 ARM GAS /tmp/cchwqEfL.s page 186 2371 00c4 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2372 .LVL164: 1305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2373 .loc 1 1305 10 view .LVU763 2374 00c8 0028 cmp r0, #0 2375 00ca 4FD1 bne .L184 1311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2376 .loc 1 1311 7 is_stmt 1 view .LVU764 1311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2377 .loc 1 1311 38 is_stmt 0 view .LVU765 2378 00cc 2368 ldr r3, [r4] 1311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2379 .loc 1 1311 48 view .LVU766 2380 00ce 5A6A ldr r2, [r3, #36] 1311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2381 .loc 1 1311 12 view .LVU767 2382 00d0 636A ldr r3, [r4, #36] 1311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2383 .loc 1 1311 23 view .LVU768 2384 00d2 1A70 strb r2, [r3] 1314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2385 .loc 1 1314 7 is_stmt 1 view .LVU769 1314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2386 .loc 1 1314 11 is_stmt 0 view .LVU770 2387 00d4 636A ldr r3, [r4, #36] 1314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2388 .loc 1 1314 21 view .LVU771 2389 00d6 0133 adds r3, r3, #1 2390 00d8 6362 str r3, [r4, #36] 1316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 2391 .loc 1 1316 7 is_stmt 1 view .LVU772 1316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 2392 .loc 1 1316 11 is_stmt 0 view .LVU773 2393 00da 228D ldrh r2, [r4, #40] 1316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 2394 .loc 1 1316 21 view .LVU774 2395 00dc 013A subs r2, r2, #1 2396 00de 92B2 uxth r2, r2 2397 00e0 2285 strh r2, [r4, #40] @ movhi 1317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2398 .loc 1 1317 7 is_stmt 1 view .LVU775 1317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2399 .loc 1 1317 11 is_stmt 0 view .LVU776 2400 00e2 638D ldrh r3, [r4, #42] 2401 00e4 9BB2 uxth r3, r3 1317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2402 .loc 1 1317 22 view .LVU777 2403 00e6 013B subs r3, r3, #1 2404 00e8 9BB2 uxth r3, r3 2405 00ea 6385 strh r3, [r4, #42] @ movhi 1319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2406 .loc 1 1319 7 is_stmt 1 view .LVU778 1319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2407 .loc 1 1319 16 is_stmt 0 view .LVU779 2408 00ec 638D ldrh r3, [r4, #42] 2409 00ee 9BB2 uxth r3, r3 1319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/cchwqEfL.s page 187 2410 .loc 1 1319 10 view .LVU780 2411 00f0 002B cmp r3, #0 2412 00f2 E0D0 beq .L177 1319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2413 .loc 1 1319 35 discriminator 1 view .LVU781 2414 00f4 002A cmp r2, #0 2415 00f6 DED1 bne .L177 1322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2416 .loc 1 1322 9 is_stmt 1 view .LVU782 1322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2417 .loc 1 1322 13 is_stmt 0 view .LVU783 2418 00f8 0095 str r5, [sp] 2419 00fa 3346 mov r3, r6 2420 00fc 8021 movs r1, #128 2421 00fe 2046 mov r0, r4 2422 0100 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2423 .LVL165: 1322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2424 .loc 1 1322 12 view .LVU784 2425 0104 A0BB cbnz r0, .L185 1327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2426 .loc 1 1327 9 is_stmt 1 view .LVU785 1327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2427 .loc 1 1327 17 is_stmt 0 view .LVU786 2428 0106 638D ldrh r3, [r4, #42] 2429 0108 9BB2 uxth r3, r3 1327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2430 .loc 1 1327 12 view .LVU787 2431 010a FF2B cmp r3, #255 2432 010c C7D9 bls .L179 1329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2433 .loc 1 1329 11 is_stmt 1 view .LVU788 1329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2434 .loc 1 1329 26 is_stmt 0 view .LVU789 2435 010e FF22 movs r2, #255 2436 0110 2285 strh r2, [r4, #40] @ movhi 1330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2437 .loc 1 1330 11 is_stmt 1 view .LVU790 2438 0112 0023 movs r3, #0 2439 0114 0093 str r3, [sp] 2440 0116 4FF08073 mov r3, #16777216 2441 011a 3946 mov r1, r7 2442 011c 2046 mov r0, r4 2443 011e FFF7FEFF bl I2C_TransferConfig 2444 .LVL166: 2445 0122 C8E7 b .L177 2446 .L188: 1344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2447 .loc 1 1344 5 view .LVU791 1344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2448 .loc 1 1344 9 is_stmt 0 view .LVU792 2449 0124 2A46 mov r2, r5 2450 0126 3146 mov r1, r6 2451 0128 2046 mov r0, r4 2452 012a FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2453 .LVL167: 1344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/cchwqEfL.s page 188 2454 .loc 1 1344 8 view .LVU793 2455 012e 08BB cbnz r0, .L186 1350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2456 .loc 1 1350 5 is_stmt 1 view .LVU794 2457 0130 2368 ldr r3, [r4] 2458 0132 2022 movs r2, #32 2459 0134 DA61 str r2, [r3, #28] 1353:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2460 .loc 1 1353 5 view .LVU795 2461 0136 2168 ldr r1, [r4] 2462 0138 4B68 ldr r3, [r1, #4] 2463 013a 23F0FF73 bic r3, r3, #33423360 2464 013e 23F48B33 bic r3, r3, #71168 2465 0142 23F4FF73 bic r3, r3, #510 2466 0146 23F00103 bic r3, r3, #1 2467 014a 4B60 str r3, [r1, #4] 1355:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2468 .loc 1 1355 5 view .LVU796 1355:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2469 .loc 1 1355 17 is_stmt 0 view .LVU797 2470 014c 84F84120 strb r2, [r4, #65] 1356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2471 .loc 1 1356 5 is_stmt 1 view .LVU798 1356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2472 .loc 1 1356 17 is_stmt 0 view .LVU799 2473 0150 0023 movs r3, #0 2474 0152 84F84230 strb r3, [r4, #66] 1359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2475 .loc 1 1359 5 is_stmt 1 view .LVU800 1359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2476 .loc 1 1359 5 view .LVU801 2477 0156 84F84030 strb r3, [r4, #64] 1359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2478 .loc 1 1359 5 view .LVU802 1361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2479 .loc 1 1361 5 view .LVU803 1361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2480 .loc 1 1361 12 is_stmt 0 view .LVU804 2481 015a 00E0 b .L174 2482 .LVL168: 2483 .L181: 1365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2484 .loc 1 1365 12 view .LVU805 2485 015c 0220 movs r0, #2 2486 .LVL169: 2487 .L174: 1367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2488 .loc 1 1367 1 view .LVU806 2489 015e 02B0 add sp, sp, #8 2490 .LCFI25: 2491 .cfi_remember_state 2492 .cfi_def_cfa_offset 32 2493 @ sp needed 2494 0160 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2495 .LVL170: 2496 .L182: 2497 .LCFI26: ARM GAS /tmp/cchwqEfL.s page 189 2498 .cfi_restore_state 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2499 .loc 1 1268 5 view .LVU807 2500 0164 0220 movs r0, #2 2501 .LVL171: 1268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2502 .loc 1 1268 5 view .LVU808 2503 0166 FAE7 b .L174 2504 .LVL172: 2505 .L183: 1275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2506 .loc 1 1275 14 view .LVU809 2507 0168 0120 movs r0, #1 2508 016a F8E7 b .L174 2509 .L184: 1307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2510 .loc 1 1307 16 view .LVU810 2511 016c 0120 movs r0, #1 2512 016e F6E7 b .L174 2513 .L185: 1324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2514 .loc 1 1324 18 view .LVU811 2515 0170 0120 movs r0, #1 2516 0172 F4E7 b .L174 2517 .L186: 1346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2518 .loc 1 1346 14 view .LVU812 2519 0174 0120 movs r0, #1 2520 0176 F2E7 b .L174 2521 .L190: 2522 .align 2 2523 .L189: 2524 0178 00240080 .word -2147474432 2525 .cfi_endproc 2526 .LFE146: 2528 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits 2529 .align 1 2530 .global HAL_I2C_Slave_Transmit 2531 .syntax unified 2532 .thumb 2533 .thumb_func 2534 .fpu fpv5-d16 2536 HAL_I2C_Slave_Transmit: 2537 .LVL173: 2538 .LFB147: 1380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 2539 .loc 1 1380 1 is_stmt 1 view -0 2540 .cfi_startproc 2541 @ args = 0, pretend = 0, frame = 0 2542 @ frame_needed = 0, uses_anonymous_args = 0 1380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 2543 .loc 1 1380 1 is_stmt 0 view .LVU814 2544 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2545 .LCFI27: 2546 .cfi_def_cfa_offset 24 2547 .cfi_offset 4, -24 2548 .cfi_offset 5, -20 ARM GAS /tmp/cchwqEfL.s page 190 2549 .cfi_offset 6, -16 2550 .cfi_offset 7, -12 2551 .cfi_offset 8, -8 2552 .cfi_offset 14, -4 2553 0004 82B0 sub sp, sp, #8 2554 .LCFI28: 2555 .cfi_def_cfa_offset 32 2556 0006 1D46 mov r5, r3 1381:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t tmpXferCount; 2557 .loc 1 1381 3 is_stmt 1 view .LVU815 1382:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef error; 2558 .loc 1 1382 3 view .LVU816 1383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2559 .loc 1 1383 3 view .LVU817 1385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2560 .loc 1 1385 3 view .LVU818 1385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2561 .loc 1 1385 11 is_stmt 0 view .LVU819 2562 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2563 .LVL174: 1385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2564 .loc 1 1385 11 view .LVU820 2565 000c DBB2 uxtb r3, r3 1385:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2566 .loc 1 1385 6 view .LVU821 2567 000e 202B cmp r3, #32 2568 0010 40F0EA80 bne .L206 2569 0014 0446 mov r4, r0 2570 0016 0F46 mov r7, r1 2571 0018 9046 mov r8, r2 1387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2572 .loc 1 1387 5 is_stmt 1 view .LVU822 1387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2573 .loc 1 1387 8 is_stmt 0 view .LVU823 2574 001a 002A cmp r2, #0 2575 001c 18BF it ne 2576 001e 0029 cmpne r1, #0 2577 0020 55D0 beq .L209 1393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2578 .loc 1 1393 5 is_stmt 1 view .LVU824 1393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2579 .loc 1 1393 5 view .LVU825 2580 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2581 0026 012B cmp r3, #1 2582 0028 00F0E280 beq .L207 1393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2583 .loc 1 1393 5 discriminator 2 view .LVU826 2584 002c 0123 movs r3, #1 2585 002e 80F84030 strb r3, [r0, #64] 1393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2586 .loc 1 1393 5 discriminator 2 view .LVU827 1396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2587 .loc 1 1396 5 discriminator 2 view .LVU828 1396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2588 .loc 1 1396 17 is_stmt 0 discriminator 2 view .LVU829 2589 0032 FFF7FEFF bl HAL_GetTick 2590 .LVL175: ARM GAS /tmp/cchwqEfL.s page 191 1396:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2591 .loc 1 1396 17 discriminator 2 view .LVU830 2592 0036 0646 mov r6, r0 2593 .LVL176: 1398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2594 .loc 1 1398 5 is_stmt 1 discriminator 2 view .LVU831 1398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2595 .loc 1 1398 21 is_stmt 0 discriminator 2 view .LVU832 2596 0038 2123 movs r3, #33 2597 003a 84F84130 strb r3, [r4, #65] 1399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2598 .loc 1 1399 5 is_stmt 1 discriminator 2 view .LVU833 1399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2599 .loc 1 1399 21 is_stmt 0 discriminator 2 view .LVU834 2600 003e 2023 movs r3, #32 2601 0040 84F84230 strb r3, [r4, #66] 1400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2602 .loc 1 1400 5 is_stmt 1 discriminator 2 view .LVU835 1400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2603 .loc 1 1400 21 is_stmt 0 discriminator 2 view .LVU836 2604 0044 0023 movs r3, #0 2605 0046 6364 str r3, [r4, #68] 1403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2606 .loc 1 1403 5 is_stmt 1 discriminator 2 view .LVU837 1403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 2607 .loc 1 1403 21 is_stmt 0 discriminator 2 view .LVU838 2608 0048 6762 str r7, [r4, #36] 1404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2609 .loc 1 1404 5 is_stmt 1 discriminator 2 view .LVU839 1404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2610 .loc 1 1404 21 is_stmt 0 discriminator 2 view .LVU840 2611 004a A4F82A80 strh r8, [r4, #42] @ movhi 1405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2612 .loc 1 1405 5 is_stmt 1 discriminator 2 view .LVU841 1405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2613 .loc 1 1405 21 is_stmt 0 discriminator 2 view .LVU842 2614 004e 6363 str r3, [r4, #52] 1408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2615 .loc 1 1408 5 is_stmt 1 discriminator 2 view .LVU843 1408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2616 .loc 1 1408 9 is_stmt 0 discriminator 2 view .LVU844 2617 0050 2268 ldr r2, [r4] 1408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2618 .loc 1 1408 25 discriminator 2 view .LVU845 2619 0052 5368 ldr r3, [r2, #4] 2620 0054 23F40043 bic r3, r3, #32768 2621 0058 5360 str r3, [r2, #4] 1411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2622 .loc 1 1411 5 is_stmt 1 discriminator 2 view .LVU846 1411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2623 .loc 1 1411 19 is_stmt 0 discriminator 2 view .LVU847 2624 005a 236A ldr r3, [r4, #32] 1411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2625 .loc 1 1411 8 discriminator 2 view .LVU848 2626 005c B3F5003F cmp r3, #131072 2627 0060 3AD0 beq .L210 2628 .L194: ARM GAS /tmp/cchwqEfL.s page 192 1424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2629 .loc 1 1424 5 is_stmt 1 view .LVU849 1424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2630 .loc 1 1424 9 is_stmt 0 view .LVU850 2631 0062 0096 str r6, [sp] 2632 0064 2B46 mov r3, r5 2633 0066 0022 movs r2, #0 2634 0068 0821 movs r1, #8 2635 006a 2046 mov r0, r4 2636 .LVL177: 1424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2637 .loc 1 1424 9 view .LVU851 2638 006c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2639 .LVL178: 1424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2640 .loc 1 1424 8 view .LVU852 2641 0070 0028 cmp r0, #0 2642 0072 3ED1 bne .L211 1436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2643 .loc 1 1436 5 is_stmt 1 view .LVU853 2644 0074 2368 ldr r3, [r4] 2645 0076 0822 movs r2, #8 2646 0078 DA61 str r2, [r3, #28] 1439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2647 .loc 1 1439 5 view .LVU854 1439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2648 .loc 1 1439 19 is_stmt 0 view .LVU855 2649 007a E368 ldr r3, [r4, #12] 1439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2650 .loc 1 1439 8 view .LVU856 2651 007c 022B cmp r3, #2 2652 007e 42D0 beq .L212 2653 .L196: 1458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2654 .loc 1 1458 5 is_stmt 1 view .LVU857 1458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2655 .loc 1 1458 9 is_stmt 0 view .LVU858 2656 0080 0096 str r6, [sp] 2657 0082 2B46 mov r3, r5 2658 0084 0022 movs r2, #0 2659 0086 4FF48031 mov r1, #65536 2660 008a 2046 mov r0, r4 2661 008c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2662 .LVL179: 1458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2663 .loc 1 1458 8 view .LVU859 2664 0090 0028 cmp r0, #0 2665 0092 4ED1 bne .L213 2666 .L198: 1469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2667 .loc 1 1469 11 is_stmt 1 view .LVU860 1469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2668 .loc 1 1469 16 is_stmt 0 view .LVU861 2669 0094 628D ldrh r2, [r4, #42] 2670 0096 92B2 uxth r2, r2 1469:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2671 .loc 1 1469 11 view .LVU862 ARM GAS /tmp/cchwqEfL.s page 193 2672 0098 002A cmp r2, #0 2673 009a 5BD0 beq .L214 1472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2674 .loc 1 1472 7 is_stmt 1 view .LVU863 1472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2675 .loc 1 1472 11 is_stmt 0 view .LVU864 2676 009c 3246 mov r2, r6 2677 009e 2946 mov r1, r5 2678 00a0 2046 mov r0, r4 2679 00a2 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2680 .LVL180: 1472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2681 .loc 1 1472 10 view .LVU865 2682 00a6 0028 cmp r0, #0 2683 00a8 4DD1 bne .L215 1480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2684 .loc 1 1480 7 is_stmt 1 view .LVU866 1480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2685 .loc 1 1480 35 is_stmt 0 view .LVU867 2686 00aa 626A ldr r2, [r4, #36] 1480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2687 .loc 1 1480 11 view .LVU868 2688 00ac 2368 ldr r3, [r4] 1480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2689 .loc 1 1480 30 view .LVU869 2690 00ae 1278 ldrb r2, [r2] @ zero_extendqisi2 1480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2691 .loc 1 1480 28 view .LVU870 2692 00b0 9A62 str r2, [r3, #40] 1483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2693 .loc 1 1483 7 is_stmt 1 view .LVU871 1483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2694 .loc 1 1483 11 is_stmt 0 view .LVU872 2695 00b2 636A ldr r3, [r4, #36] 1483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2696 .loc 1 1483 21 view .LVU873 2697 00b4 0133 adds r3, r3, #1 2698 00b6 6362 str r3, [r4, #36] 1485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2699 .loc 1 1485 7 is_stmt 1 view .LVU874 1485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2700 .loc 1 1485 11 is_stmt 0 view .LVU875 2701 00b8 B4F82AC0 ldrh ip, [r4, #42] 2702 00bc 1FFA8CFC uxth ip, ip 1485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2703 .loc 1 1485 22 view .LVU876 2704 00c0 0CF1FF3C add ip, ip, #-1 2705 00c4 1FFA8CFC uxth ip, ip 2706 00c8 A4F82AC0 strh ip, [r4, #42] @ movhi 2707 00cc E2E7 b .L198 2708 .LVL181: 2709 .L209: 1389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2710 .loc 1 1389 7 is_stmt 1 view .LVU877 1389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2711 .loc 1 1389 23 is_stmt 0 view .LVU878 2712 00ce 4FF40073 mov r3, #512 ARM GAS /tmp/cchwqEfL.s page 194 2713 00d2 4364 str r3, [r0, #68] 1390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2714 .loc 1 1390 7 is_stmt 1 view .LVU879 1390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2715 .loc 1 1390 15 is_stmt 0 view .LVU880 2716 00d4 0120 movs r0, #1 2717 .LVL182: 1390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2718 .loc 1 1390 15 view .LVU881 2719 00d6 88E0 b .L192 2720 .LVL183: 2721 .L210: 1415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2722 .loc 1 1415 7 is_stmt 1 view .LVU882 1415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2723 .loc 1 1415 35 is_stmt 0 view .LVU883 2724 00d8 626A ldr r2, [r4, #36] 1415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2725 .loc 1 1415 11 view .LVU884 2726 00da 2368 ldr r3, [r4] 1415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2727 .loc 1 1415 30 view .LVU885 2728 00dc 1278 ldrb r2, [r2] @ zero_extendqisi2 1415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2729 .loc 1 1415 28 view .LVU886 2730 00de 9A62 str r2, [r3, #40] 1418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2731 .loc 1 1418 7 is_stmt 1 view .LVU887 1418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2732 .loc 1 1418 11 is_stmt 0 view .LVU888 2733 00e0 636A ldr r3, [r4, #36] 1418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2734 .loc 1 1418 21 view .LVU889 2735 00e2 0133 adds r3, r3, #1 2736 00e4 6362 str r3, [r4, #36] 1420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2737 .loc 1 1420 7 is_stmt 1 view .LVU890 1420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2738 .loc 1 1420 11 is_stmt 0 view .LVU891 2739 00e6 638D ldrh r3, [r4, #42] 2740 00e8 9BB2 uxth r3, r3 1420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2741 .loc 1 1420 22 view .LVU892 2742 00ea 013B subs r3, r3, #1 2743 00ec 9BB2 uxth r3, r3 2744 00ee 6385 strh r3, [r4, #42] @ movhi 2745 00f0 B7E7 b .L194 2746 .LVL184: 2747 .L211: 1427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2748 .loc 1 1427 7 is_stmt 1 view .LVU893 1427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2749 .loc 1 1427 11 is_stmt 0 view .LVU894 2750 00f2 2268 ldr r2, [r4] 1427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2751 .loc 1 1427 27 view .LVU895 2752 00f4 5368 ldr r3, [r2, #4] ARM GAS /tmp/cchwqEfL.s page 195 2753 00f6 43F40043 orr r3, r3, #32768 2754 00fa 5360 str r3, [r2, #4] 1430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2755 .loc 1 1430 7 is_stmt 1 view .LVU896 2756 00fc 2046 mov r0, r4 2757 00fe FFF7FEFF bl I2C_Flush_TXDR 2758 .LVL185: 1432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2759 .loc 1 1432 7 view .LVU897 1432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2760 .loc 1 1432 14 is_stmt 0 view .LVU898 2761 0102 0120 movs r0, #1 2762 0104 71E0 b .L192 2763 .L212: 1442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2764 .loc 1 1442 7 is_stmt 1 view .LVU899 1442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2765 .loc 1 1442 11 is_stmt 0 view .LVU900 2766 0106 0096 str r6, [sp] 2767 0108 2B46 mov r3, r5 2768 010a 0022 movs r2, #0 2769 010c 0821 movs r1, #8 2770 010e 2046 mov r0, r4 2771 0110 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2772 .LVL186: 1442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2773 .loc 1 1442 10 view .LVU901 2774 0114 18B9 cbnz r0, .L216 1454:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2775 .loc 1 1454 7 is_stmt 1 view .LVU902 2776 0116 2368 ldr r3, [r4] 2777 0118 0822 movs r2, #8 2778 011a DA61 str r2, [r3, #28] 2779 011c B0E7 b .L196 2780 .L216: 1445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2781 .loc 1 1445 9 view .LVU903 1445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2782 .loc 1 1445 13 is_stmt 0 view .LVU904 2783 011e 2268 ldr r2, [r4] 1445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2784 .loc 1 1445 29 view .LVU905 2785 0120 5368 ldr r3, [r2, #4] 2786 0122 43F40043 orr r3, r3, #32768 2787 0126 5360 str r3, [r2, #4] 1448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2788 .loc 1 1448 9 is_stmt 1 view .LVU906 2789 0128 2046 mov r0, r4 2790 012a FFF7FEFF bl I2C_Flush_TXDR 2791 .LVL187: 1450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2792 .loc 1 1450 9 view .LVU907 1450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2793 .loc 1 1450 16 is_stmt 0 view .LVU908 2794 012e 0120 movs r0, #1 2795 0130 5BE0 b .L192 2796 .L213: ARM GAS /tmp/cchwqEfL.s page 196 1461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2797 .loc 1 1461 7 is_stmt 1 view .LVU909 1461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2798 .loc 1 1461 11 is_stmt 0 view .LVU910 2799 0132 2268 ldr r2, [r4] 1461:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2800 .loc 1 1461 27 view .LVU911 2801 0134 5368 ldr r3, [r2, #4] 2802 0136 43F40043 orr r3, r3, #32768 2803 013a 5360 str r3, [r2, #4] 1464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2804 .loc 1 1464 7 is_stmt 1 view .LVU912 2805 013c 2046 mov r0, r4 2806 013e FFF7FEFF bl I2C_Flush_TXDR 2807 .LVL188: 1466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2808 .loc 1 1466 7 view .LVU913 1466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2809 .loc 1 1466 14 is_stmt 0 view .LVU914 2810 0142 0120 movs r0, #1 2811 0144 51E0 b .L192 2812 .L215: 1475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2813 .loc 1 1475 9 is_stmt 1 view .LVU915 1475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2814 .loc 1 1475 13 is_stmt 0 view .LVU916 2815 0146 2268 ldr r2, [r4] 1475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2816 .loc 1 1475 29 view .LVU917 2817 0148 5368 ldr r3, [r2, #4] 2818 014a 43F40043 orr r3, r3, #32768 2819 014e 5360 str r3, [r2, #4] 1476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2820 .loc 1 1476 9 is_stmt 1 view .LVU918 1476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2821 .loc 1 1476 16 is_stmt 0 view .LVU919 2822 0150 0120 movs r0, #1 2823 0152 4AE0 b .L192 2824 .L214: 1489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2825 .loc 1 1489 5 is_stmt 1 view .LVU920 1489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2826 .loc 1 1489 13 is_stmt 0 view .LVU921 2827 0154 0096 str r6, [sp] 2828 0156 2B46 mov r3, r5 2829 0158 1021 movs r1, #16 2830 015a 2046 mov r0, r4 2831 015c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2832 .LVL189: 1491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2833 .loc 1 1491 5 is_stmt 1 view .LVU922 1491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2834 .loc 1 1491 8 is_stmt 0 view .LVU923 2835 0160 E8B1 cbz r0, .L201 1497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 2836 .loc 1 1497 7 is_stmt 1 view .LVU924 1497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) ARM GAS /tmp/cchwqEfL.s page 197 2837 .loc 1 1497 20 is_stmt 0 view .LVU925 2838 0162 638D ldrh r3, [r4, #42] 2839 0164 9BB2 uxth r3, r3 2840 .LVL190: 1498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2841 .loc 1 1498 7 is_stmt 1 view .LVU926 1498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2842 .loc 1 1498 16 is_stmt 0 view .LVU927 2843 0166 626C ldr r2, [r4, #68] 1498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2844 .loc 1 1498 10 view .LVU928 2845 0168 042A cmp r2, #4 2846 016a 11D1 bne .L202 1498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2847 .loc 1 1498 49 discriminator 1 view .LVU929 2848 016c 83B9 cbnz r3, .L202 1501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2849 .loc 1 1501 9 is_stmt 1 view .LVU930 1501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2850 .loc 1 1501 25 is_stmt 0 view .LVU931 2851 016e 6364 str r3, [r4, #68] 2852 .LVL191: 2853 .L203: 1532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2854 .loc 1 1532 5 is_stmt 1 view .LVU932 1532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2855 .loc 1 1532 9 is_stmt 0 view .LVU933 2856 0170 0096 str r6, [sp] 2857 0172 2B46 mov r3, r5 2858 0174 0122 movs r2, #1 2859 0176 4FF40041 mov r1, #32768 2860 017a 2046 mov r0, r4 2861 017c FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2862 .LVL192: 1532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2863 .loc 1 1532 8 view .LVU934 2864 0180 20B3 cbz r0, .L205 1535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2865 .loc 1 1535 7 is_stmt 1 view .LVU935 1535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2866 .loc 1 1535 11 is_stmt 0 view .LVU936 2867 0182 2268 ldr r2, [r4] 1535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2868 .loc 1 1535 27 view .LVU937 2869 0184 5368 ldr r3, [r2, #4] 2870 0186 43F40043 orr r3, r3, #32768 2871 018a 5360 str r3, [r2, #4] 1536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2872 .loc 1 1536 7 is_stmt 1 view .LVU938 1536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2873 .loc 1 1536 14 is_stmt 0 view .LVU939 2874 018c 0120 movs r0, #1 2875 018e 2CE0 b .L192 2876 .LVL193: 2877 .L202: 1506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2878 .loc 1 1506 9 is_stmt 1 view .LVU940 ARM GAS /tmp/cchwqEfL.s page 198 1506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2879 .loc 1 1506 13 is_stmt 0 view .LVU941 2880 0190 2268 ldr r2, [r4] 1506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2881 .loc 1 1506 29 view .LVU942 2882 0192 5368 ldr r3, [r2, #4] 2883 .LVL194: 1506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 2884 .loc 1 1506 29 view .LVU943 2885 0194 43F40043 orr r3, r3, #32768 2886 0198 5360 str r3, [r2, #4] 1507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2887 .loc 1 1507 9 is_stmt 1 view .LVU944 1507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2888 .loc 1 1507 16 is_stmt 0 view .LVU945 2889 019a 0120 movs r0, #1 2890 .LVL195: 1507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2891 .loc 1 1507 16 view .LVU946 2892 019c 25E0 b .L192 2893 .LVL196: 2894 .L201: 1513:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2895 .loc 1 1513 7 is_stmt 1 view .LVU947 2896 019e 2046 mov r0, r4 2897 .LVL197: 1513:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2898 .loc 1 1513 7 is_stmt 0 view .LVU948 2899 01a0 FFF7FEFF bl I2C_Flush_TXDR 2900 .LVL198: 1516:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2901 .loc 1 1516 7 is_stmt 1 view .LVU949 2902 01a4 2368 ldr r3, [r4] 2903 01a6 1022 movs r2, #16 2904 01a8 DA61 str r2, [r3, #28] 1519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2905 .loc 1 1519 7 view .LVU950 1519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2906 .loc 1 1519 11 is_stmt 0 view .LVU951 2907 01aa 3246 mov r2, r6 2908 01ac 2946 mov r1, r5 2909 01ae 2046 mov r0, r4 2910 01b0 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2911 .LVL199: 1519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 2912 .loc 1 1519 10 view .LVU952 2913 01b4 18B9 cbnz r0, .L217 1528:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2914 .loc 1 1528 7 is_stmt 1 view .LVU953 2915 01b6 2368 ldr r3, [r4] 2916 01b8 2022 movs r2, #32 2917 01ba DA61 str r2, [r3, #28] 2918 01bc D8E7 b .L203 2919 .L217: 1522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2920 .loc 1 1522 9 view .LVU954 1522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 199 2921 .loc 1 1522 13 is_stmt 0 view .LVU955 2922 01be 2268 ldr r2, [r4] 1522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2923 .loc 1 1522 29 view .LVU956 2924 01c0 5368 ldr r3, [r2, #4] 2925 01c2 43F40043 orr r3, r3, #32768 2926 01c6 5360 str r3, [r2, #4] 1524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2927 .loc 1 1524 9 is_stmt 1 view .LVU957 1524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2928 .loc 1 1524 16 is_stmt 0 view .LVU958 2929 01c8 0120 movs r0, #1 2930 01ca 0EE0 b .L192 2931 .L205: 1540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2932 .loc 1 1540 5 is_stmt 1 view .LVU959 1540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2933 .loc 1 1540 9 is_stmt 0 view .LVU960 2934 01cc 2268 ldr r2, [r4] 1540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2935 .loc 1 1540 25 view .LVU961 2936 01ce 5368 ldr r3, [r2, #4] 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 .LVU962 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 .LVU963 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 .LVU964 1543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2944 .loc 1 1543 17 is_stmt 0 view .LVU965 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 .LVU966 1546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2948 .loc 1 1546 5 view .LVU967 2949 01e2 84F84030 strb r3, [r4, #64] 1546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2950 .loc 1 1546 5 view .LVU968 1548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2951 .loc 1 1548 5 view .LVU969 1548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2952 .loc 1 1548 12 is_stmt 0 view .LVU970 2953 01e6 00E0 b .L192 2954 .LVL200: 2955 .L206: 1552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 2956 .loc 1 1552 12 view .LVU971 2957 01e8 0220 movs r0, #2 2958 .LVL201: 2959 .L192: 1554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2960 .loc 1 1554 1 view .LVU972 ARM GAS /tmp/cchwqEfL.s page 200 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 .L207: 2969 .LCFI30: 2970 .cfi_restore_state 1393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2971 .loc 1 1393 5 view .LVU973 2972 01f0 0220 movs r0, #2 2973 .LVL203: 1393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 2974 .loc 1 1393 5 view .LVU974 2975 01f2 FAE7 b .L192 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 2985 .fpu fpv5-d16 2987 HAL_I2C_Slave_Receive: 2988 .LVL204: 2989 .LFB148: 1567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 2990 .loc 1 1567 1 is_stmt 1 view -0 2991 .cfi_startproc 2992 @ args = 0, pretend = 0, frame = 0 2993 @ frame_needed = 0, uses_anonymous_args = 0 1567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 2994 .loc 1 1567 1 is_stmt 0 view .LVU976 2995 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2996 .LCFI31: 2997 .cfi_def_cfa_offset 24 2998 .cfi_offset 4, -24 2999 .cfi_offset 5, -20 3000 .cfi_offset 6, -16 3001 .cfi_offset 7, -12 3002 .cfi_offset 8, -8 3003 .cfi_offset 14, -4 3004 0004 82B0 sub sp, sp, #8 3005 .LCFI32: 3006 .cfi_def_cfa_offset 32 3007 0006 1D46 mov r5, r3 1568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3008 .loc 1 1568 3 is_stmt 1 view .LVU977 1570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3009 .loc 1 1570 3 view .LVU978 1570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3010 .loc 1 1570 11 is_stmt 0 view .LVU979 3011 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3012 .LVL205: ARM GAS /tmp/cchwqEfL.s page 201 1570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3013 .loc 1 1570 11 view .LVU980 3014 000c DBB2 uxtb r3, r3 1570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3015 .loc 1 1570 6 view .LVU981 3016 000e 202B cmp r3, #32 3017 0010 40F0B280 bne .L228 3018 0014 0446 mov r4, r0 3019 0016 0F46 mov r7, r1 3020 0018 9046 mov r8, r2 1572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3021 .loc 1 1572 5 is_stmt 1 view .LVU982 1572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3022 .loc 1 1572 8 is_stmt 0 view .LVU983 3023 001a 002A cmp r2, #0 3024 001c 18BF it ne 3025 001e 0029 cmpne r1, #0 3026 0020 2BD0 beq .L231 1578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3027 .loc 1 1578 5 is_stmt 1 view .LVU984 1578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3028 .loc 1 1578 5 view .LVU985 3029 0022 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3030 0026 012B cmp r3, #1 3031 0028 00F0AA80 beq .L229 1578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3032 .loc 1 1578 5 discriminator 2 view .LVU986 3033 002c 0123 movs r3, #1 3034 002e 80F84030 strb r3, [r0, #64] 1578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3035 .loc 1 1578 5 discriminator 2 view .LVU987 1581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3036 .loc 1 1581 5 discriminator 2 view .LVU988 1581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3037 .loc 1 1581 17 is_stmt 0 discriminator 2 view .LVU989 3038 0032 FFF7FEFF bl HAL_GetTick 3039 .LVL206: 1581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3040 .loc 1 1581 17 discriminator 2 view .LVU990 3041 0036 0646 mov r6, r0 3042 .LVL207: 1583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3043 .loc 1 1583 5 is_stmt 1 discriminator 2 view .LVU991 1583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3044 .loc 1 1583 21 is_stmt 0 discriminator 2 view .LVU992 3045 0038 2223 movs r3, #34 3046 003a 84F84130 strb r3, [r4, #65] 1584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3047 .loc 1 1584 5 is_stmt 1 discriminator 2 view .LVU993 1584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3048 .loc 1 1584 21 is_stmt 0 discriminator 2 view .LVU994 3049 003e 2023 movs r3, #32 3050 0040 84F84230 strb r3, [r4, #66] 1585:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3051 .loc 1 1585 5 is_stmt 1 discriminator 2 view .LVU995 1585:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3052 .loc 1 1585 21 is_stmt 0 discriminator 2 view .LVU996 ARM GAS /tmp/cchwqEfL.s page 202 3053 0044 0022 movs r2, #0 3054 0046 6264 str r2, [r4, #68] 1588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3055 .loc 1 1588 5 is_stmt 1 discriminator 2 view .LVU997 1588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3056 .loc 1 1588 21 is_stmt 0 discriminator 2 view .LVU998 3057 0048 6762 str r7, [r4, #36] 1589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3058 .loc 1 1589 5 is_stmt 1 discriminator 2 view .LVU999 1589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3059 .loc 1 1589 21 is_stmt 0 discriminator 2 view .LVU1000 3060 004a A4F82A80 strh r8, [r4, #42] @ movhi 1590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 3061 .loc 1 1590 5 is_stmt 1 discriminator 2 view .LVU1001 1590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 3062 .loc 1 1590 26 is_stmt 0 discriminator 2 view .LVU1002 3063 004e 638D ldrh r3, [r4, #42] 1590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 3064 .loc 1 1590 20 discriminator 2 view .LVU1003 3065 0050 2385 strh r3, [r4, #40] @ movhi 1591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3066 .loc 1 1591 5 is_stmt 1 discriminator 2 view .LVU1004 1591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3067 .loc 1 1591 21 is_stmt 0 discriminator 2 view .LVU1005 3068 0052 6263 str r2, [r4, #52] 1594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3069 .loc 1 1594 5 is_stmt 1 discriminator 2 view .LVU1006 1594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3070 .loc 1 1594 9 is_stmt 0 discriminator 2 view .LVU1007 3071 0054 2168 ldr r1, [r4] 1594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3072 .loc 1 1594 25 discriminator 2 view .LVU1008 3073 0056 4B68 ldr r3, [r1, #4] 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 discriminator 2 view .LVU1009 1597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3077 .loc 1 1597 9 is_stmt 0 discriminator 2 view .LVU1010 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 discriminator 2 view .LVU1011 3084 0066 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3085 .LVL209: 1597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3086 .loc 1 1597 8 discriminator 2 view .LVU1012 3087 006a 58B1 cbz r0, .L221 1600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3088 .loc 1 1600 7 is_stmt 1 view .LVU1013 1600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3089 .loc 1 1600 11 is_stmt 0 view .LVU1014 3090 006c 2268 ldr r2, [r4] 1600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; ARM GAS /tmp/cchwqEfL.s page 203 3091 .loc 1 1600 27 view .LVU1015 3092 006e 5368 ldr r3, [r2, #4] 3093 0070 43F40043 orr r3, r3, #32768 3094 0074 5360 str r3, [r2, #4] 1601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3095 .loc 1 1601 7 is_stmt 1 view .LVU1016 1601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3096 .loc 1 1601 14 is_stmt 0 view .LVU1017 3097 0076 0120 movs r0, #1 3098 0078 7FE0 b .L219 3099 .LVL210: 3100 .L231: 1574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3101 .loc 1 1574 7 is_stmt 1 view .LVU1018 1574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3102 .loc 1 1574 23 is_stmt 0 view .LVU1019 3103 007a 4FF40073 mov r3, #512 3104 007e 4364 str r3, [r0, #68] 1575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3105 .loc 1 1575 7 is_stmt 1 view .LVU1020 1575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3106 .loc 1 1575 15 is_stmt 0 view .LVU1021 3107 0080 0120 movs r0, #1 3108 .LVL211: 1575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3109 .loc 1 1575 15 view .LVU1022 3110 0082 7AE0 b .L219 3111 .LVL212: 3112 .L221: 1605:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3113 .loc 1 1605 5 is_stmt 1 view .LVU1023 3114 0084 2368 ldr r3, [r4] 3115 0086 0822 movs r2, #8 3116 0088 DA61 str r2, [r3, #28] 1608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3117 .loc 1 1608 5 view .LVU1024 1608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3118 .loc 1 1608 9 is_stmt 0 view .LVU1025 3119 008a 0096 str r6, [sp] 3120 008c 2B46 mov r3, r5 3121 008e 0122 movs r2, #1 3122 0090 4FF48031 mov r1, #65536 3123 0094 2046 mov r0, r4 3124 0096 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3125 .LVL213: 1608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3126 .loc 1 1608 8 view .LVU1026 3127 009a F0B9 cbnz r0, .L232 3128 .L222: 1615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3129 .loc 1 1615 11 is_stmt 1 view .LVU1027 1615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3130 .loc 1 1615 16 is_stmt 0 view .LVU1028 3131 009c 638D ldrh r3, [r4, #42] 3132 009e 9BB2 uxth r3, r3 1615:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3133 .loc 1 1615 11 view .LVU1029 ARM GAS /tmp/cchwqEfL.s page 204 3134 00a0 002B cmp r3, #0 3135 00a2 3BD0 beq .L233 1618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3136 .loc 1 1618 7 is_stmt 1 view .LVU1030 1618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3137 .loc 1 1618 11 is_stmt 0 view .LVU1031 3138 00a4 3246 mov r2, r6 3139 00a6 2946 mov r1, r5 3140 00a8 2046 mov r0, r4 3141 00aa FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 3142 .LVL214: 1618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3143 .loc 1 1618 10 view .LVU1032 3144 00ae D8B9 cbnz r0, .L234 1640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3145 .loc 1 1640 7 is_stmt 1 view .LVU1033 1640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3146 .loc 1 1640 38 is_stmt 0 view .LVU1034 3147 00b0 2368 ldr r3, [r4] 1640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3148 .loc 1 1640 48 view .LVU1035 3149 00b2 5A6A ldr r2, [r3, #36] 1640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3150 .loc 1 1640 12 view .LVU1036 3151 00b4 636A ldr r3, [r4, #36] 1640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3152 .loc 1 1640 23 view .LVU1037 3153 00b6 1A70 strb r2, [r3] 1643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3154 .loc 1 1643 7 is_stmt 1 view .LVU1038 1643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3155 .loc 1 1643 11 is_stmt 0 view .LVU1039 3156 00b8 636A ldr r3, [r4, #36] 1643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3157 .loc 1 1643 21 view .LVU1040 3158 00ba 0133 adds r3, r3, #1 3159 00bc 6362 str r3, [r4, #36] 1645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3160 .loc 1 1645 7 is_stmt 1 view .LVU1041 1645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3161 .loc 1 1645 11 is_stmt 0 view .LVU1042 3162 00be B4F82AC0 ldrh ip, [r4, #42] 3163 00c2 1FFA8CFC uxth ip, ip 1645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3164 .loc 1 1645 22 view .LVU1043 3165 00c6 0CF1FF3C add ip, ip, #-1 3166 00ca 1FFA8CFC uxth ip, ip 3167 00ce A4F82AC0 strh ip, [r4, #42] @ movhi 1646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3168 .loc 1 1646 7 is_stmt 1 view .LVU1044 1646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3169 .loc 1 1646 11 is_stmt 0 view .LVU1045 3170 00d2 238D ldrh r3, [r4, #40] 1646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3171 .loc 1 1646 21 view .LVU1046 3172 00d4 013B subs r3, r3, #1 3173 00d6 2385 strh r3, [r4, #40] @ movhi ARM GAS /tmp/cchwqEfL.s page 205 3174 00d8 E0E7 b .L222 3175 .L232: 1611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3176 .loc 1 1611 7 is_stmt 1 view .LVU1047 1611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3177 .loc 1 1611 11 is_stmt 0 view .LVU1048 3178 00da 2268 ldr r2, [r4] 1611:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3179 .loc 1 1611 27 view .LVU1049 3180 00dc 5368 ldr r3, [r2, #4] 3181 00de 43F40043 orr r3, r3, #32768 3182 00e2 5360 str r3, [r2, #4] 1612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3183 .loc 1 1612 7 is_stmt 1 view .LVU1050 1612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3184 .loc 1 1612 14 is_stmt 0 view .LVU1051 3185 00e4 0120 movs r0, #1 3186 00e6 48E0 b .L219 3187 .L234: 1621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3188 .loc 1 1621 9 is_stmt 1 view .LVU1052 1621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3189 .loc 1 1621 13 is_stmt 0 view .LVU1053 3190 00e8 2268 ldr r2, [r4] 1621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3191 .loc 1 1621 29 view .LVU1054 3192 00ea 5368 ldr r3, [r2, #4] 3193 00ec 43F40043 orr r3, r3, #32768 3194 00f0 5360 str r3, [r2, #4] 1624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3195 .loc 1 1624 9 is_stmt 1 view .LVU1055 1624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3196 .loc 1 1624 13 is_stmt 0 view .LVU1056 3197 00f2 2368 ldr r3, [r4] 3198 00f4 9A69 ldr r2, [r3, #24] 1624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3199 .loc 1 1624 12 view .LVU1057 3200 00f6 12F0040F tst r2, #4 3201 00fa 0DD0 beq .L224 1627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3202 .loc 1 1627 11 is_stmt 1 view .LVU1058 1627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3203 .loc 1 1627 52 is_stmt 0 view .LVU1059 3204 00fc 5A6A ldr r2, [r3, #36] 1627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3205 .loc 1 1627 16 view .LVU1060 3206 00fe 636A ldr r3, [r4, #36] 1627:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3207 .loc 1 1627 27 view .LVU1061 3208 0100 1A70 strb r2, [r3] 1630:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3209 .loc 1 1630 11 is_stmt 1 view .LVU1062 1630:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3210 .loc 1 1630 15 is_stmt 0 view .LVU1063 3211 0102 636A ldr r3, [r4, #36] 1630:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3212 .loc 1 1630 25 view .LVU1064 ARM GAS /tmp/cchwqEfL.s page 206 3213 0104 0133 adds r3, r3, #1 3214 0106 6362 str r3, [r4, #36] 1632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3215 .loc 1 1632 11 is_stmt 1 view .LVU1065 1632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3216 .loc 1 1632 15 is_stmt 0 view .LVU1066 3217 0108 638D ldrh r3, [r4, #42] 3218 010a 9BB2 uxth r3, r3 1632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3219 .loc 1 1632 26 view .LVU1067 3220 010c 013B subs r3, r3, #1 3221 010e 9BB2 uxth r3, r3 3222 0110 6385 strh r3, [r4, #42] @ movhi 1633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3223 .loc 1 1633 11 is_stmt 1 view .LVU1068 1633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3224 .loc 1 1633 15 is_stmt 0 view .LVU1069 3225 0112 238D ldrh r3, [r4, #40] 1633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3226 .loc 1 1633 25 view .LVU1070 3227 0114 013B subs r3, r3, #1 3228 0116 2385 strh r3, [r4, #40] @ movhi 3229 .L224: 1636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3230 .loc 1 1636 9 is_stmt 1 view .LVU1071 1636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3231 .loc 1 1636 16 is_stmt 0 view .LVU1072 3232 0118 0120 movs r0, #1 3233 011a 2EE0 b .L219 3234 .L233: 1650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3235 .loc 1 1650 5 is_stmt 1 view .LVU1073 1650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3236 .loc 1 1650 9 is_stmt 0 view .LVU1074 3237 011c 3246 mov r2, r6 3238 011e 2946 mov r1, r5 3239 0120 2046 mov r0, r4 3240 0122 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 3241 .LVL215: 1650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3242 .loc 1 1650 8 view .LVU1075 3243 0126 30B1 cbz r0, .L226 1653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3244 .loc 1 1653 7 is_stmt 1 view .LVU1076 1653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3245 .loc 1 1653 11 is_stmt 0 view .LVU1077 3246 0128 2268 ldr r2, [r4] 1653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3247 .loc 1 1653 27 view .LVU1078 3248 012a 5368 ldr r3, [r2, #4] 3249 012c 43F40043 orr r3, r3, #32768 3250 0130 5360 str r3, [r2, #4] 1654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3251 .loc 1 1654 7 is_stmt 1 view .LVU1079 1654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3252 .loc 1 1654 14 is_stmt 0 view .LVU1080 3253 0132 0120 movs r0, #1 ARM GAS /tmp/cchwqEfL.s page 207 3254 0134 21E0 b .L219 3255 .L226: 1658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3256 .loc 1 1658 5 is_stmt 1 view .LVU1081 3257 0136 2368 ldr r3, [r4] 3258 0138 2022 movs r2, #32 3259 013a DA61 str r2, [r3, #28] 1661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3260 .loc 1 1661 5 view .LVU1082 1661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3261 .loc 1 1661 9 is_stmt 0 view .LVU1083 3262 013c 0096 str r6, [sp] 3263 013e 2B46 mov r3, r5 3264 0140 0122 movs r2, #1 3265 0142 4FF40041 mov r1, #32768 3266 0146 2046 mov r0, r4 3267 0148 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3268 .LVL216: 1661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3269 .loc 1 1661 8 view .LVU1084 3270 014c 30B1 cbz r0, .L227 1664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3271 .loc 1 1664 7 is_stmt 1 view .LVU1085 1664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3272 .loc 1 1664 11 is_stmt 0 view .LVU1086 3273 014e 2268 ldr r2, [r4] 1664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 3274 .loc 1 1664 27 view .LVU1087 3275 0150 5368 ldr r3, [r2, #4] 3276 0152 43F40043 orr r3, r3, #32768 3277 0156 5360 str r3, [r2, #4] 1665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3278 .loc 1 1665 7 is_stmt 1 view .LVU1088 1665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3279 .loc 1 1665 14 is_stmt 0 view .LVU1089 3280 0158 0120 movs r0, #1 3281 015a 0EE0 b .L219 3282 .L227: 1669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3283 .loc 1 1669 5 is_stmt 1 view .LVU1090 1669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3284 .loc 1 1669 9 is_stmt 0 view .LVU1091 3285 015c 2268 ldr r2, [r4] 1669:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3286 .loc 1 1669 25 view .LVU1092 3287 015e 5368 ldr r3, [r2, #4] 3288 0160 43F40043 orr r3, r3, #32768 3289 0164 5360 str r3, [r2, #4] 1671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3290 .loc 1 1671 5 is_stmt 1 view .LVU1093 1671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3291 .loc 1 1671 17 is_stmt 0 view .LVU1094 3292 0166 2023 movs r3, #32 3293 0168 84F84130 strb r3, [r4, #65] 1672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3294 .loc 1 1672 5 is_stmt 1 view .LVU1095 1672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 208 3295 .loc 1 1672 17 is_stmt 0 view .LVU1096 3296 016c 0023 movs r3, #0 3297 016e 84F84230 strb r3, [r4, #66] 1675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3298 .loc 1 1675 5 is_stmt 1 view .LVU1097 1675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3299 .loc 1 1675 5 view .LVU1098 3300 0172 84F84030 strb r3, [r4, #64] 1675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3301 .loc 1 1675 5 view .LVU1099 1677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3302 .loc 1 1677 5 view .LVU1100 1677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3303 .loc 1 1677 12 is_stmt 0 view .LVU1101 3304 0176 00E0 b .L219 3305 .LVL217: 3306 .L228: 1681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3307 .loc 1 1681 12 view .LVU1102 3308 0178 0220 movs r0, #2 3309 .LVL218: 3310 .L219: 1683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3311 .loc 1 1683 1 view .LVU1103 3312 017a 02B0 add sp, sp, #8 3313 .LCFI33: 3314 .cfi_remember_state 3315 .cfi_def_cfa_offset 24 3316 @ sp needed 3317 017c BDE8F081 pop {r4, r5, r6, r7, r8, pc} 3318 .LVL219: 3319 .L229: 3320 .LCFI34: 3321 .cfi_restore_state 1578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3322 .loc 1 1578 5 view .LVU1104 3323 0180 0220 movs r0, #2 3324 .LVL220: 1578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3325 .loc 1 1578 5 view .LVU1105 3326 0182 FAE7 b .L219 3327 .cfi_endproc 3328 .LFE148: 3330 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits 3331 .align 1 3332 .global HAL_I2C_Master_Transmit_IT 3333 .syntax unified 3334 .thumb 3335 .thumb_func 3336 .fpu fpv5-d16 3338 HAL_I2C_Master_Transmit_IT: 3339 .LVL221: 3340 .LFB149: 1697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3341 .loc 1 1697 1 is_stmt 1 view -0 3342 .cfi_startproc 3343 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/cchwqEfL.s page 209 3344 @ frame_needed = 0, uses_anonymous_args = 0 1697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3345 .loc 1 1697 1 is_stmt 0 view .LVU1107 3346 0000 30B5 push {r4, r5, lr} 3347 .LCFI35: 3348 .cfi_def_cfa_offset 12 3349 .cfi_offset 4, -12 3350 .cfi_offset 5, -8 3351 .cfi_offset 14, -4 3352 0002 83B0 sub sp, sp, #12 3353 .LCFI36: 3354 .cfi_def_cfa_offset 24 3355 0004 0446 mov r4, r0 1698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3356 .loc 1 1698 3 is_stmt 1 view .LVU1108 1700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3357 .loc 1 1700 3 view .LVU1109 1700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3358 .loc 1 1700 11 is_stmt 0 view .LVU1110 3359 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3360 .LVL222: 1700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3361 .loc 1 1700 11 view .LVU1111 3362 000a C0B2 uxtb r0, r0 1700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3363 .loc 1 1700 6 view .LVU1112 3364 000c 2028 cmp r0, #32 3365 000e 4ED1 bne .L241 1702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3366 .loc 1 1702 5 is_stmt 1 view .LVU1113 1702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3367 .loc 1 1702 9 is_stmt 0 view .LVU1114 3368 0010 2068 ldr r0, [r4] 3369 0012 8569 ldr r5, [r0, #24] 1702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3370 .loc 1 1702 8 view .LVU1115 3371 0014 15F4004F tst r5, #32768 3372 0018 4BD1 bne .L242 1708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3373 .loc 1 1708 5 is_stmt 1 view .LVU1116 1708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3374 .loc 1 1708 5 view .LVU1117 3375 001a 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2 3376 001e 012D cmp r5, #1 3377 0020 49D0 beq .L243 1708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3378 .loc 1 1708 5 discriminator 2 view .LVU1118 3379 0022 0125 movs r5, #1 3380 0024 84F84050 strb r5, [r4, #64] 1708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3381 .loc 1 1708 5 discriminator 2 view .LVU1119 1710:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3382 .loc 1 1710 5 discriminator 2 view .LVU1120 1710:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3383 .loc 1 1710 23 is_stmt 0 discriminator 2 view .LVU1121 3384 0028 2125 movs r5, #33 3385 002a 84F84150 strb r5, [r4, #65] ARM GAS /tmp/cchwqEfL.s page 210 1711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3386 .loc 1 1711 5 is_stmt 1 discriminator 2 view .LVU1122 1711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3387 .loc 1 1711 23 is_stmt 0 discriminator 2 view .LVU1123 3388 002e 1025 movs r5, #16 3389 0030 84F84250 strb r5, [r4, #66] 1712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3390 .loc 1 1712 5 is_stmt 1 discriminator 2 view .LVU1124 1712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3391 .loc 1 1712 23 is_stmt 0 discriminator 2 view .LVU1125 3392 0034 0025 movs r5, #0 3393 0036 6564 str r5, [r4, #68] 1715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3394 .loc 1 1715 5 is_stmt 1 discriminator 2 view .LVU1126 1715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3395 .loc 1 1715 23 is_stmt 0 discriminator 2 view .LVU1127 3396 0038 6262 str r2, [r4, #36] 1716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3397 .loc 1 1716 5 is_stmt 1 discriminator 2 view .LVU1128 1716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3398 .loc 1 1716 23 is_stmt 0 discriminator 2 view .LVU1129 3399 003a 6385 strh r3, [r4, #42] @ movhi 1717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3400 .loc 1 1717 5 is_stmt 1 discriminator 2 view .LVU1130 1717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3401 .loc 1 1717 23 is_stmt 0 discriminator 2 view .LVU1131 3402 003c 1F4B ldr r3, .L245 3403 .LVL223: 1717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3404 .loc 1 1717 23 discriminator 2 view .LVU1132 3405 003e E362 str r3, [r4, #44] 3406 .LVL224: 1718:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3407 .loc 1 1718 5 is_stmt 1 discriminator 2 view .LVU1133 1718:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3408 .loc 1 1718 23 is_stmt 0 discriminator 2 view .LVU1134 3409 0040 1F4B ldr r3, .L245+4 3410 0042 6363 str r3, [r4, #52] 1720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3411 .loc 1 1720 5 is_stmt 1 discriminator 2 view .LVU1135 1720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3412 .loc 1 1720 13 is_stmt 0 discriminator 2 view .LVU1136 3413 0044 638D ldrh r3, [r4, #42] 3414 0046 9BB2 uxth r3, r3 1720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3415 .loc 1 1720 8 discriminator 2 view .LVU1137 3416 0048 FF2B cmp r3, #255 3417 004a 24D9 bls .L237 1722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3418 .loc 1 1722 7 is_stmt 1 view .LVU1138 1722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3419 .loc 1 1722 22 is_stmt 0 view .LVU1139 3420 004c FF23 movs r3, #255 3421 004e 2385 strh r3, [r4, #40] @ movhi 1723:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3422 .loc 1 1723 7 is_stmt 1 view .LVU1140 3423 .LVL225: ARM GAS /tmp/cchwqEfL.s page 211 1723:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3424 .loc 1 1723 16 is_stmt 0 view .LVU1141 3425 0050 4FF08073 mov r3, #16777216 3426 .LVL226: 3427 .L238: 1733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3428 .loc 1 1733 5 is_stmt 1 view .LVU1142 1733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3429 .loc 1 1733 13 is_stmt 0 view .LVU1143 3430 0054 258D ldrh r5, [r4, #40] 1733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3431 .loc 1 1733 8 view .LVU1144 3432 0056 1DB3 cbz r5, .L239 1737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3433 .loc 1 1737 7 is_stmt 1 view .LVU1145 1737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3434 .loc 1 1737 30 is_stmt 0 view .LVU1146 3435 0058 1278 ldrb r2, [r2] @ zero_extendqisi2 3436 .LVL227: 1737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3437 .loc 1 1737 28 view .LVU1147 3438 005a 8262 str r2, [r0, #40] 3439 .LVL228: 1740:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3440 .loc 1 1740 7 is_stmt 1 view .LVU1148 1740:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3441 .loc 1 1740 11 is_stmt 0 view .LVU1149 3442 005c 626A ldr r2, [r4, #36] 1740:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3443 .loc 1 1740 21 view .LVU1150 3444 005e 0132 adds r2, r2, #1 3445 0060 6262 str r2, [r4, #36] 1742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3446 .loc 1 1742 7 is_stmt 1 view .LVU1151 1742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3447 .loc 1 1742 11 is_stmt 0 view .LVU1152 3448 0062 628D ldrh r2, [r4, #42] 3449 0064 92B2 uxth r2, r2 1742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3450 .loc 1 1742 22 view .LVU1153 3451 0066 013A subs r2, r2, #1 3452 0068 92B2 uxth r2, r2 3453 006a 6285 strh r2, [r4, #42] @ movhi 1743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3454 .loc 1 1743 7 is_stmt 1 view .LVU1154 1743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3455 .loc 1 1743 11 is_stmt 0 view .LVU1155 3456 006c 228D ldrh r2, [r4, #40] 1743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3457 .loc 1 1743 21 view .LVU1156 3458 006e 013A subs r2, r2, #1 3459 0070 92B2 uxth r2, r2 3460 0072 2285 strh r2, [r4, #40] @ movhi 1745:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3461 .loc 1 1745 7 is_stmt 1 view .LVU1157 3462 0074 0132 adds r2, r2, #1 3463 0076 1348 ldr r0, .L245+8 ARM GAS /tmp/cchwqEfL.s page 212 3464 0078 0090 str r0, [sp] 3465 007a D2B2 uxtb r2, r2 3466 007c 2046 mov r0, r4 3467 007e FFF7FEFF bl I2C_TransferConfig 3468 .LVL229: 3469 .L240: 1755:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3470 .loc 1 1755 5 view .LVU1158 1755:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3471 .loc 1 1755 5 view .LVU1159 3472 0082 0025 movs r5, #0 3473 0084 84F84050 strb r5, [r4, #64] 1755:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3474 .loc 1 1755 5 view .LVU1160 1765:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3475 .loc 1 1765 5 view .LVU1161 3476 0088 0121 movs r1, #1 3477 008a 2046 mov r0, r4 3478 008c FFF7FEFF bl I2C_Enable_IRQ 3479 .LVL230: 1767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3480 .loc 1 1767 5 view .LVU1162 1767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3481 .loc 1 1767 12 is_stmt 0 view .LVU1163 3482 0090 2846 mov r0, r5 3483 .L236: 1773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3484 .loc 1 1773 1 view .LVU1164 3485 0092 03B0 add sp, sp, #12 3486 .LCFI37: 3487 .cfi_remember_state 3488 .cfi_def_cfa_offset 12 3489 @ sp needed 3490 0094 30BD pop {r4, r5, pc} 3491 .LVL231: 3492 .L237: 3493 .LCFI38: 3494 .cfi_restore_state 1727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3495 .loc 1 1727 7 is_stmt 1 view .LVU1165 1727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3496 .loc 1 1727 28 is_stmt 0 view .LVU1166 3497 0096 638D ldrh r3, [r4, #42] 1727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3498 .loc 1 1727 22 view .LVU1167 3499 0098 2385 strh r3, [r4, #40] @ movhi 1728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3500 .loc 1 1728 7 is_stmt 1 view .LVU1168 3501 .LVL232: 1728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3502 .loc 1 1728 16 is_stmt 0 view .LVU1169 3503 009a 4FF00073 mov r3, #33554432 3504 009e D9E7 b .L238 3505 .LVL233: 3506 .L239: 1750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3507 .loc 1 1750 7 is_stmt 1 view .LVU1170 ARM GAS /tmp/cchwqEfL.s page 213 3508 00a0 084A ldr r2, .L245+8 3509 .LVL234: 1750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3510 .loc 1 1750 7 is_stmt 0 view .LVU1171 3511 00a2 0092 str r2, [sp] 3512 .LVL235: 1750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3513 .loc 1 1750 7 view .LVU1172 3514 00a4 EAB2 uxtb r2, r5 3515 00a6 2046 mov r0, r4 3516 00a8 FFF7FEFF bl I2C_TransferConfig 3517 .LVL236: 1750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3518 .loc 1 1750 7 view .LVU1173 3519 00ac E9E7 b .L240 3520 .LVL237: 3521 .L241: 1771:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3522 .loc 1 1771 12 view .LVU1174 3523 00ae 0220 movs r0, #2 3524 00b0 EFE7 b .L236 3525 .L242: 1704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3526 .loc 1 1704 14 view .LVU1175 3527 00b2 0220 movs r0, #2 3528 00b4 EDE7 b .L236 3529 .L243: 1708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3530 .loc 1 1708 5 view .LVU1176 3531 00b6 0220 movs r0, #2 3532 00b8 EBE7 b .L236 3533 .L246: 3534 00ba 00BF .align 2 3535 .L245: 3536 00bc 0000FFFF .word -65536 3537 00c0 00000000 .word I2C_Master_ISR_IT 3538 00c4 00200080 .word -2147475456 3539 .cfi_endproc 3540 .LFE149: 3542 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits 3543 .align 1 3544 .global HAL_I2C_Master_Receive_IT 3545 .syntax unified 3546 .thumb 3547 .thumb_func 3548 .fpu fpv5-d16 3550 HAL_I2C_Master_Receive_IT: 3551 .LVL238: 3552 .LFB150: 1787:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3553 .loc 1 1787 1 is_stmt 1 view -0 3554 .cfi_startproc 3555 @ args = 0, pretend = 0, frame = 0 3556 @ frame_needed = 0, uses_anonymous_args = 0 1787:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3557 .loc 1 1787 1 is_stmt 0 view .LVU1178 3558 0000 30B5 push {r4, r5, lr} ARM GAS /tmp/cchwqEfL.s page 214 3559 .LCFI39: 3560 .cfi_def_cfa_offset 12 3561 .cfi_offset 4, -12 3562 .cfi_offset 5, -8 3563 .cfi_offset 14, -4 3564 0002 83B0 sub sp, sp, #12 3565 .LCFI40: 3566 .cfi_def_cfa_offset 24 3567 0004 0446 mov r4, r0 1788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3568 .loc 1 1788 3 is_stmt 1 view .LVU1179 1790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3569 .loc 1 1790 3 view .LVU1180 1790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3570 .loc 1 1790 11 is_stmt 0 view .LVU1181 3571 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3572 .LVL239: 1790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3573 .loc 1 1790 11 view .LVU1182 3574 000a C0B2 uxtb r0, r0 1790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3575 .loc 1 1790 6 view .LVU1183 3576 000c 2028 cmp r0, #32 3577 000e 37D1 bne .L251 1792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3578 .loc 1 1792 5 is_stmt 1 view .LVU1184 1792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3579 .loc 1 1792 9 is_stmt 0 view .LVU1185 3580 0010 2068 ldr r0, [r4] 3581 0012 8069 ldr r0, [r0, #24] 1792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3582 .loc 1 1792 8 view .LVU1186 3583 0014 10F4004F tst r0, #32768 3584 0018 34D1 bne .L252 1798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3585 .loc 1 1798 5 is_stmt 1 view .LVU1187 1798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3586 .loc 1 1798 5 view .LVU1188 3587 001a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 3588 001e 0128 cmp r0, #1 3589 0020 32D0 beq .L253 1798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3590 .loc 1 1798 5 discriminator 2 view .LVU1189 3591 0022 0120 movs r0, #1 3592 0024 84F84000 strb r0, [r4, #64] 1798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3593 .loc 1 1798 5 discriminator 2 view .LVU1190 1800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3594 .loc 1 1800 5 discriminator 2 view .LVU1191 1800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3595 .loc 1 1800 23 is_stmt 0 discriminator 2 view .LVU1192 3596 0028 2220 movs r0, #34 3597 002a 84F84100 strb r0, [r4, #65] 1801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3598 .loc 1 1801 5 is_stmt 1 discriminator 2 view .LVU1193 1801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3599 .loc 1 1801 23 is_stmt 0 discriminator 2 view .LVU1194 ARM GAS /tmp/cchwqEfL.s page 215 3600 002e 1020 movs r0, #16 3601 0030 84F84200 strb r0, [r4, #66] 1802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3602 .loc 1 1802 5 is_stmt 1 discriminator 2 view .LVU1195 1802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3603 .loc 1 1802 23 is_stmt 0 discriminator 2 view .LVU1196 3604 0034 0020 movs r0, #0 3605 0036 6064 str r0, [r4, #68] 1805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3606 .loc 1 1805 5 is_stmt 1 discriminator 2 view .LVU1197 1805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3607 .loc 1 1805 23 is_stmt 0 discriminator 2 view .LVU1198 3608 0038 6262 str r2, [r4, #36] 1806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3609 .loc 1 1806 5 is_stmt 1 discriminator 2 view .LVU1199 1806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3610 .loc 1 1806 23 is_stmt 0 discriminator 2 view .LVU1200 3611 003a 6385 strh r3, [r4, #42] @ movhi 1807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3612 .loc 1 1807 5 is_stmt 1 discriminator 2 view .LVU1201 1807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3613 .loc 1 1807 23 is_stmt 0 discriminator 2 view .LVU1202 3614 003c 134B ldr r3, .L255 3615 .LVL240: 1807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3616 .loc 1 1807 23 discriminator 2 view .LVU1203 3617 003e E362 str r3, [r4, #44] 3618 .LVL241: 1808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3619 .loc 1 1808 5 is_stmt 1 discriminator 2 view .LVU1204 1808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3620 .loc 1 1808 23 is_stmt 0 discriminator 2 view .LVU1205 3621 0040 134B ldr r3, .L255+4 3622 0042 6363 str r3, [r4, #52] 1810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3623 .loc 1 1810 5 is_stmt 1 discriminator 2 view .LVU1206 1810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3624 .loc 1 1810 13 is_stmt 0 discriminator 2 view .LVU1207 3625 0044 638D ldrh r3, [r4, #42] 3626 0046 9BB2 uxth r3, r3 1810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3627 .loc 1 1810 8 discriminator 2 view .LVU1208 3628 0048 FF2B cmp r3, #255 3629 004a 14D9 bls .L249 1812:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3630 .loc 1 1812 7 is_stmt 1 view .LVU1209 1812:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3631 .loc 1 1812 22 is_stmt 0 view .LVU1210 3632 004c 0123 movs r3, #1 3633 004e 2385 strh r3, [r4, #40] @ movhi 1813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3634 .loc 1 1813 7 is_stmt 1 view .LVU1211 3635 .LVL242: 1813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3636 .loc 1 1813 16 is_stmt 0 view .LVU1212 3637 0050 4FF08073 mov r3, #16777216 3638 .LVL243: ARM GAS /tmp/cchwqEfL.s page 216 3639 .L250: 1823:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3640 .loc 1 1823 5 is_stmt 1 view .LVU1213 3641 0054 0F4A ldr r2, .L255+8 3642 .LVL244: 1823:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3643 .loc 1 1823 5 is_stmt 0 view .LVU1214 3644 0056 0092 str r2, [sp] 3645 .LVL245: 1823:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3646 .loc 1 1823 5 view .LVU1215 3647 0058 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3648 005c 2046 mov r0, r4 3649 005e FFF7FEFF bl I2C_TransferConfig 3650 .LVL246: 1826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3651 .loc 1 1826 5 is_stmt 1 view .LVU1216 1826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3652 .loc 1 1826 5 view .LVU1217 3653 0062 0025 movs r5, #0 3654 0064 84F84050 strb r5, [r4, #64] 1826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3655 .loc 1 1826 5 view .LVU1218 1836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3656 .loc 1 1836 5 view .LVU1219 3657 0068 0221 movs r1, #2 3658 006a 2046 mov r0, r4 3659 006c FFF7FEFF bl I2C_Enable_IRQ 3660 .LVL247: 1838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3661 .loc 1 1838 5 view .LVU1220 1838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3662 .loc 1 1838 12 is_stmt 0 view .LVU1221 3663 0070 2846 mov r0, r5 3664 .L248: 1844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3665 .loc 1 1844 1 view .LVU1222 3666 0072 03B0 add sp, sp, #12 3667 .LCFI41: 3668 .cfi_remember_state 3669 .cfi_def_cfa_offset 12 3670 @ sp needed 3671 0074 30BD pop {r4, r5, pc} 3672 .LVL248: 3673 .L249: 3674 .LCFI42: 3675 .cfi_restore_state 1817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3676 .loc 1 1817 7 is_stmt 1 view .LVU1223 1817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3677 .loc 1 1817 28 is_stmt 0 view .LVU1224 3678 0076 638D ldrh r3, [r4, #42] 1817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3679 .loc 1 1817 22 view .LVU1225 3680 0078 2385 strh r3, [r4, #40] @ movhi 1818:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3681 .loc 1 1818 7 is_stmt 1 view .LVU1226 ARM GAS /tmp/cchwqEfL.s page 217 3682 .LVL249: 1818:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3683 .loc 1 1818 16 is_stmt 0 view .LVU1227 3684 007a 4FF00073 mov r3, #33554432 3685 007e E9E7 b .L250 3686 .LVL250: 3687 .L251: 1842:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3688 .loc 1 1842 12 view .LVU1228 3689 0080 0220 movs r0, #2 3690 0082 F6E7 b .L248 3691 .L252: 1794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3692 .loc 1 1794 14 view .LVU1229 3693 0084 0220 movs r0, #2 3694 0086 F4E7 b .L248 3695 .L253: 1798:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3696 .loc 1 1798 5 view .LVU1230 3697 0088 0220 movs r0, #2 3698 008a F2E7 b .L248 3699 .L256: 3700 .align 2 3701 .L255: 3702 008c 0000FFFF .word -65536 3703 0090 00000000 .word I2C_Master_ISR_IT 3704 0094 00240080 .word -2147474432 3705 .cfi_endproc 3706 .LFE150: 3708 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits 3709 .align 1 3710 .global HAL_I2C_Slave_Transmit_IT 3711 .syntax unified 3712 .thumb 3713 .thumb_func 3714 .fpu fpv5-d16 3716 HAL_I2C_Slave_Transmit_IT: 3717 .LVL251: 3718 .LFB151: 1855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3719 .loc 1 1855 1 is_stmt 1 view -0 3720 .cfi_startproc 3721 @ args = 0, pretend = 0, frame = 0 3722 @ frame_needed = 0, uses_anonymous_args = 0 1856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3723 .loc 1 1856 3 view .LVU1232 1856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3724 .loc 1 1856 11 is_stmt 0 view .LVU1233 3725 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3726 0004 DBB2 uxtb r3, r3 1856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3727 .loc 1 1856 6 view .LVU1234 3728 0006 202B cmp r3, #32 3729 0008 38D1 bne .L260 1859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3730 .loc 1 1859 5 is_stmt 1 view .LVU1235 1859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 218 3731 .loc 1 1859 5 view .LVU1236 3732 000a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3733 000e 012B cmp r3, #1 3734 0010 36D0 beq .L261 1855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3735 .loc 1 1855 1 is_stmt 0 discriminator 2 view .LVU1237 3736 0012 10B5 push {r4, lr} 3737 .LCFI43: 3738 .cfi_def_cfa_offset 8 3739 .cfi_offset 4, -8 3740 .cfi_offset 14, -4 1859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3741 .loc 1 1859 5 is_stmt 1 discriminator 2 view .LVU1238 3742 0014 0123 movs r3, #1 3743 0016 80F84030 strb r3, [r0, #64] 1859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3744 .loc 1 1859 5 discriminator 2 view .LVU1239 1861:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3745 .loc 1 1861 5 discriminator 2 view .LVU1240 1861:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3746 .loc 1 1861 23 is_stmt 0 discriminator 2 view .LVU1241 3747 001a 2123 movs r3, #33 3748 001c 80F84130 strb r3, [r0, #65] 1862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3749 .loc 1 1862 5 is_stmt 1 discriminator 2 view .LVU1242 1862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3750 .loc 1 1862 23 is_stmt 0 discriminator 2 view .LVU1243 3751 0020 2023 movs r3, #32 3752 0022 80F84230 strb r3, [r0, #66] 1863:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3753 .loc 1 1863 5 is_stmt 1 discriminator 2 view .LVU1244 1863:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3754 .loc 1 1863 23 is_stmt 0 discriminator 2 view .LVU1245 3755 0026 0023 movs r3, #0 3756 0028 4364 str r3, [r0, #68] 1866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3757 .loc 1 1866 5 is_stmt 1 discriminator 2 view .LVU1246 1866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3758 .loc 1 1866 9 is_stmt 0 discriminator 2 view .LVU1247 3759 002a 0468 ldr r4, [r0] 1866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3760 .loc 1 1866 25 discriminator 2 view .LVU1248 3761 002c 6368 ldr r3, [r4, #4] 3762 002e 23F40043 bic r3, r3, #32768 3763 0032 6360 str r3, [r4, #4] 1869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3764 .loc 1 1869 5 is_stmt 1 discriminator 2 view .LVU1249 1869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3765 .loc 1 1869 23 is_stmt 0 discriminator 2 view .LVU1250 3766 0034 4162 str r1, [r0, #36] 1870:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3767 .loc 1 1870 5 is_stmt 1 discriminator 2 view .LVU1251 1870:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3768 .loc 1 1870 23 is_stmt 0 discriminator 2 view .LVU1252 3769 0036 4285 strh r2, [r0, #42] @ movhi 1871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3770 .loc 1 1871 5 is_stmt 1 discriminator 2 view .LVU1253 ARM GAS /tmp/cchwqEfL.s page 219 1871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3771 .loc 1 1871 29 is_stmt 0 discriminator 2 view .LVU1254 3772 0038 438D ldrh r3, [r0, #42] 1871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3773 .loc 1 1871 23 discriminator 2 view .LVU1255 3774 003a 0385 strh r3, [r0, #40] @ movhi 1872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3775 .loc 1 1872 5 is_stmt 1 discriminator 2 view .LVU1256 1872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3776 .loc 1 1872 23 is_stmt 0 discriminator 2 view .LVU1257 3777 003c 114B ldr r3, .L267 3778 003e C362 str r3, [r0, #44] 1873:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3779 .loc 1 1873 5 is_stmt 1 discriminator 2 view .LVU1258 1873:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3780 .loc 1 1873 23 is_stmt 0 discriminator 2 view .LVU1259 3781 0040 114B ldr r3, .L267+4 3782 0042 4363 str r3, [r0, #52] 1876:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3783 .loc 1 1876 5 is_stmt 1 discriminator 2 view .LVU1260 1876:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3784 .loc 1 1876 19 is_stmt 0 discriminator 2 view .LVU1261 3785 0044 036A ldr r3, [r0, #32] 1876:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3786 .loc 1 1876 8 discriminator 2 view .LVU1262 3787 0046 B3F5003F cmp r3, #131072 3788 004a 08D0 beq .L266 3789 .LVL252: 3790 .L259: 1890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3791 .loc 1 1890 5 is_stmt 1 view .LVU1263 1890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3792 .loc 1 1890 5 view .LVU1264 3793 004c 0024 movs r4, #0 3794 004e 80F84040 strb r4, [r0, #64] 1890:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3795 .loc 1 1890 5 view .LVU1265 1900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3796 .loc 1 1900 5 view .LVU1266 3797 0052 48F20101 movw r1, #32769 3798 .LVL253: 1900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3799 .loc 1 1900 5 is_stmt 0 view .LVU1267 3800 0056 FFF7FEFF bl I2C_Enable_IRQ 3801 .LVL254: 1902:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3802 .loc 1 1902 5 is_stmt 1 view .LVU1268 1902:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3803 .loc 1 1902 12 is_stmt 0 view .LVU1269 3804 005a 2046 mov r0, r4 1908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3805 .loc 1 1908 1 view .LVU1270 3806 005c 10BD pop {r4, pc} 3807 .LVL255: 3808 .L266: 1880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3809 .loc 1 1880 7 is_stmt 1 view .LVU1271 ARM GAS /tmp/cchwqEfL.s page 220 1880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3810 .loc 1 1880 11 is_stmt 0 view .LVU1272 3811 005e 0368 ldr r3, [r0] 1880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3812 .loc 1 1880 30 view .LVU1273 3813 0060 0A78 ldrb r2, [r1] @ zero_extendqisi2 3814 .LVL256: 1880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3815 .loc 1 1880 28 view .LVU1274 3816 0062 9A62 str r2, [r3, #40] 1883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3817 .loc 1 1883 7 is_stmt 1 view .LVU1275 1883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3818 .loc 1 1883 11 is_stmt 0 view .LVU1276 3819 0064 436A ldr r3, [r0, #36] 1883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3820 .loc 1 1883 21 view .LVU1277 3821 0066 0133 adds r3, r3, #1 3822 0068 4362 str r3, [r0, #36] 1885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3823 .loc 1 1885 7 is_stmt 1 view .LVU1278 1885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3824 .loc 1 1885 11 is_stmt 0 view .LVU1279 3825 006a 438D ldrh r3, [r0, #42] 3826 006c 9BB2 uxth r3, r3 1885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 3827 .loc 1 1885 22 view .LVU1280 3828 006e 013B subs r3, r3, #1 3829 0070 9BB2 uxth r3, r3 3830 0072 4385 strh r3, [r0, #42] @ movhi 1886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3831 .loc 1 1886 7 is_stmt 1 view .LVU1281 1886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3832 .loc 1 1886 11 is_stmt 0 view .LVU1282 3833 0074 038D ldrh r3, [r0, #40] 1886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3834 .loc 1 1886 21 view .LVU1283 3835 0076 013B subs r3, r3, #1 3836 0078 0385 strh r3, [r0, #40] @ movhi 3837 007a E7E7 b .L259 3838 .LVL257: 3839 .L260: 3840 .LCFI44: 3841 .cfi_def_cfa_offset 0 3842 .cfi_restore 4 3843 .cfi_restore 14 1906:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3844 .loc 1 1906 12 view .LVU1284 3845 007c 0220 movs r0, #2 3846 .LVL258: 1906:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3847 .loc 1 1906 12 view .LVU1285 3848 007e 7047 bx lr 3849 .LVL259: 3850 .L261: 1859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3851 .loc 1 1859 5 view .LVU1286 ARM GAS /tmp/cchwqEfL.s page 221 3852 0080 0220 movs r0, #2 3853 .LVL260: 1908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3854 .loc 1 1908 1 view .LVU1287 3855 0082 7047 bx lr 3856 .L268: 3857 .align 2 3858 .L267: 3859 0084 0000FFFF .word -65536 3860 0088 00000000 .word I2C_Slave_ISR_IT 3861 .cfi_endproc 3862 .LFE151: 3864 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits 3865 .align 1 3866 .global HAL_I2C_Slave_Receive_IT 3867 .syntax unified 3868 .thumb 3869 .thumb_func 3870 .fpu fpv5-d16 3872 HAL_I2C_Slave_Receive_IT: 3873 .LVL261: 3874 .LFB152: 1919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3875 .loc 1 1919 1 is_stmt 1 view -0 3876 .cfi_startproc 3877 @ args = 0, pretend = 0, frame = 0 3878 @ frame_needed = 0, uses_anonymous_args = 0 1919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3879 .loc 1 1919 1 is_stmt 0 view .LVU1289 3880 0000 38B5 push {r3, r4, r5, lr} 3881 .LCFI45: 3882 .cfi_def_cfa_offset 16 3883 .cfi_offset 3, -16 3884 .cfi_offset 4, -12 3885 .cfi_offset 5, -8 3886 .cfi_offset 14, -4 1920:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3887 .loc 1 1920 3 is_stmt 1 view .LVU1290 1920:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3888 .loc 1 1920 11 is_stmt 0 view .LVU1291 3889 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3890 0006 DBB2 uxtb r3, r3 1920:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 3891 .loc 1 1920 6 view .LVU1292 3892 0008 202B cmp r3, #32 3893 000a 23D1 bne .L271 1923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3894 .loc 1 1923 5 is_stmt 1 view .LVU1293 1923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3895 .loc 1 1923 5 view .LVU1294 3896 000c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3897 0010 012B cmp r3, #1 3898 0012 21D0 beq .L272 1923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3899 .loc 1 1923 5 discriminator 2 view .LVU1295 3900 0014 0123 movs r3, #1 3901 0016 80F84030 strb r3, [r0, #64] ARM GAS /tmp/cchwqEfL.s page 222 1923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3902 .loc 1 1923 5 discriminator 2 view .LVU1296 1925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3903 .loc 1 1925 5 discriminator 2 view .LVU1297 1925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3904 .loc 1 1925 23 is_stmt 0 discriminator 2 view .LVU1298 3905 001a 2223 movs r3, #34 3906 001c 80F84130 strb r3, [r0, #65] 1926:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3907 .loc 1 1926 5 is_stmt 1 discriminator 2 view .LVU1299 1926:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3908 .loc 1 1926 23 is_stmt 0 discriminator 2 view .LVU1300 3909 0020 2023 movs r3, #32 3910 0022 80F84230 strb r3, [r0, #66] 1927:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3911 .loc 1 1927 5 is_stmt 1 discriminator 2 view .LVU1301 1927:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3912 .loc 1 1927 23 is_stmt 0 discriminator 2 view .LVU1302 3913 0026 0024 movs r4, #0 3914 0028 4464 str r4, [r0, #68] 1930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3915 .loc 1 1930 5 is_stmt 1 discriminator 2 view .LVU1303 1930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3916 .loc 1 1930 9 is_stmt 0 discriminator 2 view .LVU1304 3917 002a 0568 ldr r5, [r0] 1930:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3918 .loc 1 1930 25 discriminator 2 view .LVU1305 3919 002c 6B68 ldr r3, [r5, #4] 3920 002e 23F40043 bic r3, r3, #32768 3921 0032 6B60 str r3, [r5, #4] 1933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3922 .loc 1 1933 5 is_stmt 1 discriminator 2 view .LVU1306 1933:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 3923 .loc 1 1933 23 is_stmt 0 discriminator 2 view .LVU1307 3924 0034 4162 str r1, [r0, #36] 1934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3925 .loc 1 1934 5 is_stmt 1 discriminator 2 view .LVU1308 1934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3926 .loc 1 1934 23 is_stmt 0 discriminator 2 view .LVU1309 3927 0036 4285 strh r2, [r0, #42] @ movhi 1935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3928 .loc 1 1935 5 is_stmt 1 discriminator 2 view .LVU1310 1935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3929 .loc 1 1935 29 is_stmt 0 discriminator 2 view .LVU1311 3930 0038 438D ldrh r3, [r0, #42] 1935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3931 .loc 1 1935 23 discriminator 2 view .LVU1312 3932 003a 0385 strh r3, [r0, #40] @ movhi 1936:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3933 .loc 1 1936 5 is_stmt 1 discriminator 2 view .LVU1313 1936:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3934 .loc 1 1936 23 is_stmt 0 discriminator 2 view .LVU1314 3935 003c 074B ldr r3, .L274 3936 003e C362 str r3, [r0, #44] 1937:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3937 .loc 1 1937 5 is_stmt 1 discriminator 2 view .LVU1315 1937:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 223 3938 .loc 1 1937 23 is_stmt 0 discriminator 2 view .LVU1316 3939 0040 074B ldr r3, .L274+4 3940 0042 4363 str r3, [r0, #52] 1940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3941 .loc 1 1940 5 is_stmt 1 discriminator 2 view .LVU1317 1940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3942 .loc 1 1940 5 discriminator 2 view .LVU1318 3943 0044 80F84040 strb r4, [r0, #64] 1940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3944 .loc 1 1940 5 discriminator 2 view .LVU1319 1950:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3945 .loc 1 1950 5 discriminator 2 view .LVU1320 3946 0048 48F20201 movw r1, #32770 3947 .LVL262: 1950:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3948 .loc 1 1950 5 is_stmt 0 discriminator 2 view .LVU1321 3949 004c FFF7FEFF bl I2C_Enable_IRQ 3950 .LVL263: 1952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3951 .loc 1 1952 5 is_stmt 1 discriminator 2 view .LVU1322 1952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3952 .loc 1 1952 12 is_stmt 0 discriminator 2 view .LVU1323 3953 0050 2046 mov r0, r4 3954 .L270: 1958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3955 .loc 1 1958 1 view .LVU1324 3956 0052 38BD pop {r3, r4, r5, pc} 3957 .LVL264: 3958 .L271: 1956:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3959 .loc 1 1956 12 view .LVU1325 3960 0054 0220 movs r0, #2 3961 .LVL265: 1956:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 3962 .loc 1 1956 12 view .LVU1326 3963 0056 FCE7 b .L270 3964 .LVL266: 3965 .L272: 1923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3966 .loc 1 1923 5 view .LVU1327 3967 0058 0220 movs r0, #2 3968 .LVL267: 1923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 3969 .loc 1 1923 5 view .LVU1328 3970 005a FAE7 b .L270 3971 .L275: 3972 .align 2 3973 .L274: 3974 005c 0000FFFF .word -65536 3975 0060 00000000 .word I2C_Slave_ISR_IT 3976 .cfi_endproc 3977 .LFE152: 3979 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits 3980 .align 1 3981 .global HAL_I2C_Master_Transmit_DMA 3982 .syntax unified 3983 .thumb ARM GAS /tmp/cchwqEfL.s page 224 3984 .thumb_func 3985 .fpu fpv5-d16 3987 HAL_I2C_Master_Transmit_DMA: 3988 .LVL268: 3989 .LFB153: 1972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3990 .loc 1 1972 1 is_stmt 1 view -0 3991 .cfi_startproc 3992 @ args = 0, pretend = 0, frame = 0 3993 @ frame_needed = 0, uses_anonymous_args = 0 1972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 3994 .loc 1 1972 1 is_stmt 0 view .LVU1330 3995 0000 70B5 push {r4, r5, r6, lr} 3996 .LCFI46: 3997 .cfi_def_cfa_offset 16 3998 .cfi_offset 4, -16 3999 .cfi_offset 5, -12 4000 .cfi_offset 6, -8 4001 .cfi_offset 14, -4 4002 0002 82B0 sub sp, sp, #8 4003 .LCFI47: 4004 .cfi_def_cfa_offset 24 4005 0004 0446 mov r4, r0 1973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4006 .loc 1 1973 3 is_stmt 1 view .LVU1331 1974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 4007 .loc 1 1974 3 view .LVU1332 1975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4008 .loc 1 1975 3 view .LVU1333 4009 .LVL269: 1977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4010 .loc 1 1977 3 view .LVU1334 1977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4011 .loc 1 1977 11 is_stmt 0 view .LVU1335 4012 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 4013 .LVL270: 1977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4014 .loc 1 1977 11 view .LVU1336 4015 000a C0B2 uxtb r0, r0 1977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4016 .loc 1 1977 6 view .LVU1337 4017 000c 2028 cmp r0, #32 4018 000e 40F09D80 bne .L286 4019 0012 0D46 mov r5, r1 1979:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4020 .loc 1 1979 5 is_stmt 1 view .LVU1338 1979:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4021 .loc 1 1979 9 is_stmt 0 view .LVU1339 4022 0014 2068 ldr r0, [r4] 4023 0016 8169 ldr r1, [r0, #24] 4024 .LVL271: 1979:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4025 .loc 1 1979 8 view .LVU1340 4026 0018 11F40041 ands r1, r1, #32768 4027 001c 40F09980 bne .L287 1985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4028 .loc 1 1985 5 is_stmt 1 view .LVU1341 ARM GAS /tmp/cchwqEfL.s page 225 1985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4029 .loc 1 1985 5 view .LVU1342 4030 0020 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 4031 0024 012E cmp r6, #1 4032 0026 00F09680 beq .L288 1985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4033 .loc 1 1985 5 discriminator 2 view .LVU1343 4034 002a 0126 movs r6, #1 4035 002c 84F84060 strb r6, [r4, #64] 1985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4036 .loc 1 1985 5 discriminator 2 view .LVU1344 1987:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4037 .loc 1 1987 5 discriminator 2 view .LVU1345 1987:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4038 .loc 1 1987 23 is_stmt 0 discriminator 2 view .LVU1346 4039 0030 2126 movs r6, #33 4040 0032 84F84160 strb r6, [r4, #65] 1988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4041 .loc 1 1988 5 is_stmt 1 discriminator 2 view .LVU1347 1988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4042 .loc 1 1988 23 is_stmt 0 discriminator 2 view .LVU1348 4043 0036 1026 movs r6, #16 4044 0038 84F84260 strb r6, [r4, #66] 1989:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4045 .loc 1 1989 5 is_stmt 1 discriminator 2 view .LVU1349 1989:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4046 .loc 1 1989 23 is_stmt 0 discriminator 2 view .LVU1350 4047 003c 0026 movs r6, #0 4048 003e 6664 str r6, [r4, #68] 1992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4049 .loc 1 1992 5 is_stmt 1 discriminator 2 view .LVU1351 1992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4050 .loc 1 1992 23 is_stmt 0 discriminator 2 view .LVU1352 4051 0040 6262 str r2, [r4, #36] 1993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4052 .loc 1 1993 5 is_stmt 1 discriminator 2 view .LVU1353 1993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4053 .loc 1 1993 23 is_stmt 0 discriminator 2 view .LVU1354 4054 0042 6385 strh r3, [r4, #42] @ movhi 1994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4055 .loc 1 1994 5 is_stmt 1 discriminator 2 view .LVU1355 1994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4056 .loc 1 1994 23 is_stmt 0 discriminator 2 view .LVU1356 4057 0044 454B ldr r3, .L292 4058 .LVL272: 1994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4059 .loc 1 1994 23 discriminator 2 view .LVU1357 4060 0046 E362 str r3, [r4, #44] 4061 .LVL273: 1995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4062 .loc 1 1995 5 is_stmt 1 discriminator 2 view .LVU1358 1995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4063 .loc 1 1995 23 is_stmt 0 discriminator 2 view .LVU1359 4064 0048 454B ldr r3, .L292+4 4065 004a 6363 str r3, [r4, #52] 1997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4066 .loc 1 1997 5 is_stmt 1 discriminator 2 view .LVU1360 ARM GAS /tmp/cchwqEfL.s page 226 1997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4067 .loc 1 1997 13 is_stmt 0 discriminator 2 view .LVU1361 4068 004c 638D ldrh r3, [r4, #42] 4069 004e 9BB2 uxth r3, r3 1997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4070 .loc 1 1997 8 discriminator 2 view .LVU1362 4071 0050 FF2B cmp r3, #255 4072 0052 37D9 bls .L278 1999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4073 .loc 1 1999 7 is_stmt 1 view .LVU1363 1999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4074 .loc 1 1999 22 is_stmt 0 view .LVU1364 4075 0054 FF23 movs r3, #255 4076 0056 2385 strh r3, [r4, #40] @ movhi 2000:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4077 .loc 1 2000 7 is_stmt 1 view .LVU1365 4078 .LVL274: 2000:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4079 .loc 1 2000 16 is_stmt 0 view .LVU1366 4080 0058 4FF08076 mov r6, #16777216 4081 .LVL275: 4082 .L279: 2008:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4083 .loc 1 2008 5 is_stmt 1 view .LVU1367 2008:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4084 .loc 1 2008 13 is_stmt 0 view .LVU1368 4085 005c 238D ldrh r3, [r4, #40] 2008:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4086 .loc 1 2008 8 view .LVU1369 4087 005e 63B1 cbz r3, .L280 2012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4088 .loc 1 2012 7 is_stmt 1 view .LVU1370 2012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4089 .loc 1 2012 30 is_stmt 0 view .LVU1371 4090 0060 1378 ldrb r3, [r2] @ zero_extendqisi2 2012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4091 .loc 1 2012 28 view .LVU1372 4092 0062 8362 str r3, [r0, #40] 2015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4093 .loc 1 2015 7 is_stmt 1 view .LVU1373 2015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4094 .loc 1 2015 11 is_stmt 0 view .LVU1374 4095 0064 636A ldr r3, [r4, #36] 2015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4096 .loc 1 2015 21 view .LVU1375 4097 0066 0133 adds r3, r3, #1 4098 0068 6362 str r3, [r4, #36] 2017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 4099 .loc 1 2017 7 is_stmt 1 view .LVU1376 2017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 4100 .loc 1 2017 24 is_stmt 0 view .LVU1377 4101 006a 218D ldrh r1, [r4, #40] 4102 .LVL276: 2018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 4103 .loc 1 2018 7 is_stmt 1 view .LVU1378 2018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 4104 .loc 1 2018 11 is_stmt 0 view .LVU1379 ARM GAS /tmp/cchwqEfL.s page 227 4105 006c 638D ldrh r3, [r4, #42] 4106 006e 9BB2 uxth r3, r3 2018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 4107 .loc 1 2018 22 view .LVU1380 4108 0070 013B subs r3, r3, #1 4109 0072 9BB2 uxth r3, r3 4110 0074 6385 strh r3, [r4, #42] @ movhi 2019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4111 .loc 1 2019 7 is_stmt 1 view .LVU1381 2019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4112 .loc 1 2019 21 is_stmt 0 view .LVU1382 4113 0076 4B1E subs r3, r1, #1 4114 0078 2385 strh r3, [r4, #40] @ movhi 4115 .LVL277: 4116 .L280: 2022:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4117 .loc 1 2022 5 is_stmt 1 view .LVU1383 2022:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4118 .loc 1 2022 13 is_stmt 0 view .LVU1384 4119 007a 238D ldrh r3, [r4, #40] 2022:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4120 .loc 1 2022 8 view .LVU1385 4121 007c 002B cmp r3, #0 4122 007e 51D0 beq .L281 2024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4123 .loc 1 2024 7 is_stmt 1 view .LVU1386 2024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4124 .loc 1 2024 15 is_stmt 0 view .LVU1387 4125 0080 A36B ldr r3, [r4, #56] 2024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4126 .loc 1 2024 10 view .LVU1388 4127 0082 23B3 cbz r3, .L282 2027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4128 .loc 1 2027 9 is_stmt 1 view .LVU1389 2027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4129 .loc 1 2027 40 is_stmt 0 view .LVU1390 4130 0084 374A ldr r2, .L292+8 4131 .LVL278: 2027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4132 .loc 1 2027 40 view .LVU1391 4133 0086 DA63 str r2, [r3, #60] 2030:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4134 .loc 1 2030 9 is_stmt 1 view .LVU1392 2030:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4135 .loc 1 2030 13 is_stmt 0 view .LVU1393 4136 0088 A36B ldr r3, [r4, #56] 2030:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4137 .loc 1 2030 41 view .LVU1394 4138 008a 374A ldr r2, .L292+12 4139 008c DA64 str r2, [r3, #76] 2033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4140 .loc 1 2033 9 is_stmt 1 view .LVU1395 2033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4141 .loc 1 2033 13 is_stmt 0 view .LVU1396 4142 008e A26B ldr r2, [r4, #56] 2033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4143 .loc 1 2033 44 view .LVU1397 ARM GAS /tmp/cchwqEfL.s page 228 4144 0090 0023 movs r3, #0 4145 0092 1364 str r3, [r2, #64] 2034:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4146 .loc 1 2034 9 is_stmt 1 view .LVU1398 2034:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4147 .loc 1 2034 13 is_stmt 0 view .LVU1399 4148 0094 A26B ldr r2, [r4, #56] 2034:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4149 .loc 1 2034 41 view .LVU1400 4150 0096 1365 str r3, [r2, #80] 2037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4151 .loc 1 2037 9 is_stmt 1 view .LVU1401 2038:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4152 .loc 1 2038 57 is_stmt 0 view .LVU1402 4153 0098 2268 ldr r2, [r4] 2037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4154 .loc 1 2037 25 view .LVU1403 4155 009a 238D ldrh r3, [r4, #40] 4156 009c 2832 adds r2, r2, #40 4157 009e 616A ldr r1, [r4, #36] 4158 .LVL279: 2037:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4159 .loc 1 2037 25 view .LVU1404 4160 00a0 A06B ldr r0, [r4, #56] 4161 00a2 FFF7FEFF bl HAL_DMA_Start_IT 4162 .LVL280: 2055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4163 .loc 1 2055 7 is_stmt 1 view .LVU1405 2055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4164 .loc 1 2055 10 is_stmt 0 view .LVU1406 4165 00a6 00B3 cbz r0, .L291 2080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4166 .loc 1 2080 9 is_stmt 1 view .LVU1407 2080:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4167 .loc 1 2080 25 is_stmt 0 view .LVU1408 4168 00a8 2023 movs r3, #32 4169 00aa 84F84130 strb r3, [r4, #65] 2081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4170 .loc 1 2081 9 is_stmt 1 view .LVU1409 2081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4171 .loc 1 2081 25 is_stmt 0 view .LVU1410 4172 00ae 0022 movs r2, #0 4173 00b0 84F84220 strb r2, [r4, #66] 2084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4174 .loc 1 2084 9 is_stmt 1 view .LVU1411 2084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4175 .loc 1 2084 25 is_stmt 0 view .LVU1412 4176 00b4 636C ldr r3, [r4, #68] 4177 00b6 43F01003 orr r3, r3, #16 4178 00ba 6364 str r3, [r4, #68] 2087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4179 .loc 1 2087 9 is_stmt 1 view .LVU1413 2087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4180 .loc 1 2087 9 view .LVU1414 4181 00bc 84F84020 strb r2, [r4, #64] 2087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4182 .loc 1 2087 9 view .LVU1415 ARM GAS /tmp/cchwqEfL.s page 229 2089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4183 .loc 1 2089 9 view .LVU1416 2089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4184 .loc 1 2089 16 is_stmt 0 view .LVU1417 4185 00c0 0120 movs r0, #1 4186 .LVL281: 2089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4187 .loc 1 2089 16 view .LVU1418 4188 00c2 44E0 b .L277 4189 .LVL282: 4190 .L278: 2004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4191 .loc 1 2004 7 is_stmt 1 view .LVU1419 2004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4192 .loc 1 2004 28 is_stmt 0 view .LVU1420 4193 00c4 638D ldrh r3, [r4, #42] 2004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4194 .loc 1 2004 22 view .LVU1421 4195 00c6 2385 strh r3, [r4, #40] @ movhi 2005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4196 .loc 1 2005 7 is_stmt 1 view .LVU1422 4197 .LVL283: 2005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4198 .loc 1 2005 16 is_stmt 0 view .LVU1423 4199 00c8 4FF00076 mov r6, #33554432 4200 00cc C6E7 b .L279 4201 .LVL284: 4202 .L282: 2043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4203 .loc 1 2043 9 is_stmt 1 view .LVU1424 2043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4204 .loc 1 2043 25 is_stmt 0 view .LVU1425 4205 00ce 2023 movs r3, #32 4206 00d0 84F84130 strb r3, [r4, #65] 2044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4207 .loc 1 2044 9 is_stmt 1 view .LVU1426 2044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4208 .loc 1 2044 25 is_stmt 0 view .LVU1427 4209 00d4 0022 movs r2, #0 4210 .LVL285: 2044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4211 .loc 1 2044 25 view .LVU1428 4212 00d6 84F84220 strb r2, [r4, #66] 2047:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4213 .loc 1 2047 9 is_stmt 1 view .LVU1429 2047:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4214 .loc 1 2047 25 is_stmt 0 view .LVU1430 4215 00da 636C ldr r3, [r4, #68] 4216 00dc 43F08003 orr r3, r3, #128 4217 00e0 6364 str r3, [r4, #68] 2050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4218 .loc 1 2050 9 is_stmt 1 view .LVU1431 2050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4219 .loc 1 2050 9 view .LVU1432 4220 00e2 84F84020 strb r2, [r4, #64] 2050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4221 .loc 1 2050 9 view .LVU1433 ARM GAS /tmp/cchwqEfL.s page 230 2052:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4222 .loc 1 2052 9 view .LVU1434 2052:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4223 .loc 1 2052 16 is_stmt 0 view .LVU1435 4224 00e6 0120 movs r0, #1 4225 00e8 31E0 b .L277 4226 .LVL286: 4227 .L291: 2059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4228 .loc 1 2059 9 is_stmt 1 view .LVU1436 2059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4229 .loc 1 2059 60 is_stmt 0 view .LVU1437 4230 00ea 228D ldrh r2, [r4, #40] 2059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4231 .loc 1 2059 9 view .LVU1438 4232 00ec 0132 adds r2, r2, #1 4233 00ee 1F4B ldr r3, .L292+16 4234 00f0 0093 str r3, [sp] 4235 00f2 3346 mov r3, r6 4236 00f4 D2B2 uxtb r2, r2 4237 00f6 2946 mov r1, r5 4238 00f8 2046 mov r0, r4 4239 .LVL287: 2059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4240 .loc 1 2059 9 view .LVU1439 4241 00fa FFF7FEFF bl I2C_TransferConfig 4242 .LVL288: 2063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4243 .loc 1 2063 9 is_stmt 1 view .LVU1440 2063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4244 .loc 1 2063 25 is_stmt 0 view .LVU1441 4245 00fe 638D ldrh r3, [r4, #42] 4246 0100 9BB2 uxth r3, r3 2063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4247 .loc 1 2063 32 view .LVU1442 4248 0102 228D ldrh r2, [r4, #40] 2063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4249 .loc 1 2063 25 view .LVU1443 4250 0104 9B1A subs r3, r3, r2 4251 0106 9BB2 uxth r3, r3 4252 0108 6385 strh r3, [r4, #42] @ movhi 2066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4253 .loc 1 2066 9 is_stmt 1 view .LVU1444 2066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4254 .loc 1 2066 9 view .LVU1445 4255 010a 0023 movs r3, #0 4256 010c 84F84030 strb r3, [r4, #64] 2066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4257 .loc 1 2066 9 view .LVU1446 2072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4258 .loc 1 2072 9 view .LVU1447 4259 0110 1021 movs r1, #16 4260 0112 2046 mov r0, r4 4261 0114 FFF7FEFF bl I2C_Enable_IRQ 4262 .LVL289: 2075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4263 .loc 1 2075 9 view .LVU1448 ARM GAS /tmp/cchwqEfL.s page 231 2075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4264 .loc 1 2075 13 is_stmt 0 view .LVU1449 4265 0118 2268 ldr r2, [r4] 2075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4266 .loc 1 2075 29 view .LVU1450 4267 011a 1368 ldr r3, [r2] 4268 011c 43F48043 orr r3, r3, #16384 4269 0120 1360 str r3, [r2] 4270 0122 11E0 b .L285 4271 .LVL290: 4272 .L281: 2095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4273 .loc 1 2095 7 is_stmt 1 view .LVU1451 2095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4274 .loc 1 2095 21 is_stmt 0 view .LVU1452 4275 0124 124B ldr r3, .L292+20 4276 0126 6363 str r3, [r4, #52] 2099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4277 .loc 1 2099 7 is_stmt 1 view .LVU1453 4278 0128 104B ldr r3, .L292+16 4279 012a 0093 str r3, [sp] 4280 012c 4FF00073 mov r3, #33554432 4281 0130 CAB2 uxtb r2, r1 4282 .LVL291: 2099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4283 .loc 1 2099 7 is_stmt 0 view .LVU1454 4284 0132 2946 mov r1, r5 4285 .LVL292: 2099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4286 .loc 1 2099 7 view .LVU1455 4287 0134 2046 mov r0, r4 4288 0136 FFF7FEFF bl I2C_TransferConfig 4289 .LVL293: 2103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4290 .loc 1 2103 7 is_stmt 1 view .LVU1456 2103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4291 .loc 1 2103 7 view .LVU1457 4292 013a 0023 movs r3, #0 4293 013c 84F84030 strb r3, [r4, #64] 2103:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4294 .loc 1 2103 7 view .LVU1458 2112:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4295 .loc 1 2112 7 view .LVU1459 4296 0140 0121 movs r1, #1 4297 0142 2046 mov r0, r4 4298 0144 FFF7FEFF bl I2C_Enable_IRQ 4299 .LVL294: 4300 .L285: 2115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4301 .loc 1 2115 5 view .LVU1460 2115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4302 .loc 1 2115 12 is_stmt 0 view .LVU1461 4303 0148 0020 movs r0, #0 4304 014a 00E0 b .L277 4305 .LVL295: 4306 .L286: 2119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/cchwqEfL.s page 232 4307 .loc 1 2119 12 view .LVU1462 4308 014c 0220 movs r0, #2 4309 .LVL296: 4310 .L277: 2121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4311 .loc 1 2121 1 view .LVU1463 4312 014e 02B0 add sp, sp, #8 4313 .LCFI48: 4314 .cfi_remember_state 4315 .cfi_def_cfa_offset 16 4316 @ sp needed 4317 0150 70BD pop {r4, r5, r6, pc} 4318 .LVL297: 4319 .L287: 4320 .LCFI49: 4321 .cfi_restore_state 1981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4322 .loc 1 1981 14 view .LVU1464 4323 0152 0220 movs r0, #2 4324 0154 FBE7 b .L277 4325 .L288: 1985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4326 .loc 1 1985 5 view .LVU1465 4327 0156 0220 movs r0, #2 4328 0158 F9E7 b .L277 4329 .L293: 4330 015a 00BF .align 2 4331 .L292: 4332 015c 0000FFFF .word -65536 4333 0160 00000000 .word I2C_Master_ISR_DMA 4334 0164 00000000 .word I2C_DMAMasterTransmitCplt 4335 0168 00000000 .word I2C_DMAError 4336 016c 00200080 .word -2147475456 4337 0170 00000000 .word I2C_Master_ISR_IT 4338 .cfi_endproc 4339 .LFE153: 4341 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits 4342 .align 1 4343 .global HAL_I2C_Master_Receive_DMA 4344 .syntax unified 4345 .thumb 4346 .thumb_func 4347 .fpu fpv5-d16 4349 HAL_I2C_Master_Receive_DMA: 4350 .LVL298: 4351 .LFB154: 2135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 4352 .loc 1 2135 1 is_stmt 1 view -0 4353 .cfi_startproc 4354 @ args = 0, pretend = 0, frame = 0 4355 @ frame_needed = 0, uses_anonymous_args = 0 2135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 4356 .loc 1 2135 1 is_stmt 0 view .LVU1467 4357 0000 70B5 push {r4, r5, r6, lr} 4358 .LCFI50: 4359 .cfi_def_cfa_offset 16 4360 .cfi_offset 4, -16 ARM GAS /tmp/cchwqEfL.s page 233 4361 .cfi_offset 5, -12 4362 .cfi_offset 6, -8 4363 .cfi_offset 14, -4 4364 0002 82B0 sub sp, sp, #8 4365 .LCFI51: 4366 .cfi_def_cfa_offset 24 4367 0004 0446 mov r4, r0 2136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4368 .loc 1 2136 3 is_stmt 1 view .LVU1468 2137:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4369 .loc 1 2137 3 view .LVU1469 2139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4370 .loc 1 2139 3 view .LVU1470 2139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4371 .loc 1 2139 11 is_stmt 0 view .LVU1471 4372 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 4373 .LVL299: 2139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4374 .loc 1 2139 11 view .LVU1472 4375 000a C0B2 uxtb r0, r0 2139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4376 .loc 1 2139 6 view .LVU1473 4377 000c 2028 cmp r0, #32 4378 000e 40F08C80 bne .L303 4379 0012 0D46 mov r5, r1 2141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4380 .loc 1 2141 5 is_stmt 1 view .LVU1474 2141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4381 .loc 1 2141 9 is_stmt 0 view .LVU1475 4382 0014 2168 ldr r1, [r4] 4383 .LVL300: 2141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4384 .loc 1 2141 9 view .LVU1476 4385 0016 8969 ldr r1, [r1, #24] 2141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4386 .loc 1 2141 8 view .LVU1477 4387 0018 11F4004F tst r1, #32768 4388 001c 40F08880 bne .L304 2147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4389 .loc 1 2147 5 is_stmt 1 view .LVU1478 2147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4390 .loc 1 2147 5 view .LVU1479 4391 0020 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 4392 0024 0129 cmp r1, #1 4393 0026 00F08580 beq .L305 2147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4394 .loc 1 2147 5 discriminator 2 view .LVU1480 4395 002a 0121 movs r1, #1 4396 002c 84F84010 strb r1, [r4, #64] 2147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4397 .loc 1 2147 5 discriminator 2 view .LVU1481 2149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4398 .loc 1 2149 5 discriminator 2 view .LVU1482 2149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4399 .loc 1 2149 23 is_stmt 0 discriminator 2 view .LVU1483 4400 0030 2221 movs r1, #34 4401 0032 84F84110 strb r1, [r4, #65] ARM GAS /tmp/cchwqEfL.s page 234 2150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4402 .loc 1 2150 5 is_stmt 1 discriminator 2 view .LVU1484 2150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4403 .loc 1 2150 23 is_stmt 0 discriminator 2 view .LVU1485 4404 0036 1021 movs r1, #16 4405 0038 84F84210 strb r1, [r4, #66] 2151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4406 .loc 1 2151 5 is_stmt 1 discriminator 2 view .LVU1486 2151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4407 .loc 1 2151 23 is_stmt 0 discriminator 2 view .LVU1487 4408 003c 0021 movs r1, #0 4409 003e 6164 str r1, [r4, #68] 2154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4410 .loc 1 2154 5 is_stmt 1 discriminator 2 view .LVU1488 2154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4411 .loc 1 2154 23 is_stmt 0 discriminator 2 view .LVU1489 4412 0040 6262 str r2, [r4, #36] 2155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4413 .loc 1 2155 5 is_stmt 1 discriminator 2 view .LVU1490 2155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4414 .loc 1 2155 23 is_stmt 0 discriminator 2 view .LVU1491 4415 0042 6385 strh r3, [r4, #42] @ movhi 2156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4416 .loc 1 2156 5 is_stmt 1 discriminator 2 view .LVU1492 2156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4417 .loc 1 2156 23 is_stmt 0 discriminator 2 view .LVU1493 4418 0044 3C4B ldr r3, .L309 4419 .LVL301: 2156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4420 .loc 1 2156 23 discriminator 2 view .LVU1494 4421 0046 E362 str r3, [r4, #44] 4422 .LVL302: 2157:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4423 .loc 1 2157 5 is_stmt 1 discriminator 2 view .LVU1495 2157:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4424 .loc 1 2157 23 is_stmt 0 discriminator 2 view .LVU1496 4425 0048 3C4B ldr r3, .L309+4 4426 004a 6363 str r3, [r4, #52] 2159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4427 .loc 1 2159 5 is_stmt 1 discriminator 2 view .LVU1497 2159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4428 .loc 1 2159 13 is_stmt 0 discriminator 2 view .LVU1498 4429 004c 638D ldrh r3, [r4, #42] 4430 004e 9BB2 uxth r3, r3 2159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4431 .loc 1 2159 8 discriminator 2 view .LVU1499 4432 0050 FF2B cmp r3, #255 4433 0052 27D9 bls .L296 2161:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4434 .loc 1 2161 7 is_stmt 1 view .LVU1500 2161:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4435 .loc 1 2161 22 is_stmt 0 view .LVU1501 4436 0054 0123 movs r3, #1 4437 0056 2385 strh r3, [r4, #40] @ movhi 2162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4438 .loc 1 2162 7 is_stmt 1 view .LVU1502 4439 .LVL303: ARM GAS /tmp/cchwqEfL.s page 235 2162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4440 .loc 1 2162 16 is_stmt 0 view .LVU1503 4441 0058 4FF08076 mov r6, #16777216 4442 .LVL304: 4443 .L297: 2170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4444 .loc 1 2170 5 is_stmt 1 view .LVU1504 2170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4445 .loc 1 2170 13 is_stmt 0 view .LVU1505 4446 005c 218D ldrh r1, [r4, #40] 2170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4447 .loc 1 2170 8 view .LVU1506 4448 005e 0029 cmp r1, #0 4449 0060 4FD0 beq .L298 2172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4450 .loc 1 2172 7 is_stmt 1 view .LVU1507 2172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4451 .loc 1 2172 15 is_stmt 0 view .LVU1508 4452 0062 E36B ldr r3, [r4, #60] 2172:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4453 .loc 1 2172 10 view .LVU1509 4454 0064 1BB3 cbz r3, .L299 2175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4455 .loc 1 2175 9 is_stmt 1 view .LVU1510 2175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4456 .loc 1 2175 40 is_stmt 0 view .LVU1511 4457 0066 3649 ldr r1, .L309+8 4458 0068 D963 str r1, [r3, #60] 2178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4459 .loc 1 2178 9 is_stmt 1 view .LVU1512 2178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4460 .loc 1 2178 13 is_stmt 0 view .LVU1513 4461 006a E36B ldr r3, [r4, #60] 2178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4462 .loc 1 2178 41 view .LVU1514 4463 006c 3549 ldr r1, .L309+12 4464 006e D964 str r1, [r3, #76] 2181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4465 .loc 1 2181 9 is_stmt 1 view .LVU1515 2181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4466 .loc 1 2181 13 is_stmt 0 view .LVU1516 4467 0070 E16B ldr r1, [r4, #60] 2181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4468 .loc 1 2181 44 view .LVU1517 4469 0072 0023 movs r3, #0 4470 0074 0B64 str r3, [r1, #64] 2182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4471 .loc 1 2182 9 is_stmt 1 view .LVU1518 2182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4472 .loc 1 2182 13 is_stmt 0 view .LVU1519 4473 0076 E16B ldr r1, [r4, #60] 2182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4474 .loc 1 2182 41 view .LVU1520 4475 0078 0B65 str r3, [r1, #80] 2185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 4476 .loc 1 2185 9 is_stmt 1 view .LVU1521 2185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); ARM GAS /tmp/cchwqEfL.s page 236 4477 .loc 1 2185 71 is_stmt 0 view .LVU1522 4478 007a 2168 ldr r1, [r4] 2185:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 4479 .loc 1 2185 25 view .LVU1523 4480 007c 238D ldrh r3, [r4, #40] 4481 007e 2431 adds r1, r1, #36 4482 0080 E06B ldr r0, [r4, #60] 4483 0082 FFF7FEFF bl HAL_DMA_Start_IT 4484 .LVL305: 2203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4485 .loc 1 2203 7 is_stmt 1 view .LVU1524 2203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4486 .loc 1 2203 10 is_stmt 0 view .LVU1525 4487 0086 00B3 cbz r0, .L308 2227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4488 .loc 1 2227 9 is_stmt 1 view .LVU1526 2227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4489 .loc 1 2227 25 is_stmt 0 view .LVU1527 4490 0088 2023 movs r3, #32 4491 008a 84F84130 strb r3, [r4, #65] 2228:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4492 .loc 1 2228 9 is_stmt 1 view .LVU1528 2228:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4493 .loc 1 2228 25 is_stmt 0 view .LVU1529 4494 008e 0022 movs r2, #0 4495 0090 84F84220 strb r2, [r4, #66] 2231:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4496 .loc 1 2231 9 is_stmt 1 view .LVU1530 2231:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4497 .loc 1 2231 25 is_stmt 0 view .LVU1531 4498 0094 636C ldr r3, [r4, #68] 4499 0096 43F01003 orr r3, r3, #16 4500 009a 6364 str r3, [r4, #68] 2234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4501 .loc 1 2234 9 is_stmt 1 view .LVU1532 2234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4502 .loc 1 2234 9 view .LVU1533 4503 009c 84F84020 strb r2, [r4, #64] 2234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4504 .loc 1 2234 9 view .LVU1534 2236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4505 .loc 1 2236 9 view .LVU1535 2236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4506 .loc 1 2236 16 is_stmt 0 view .LVU1536 4507 00a0 0120 movs r0, #1 4508 .LVL306: 2236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4509 .loc 1 2236 16 view .LVU1537 4510 00a2 43E0 b .L295 4511 .LVL307: 4512 .L296: 2166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4513 .loc 1 2166 7 is_stmt 1 view .LVU1538 2166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4514 .loc 1 2166 28 is_stmt 0 view .LVU1539 4515 00a4 638D ldrh r3, [r4, #42] 2166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; ARM GAS /tmp/cchwqEfL.s page 237 4516 .loc 1 2166 22 view .LVU1540 4517 00a6 2385 strh r3, [r4, #40] @ movhi 2167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4518 .loc 1 2167 7 is_stmt 1 view .LVU1541 4519 .LVL308: 2167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4520 .loc 1 2167 16 is_stmt 0 view .LVU1542 4521 00a8 4FF00076 mov r6, #33554432 4522 00ac D6E7 b .L297 4523 .LVL309: 4524 .L299: 2191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4525 .loc 1 2191 9 is_stmt 1 view .LVU1543 2191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4526 .loc 1 2191 25 is_stmt 0 view .LVU1544 4527 00ae 2023 movs r3, #32 4528 00b0 84F84130 strb r3, [r4, #65] 2192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4529 .loc 1 2192 9 is_stmt 1 view .LVU1545 2192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4530 .loc 1 2192 25 is_stmt 0 view .LVU1546 4531 00b4 0022 movs r2, #0 4532 .LVL310: 2192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4533 .loc 1 2192 25 view .LVU1547 4534 00b6 84F84220 strb r2, [r4, #66] 2195:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4535 .loc 1 2195 9 is_stmt 1 view .LVU1548 2195:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4536 .loc 1 2195 25 is_stmt 0 view .LVU1549 4537 00ba 636C ldr r3, [r4, #68] 4538 00bc 43F08003 orr r3, r3, #128 4539 00c0 6364 str r3, [r4, #68] 2198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4540 .loc 1 2198 9 is_stmt 1 view .LVU1550 2198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4541 .loc 1 2198 9 view .LVU1551 4542 00c2 84F84020 strb r2, [r4, #64] 2198:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4543 .loc 1 2198 9 view .LVU1552 2200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4544 .loc 1 2200 9 view .LVU1553 2200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4545 .loc 1 2200 16 is_stmt 0 view .LVU1554 4546 00c6 0120 movs r0, #1 4547 00c8 30E0 b .L295 4548 .LVL311: 4549 .L308: 2207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4550 .loc 1 2207 9 is_stmt 1 view .LVU1555 4551 00ca 1F4B ldr r3, .L309+16 4552 00cc 0093 str r3, [sp] 4553 00ce 3346 mov r3, r6 4554 00d0 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 4555 00d4 2946 mov r1, r5 4556 00d6 2046 mov r0, r4 4557 .LVL312: ARM GAS /tmp/cchwqEfL.s page 238 2207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4558 .loc 1 2207 9 is_stmt 0 view .LVU1556 4559 00d8 FFF7FEFF bl I2C_TransferConfig 4560 .LVL313: 2210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4561 .loc 1 2210 9 is_stmt 1 view .LVU1557 2210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4562 .loc 1 2210 25 is_stmt 0 view .LVU1558 4563 00dc 638D ldrh r3, [r4, #42] 4564 00de 9BB2 uxth r3, r3 2210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4565 .loc 1 2210 32 view .LVU1559 4566 00e0 228D ldrh r2, [r4, #40] 2210:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4567 .loc 1 2210 25 view .LVU1560 4568 00e2 9B1A subs r3, r3, r2 4569 00e4 9BB2 uxth r3, r3 4570 00e6 6385 strh r3, [r4, #42] @ movhi 2213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4571 .loc 1 2213 9 is_stmt 1 view .LVU1561 2213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4572 .loc 1 2213 9 view .LVU1562 4573 00e8 0023 movs r3, #0 4574 00ea 84F84030 strb r3, [r4, #64] 2213:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4575 .loc 1 2213 9 view .LVU1563 2219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4576 .loc 1 2219 9 view .LVU1564 4577 00ee 1021 movs r1, #16 4578 00f0 2046 mov r0, r4 4579 00f2 FFF7FEFF bl I2C_Enable_IRQ 4580 .LVL314: 2222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4581 .loc 1 2222 9 view .LVU1565 2222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4582 .loc 1 2222 13 is_stmt 0 view .LVU1566 4583 00f6 2268 ldr r2, [r4] 2222:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4584 .loc 1 2222 29 view .LVU1567 4585 00f8 1368 ldr r3, [r2] 4586 00fa 43F40043 orr r3, r3, #32768 4587 00fe 1360 str r3, [r2] 4588 0100 11E0 b .L302 4589 .LVL315: 4590 .L298: 2242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4591 .loc 1 2242 7 is_stmt 1 view .LVU1568 2242:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4592 .loc 1 2242 21 is_stmt 0 view .LVU1569 4593 0102 124B ldr r3, .L309+20 4594 0104 6363 str r3, [r4, #52] 2246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4595 .loc 1 2246 7 is_stmt 1 view .LVU1570 4596 0106 104B ldr r3, .L309+16 4597 0108 0093 str r3, [sp] 4598 010a 4FF00073 mov r3, #33554432 4599 010e CAB2 uxtb r2, r1 ARM GAS /tmp/cchwqEfL.s page 239 4600 .LVL316: 2246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4601 .loc 1 2246 7 is_stmt 0 view .LVU1571 4602 0110 2946 mov r1, r5 4603 0112 2046 mov r0, r4 4604 0114 FFF7FEFF bl I2C_TransferConfig 4605 .LVL317: 2250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4606 .loc 1 2250 7 is_stmt 1 view .LVU1572 2250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4607 .loc 1 2250 7 view .LVU1573 4608 0118 0023 movs r3, #0 4609 011a 84F84030 strb r3, [r4, #64] 2250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4610 .loc 1 2250 7 view .LVU1574 2259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4611 .loc 1 2259 7 view .LVU1575 4612 011e 0221 movs r1, #2 4613 0120 2046 mov r0, r4 4614 0122 FFF7FEFF bl I2C_Enable_IRQ 4615 .LVL318: 4616 .L302: 2262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4617 .loc 1 2262 5 view .LVU1576 2262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4618 .loc 1 2262 12 is_stmt 0 view .LVU1577 4619 0126 0020 movs r0, #0 4620 0128 00E0 b .L295 4621 .LVL319: 4622 .L303: 2266:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4623 .loc 1 2266 12 view .LVU1578 4624 012a 0220 movs r0, #2 4625 .LVL320: 4626 .L295: 2268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4627 .loc 1 2268 1 view .LVU1579 4628 012c 02B0 add sp, sp, #8 4629 .LCFI52: 4630 .cfi_remember_state 4631 .cfi_def_cfa_offset 16 4632 @ sp needed 4633 012e 70BD pop {r4, r5, r6, pc} 4634 .LVL321: 4635 .L304: 4636 .LCFI53: 4637 .cfi_restore_state 2143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4638 .loc 1 2143 14 view .LVU1580 4639 0130 0220 movs r0, #2 4640 0132 FBE7 b .L295 4641 .L305: 2147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4642 .loc 1 2147 5 view .LVU1581 4643 0134 0220 movs r0, #2 4644 0136 F9E7 b .L295 4645 .L310: ARM GAS /tmp/cchwqEfL.s page 240 4646 .align 2 4647 .L309: 4648 0138 0000FFFF .word -65536 4649 013c 00000000 .word I2C_Master_ISR_DMA 4650 0140 00000000 .word I2C_DMAMasterReceiveCplt 4651 0144 00000000 .word I2C_DMAError 4652 0148 00240080 .word -2147474432 4653 014c 00000000 .word I2C_Master_ISR_IT 4654 .cfi_endproc 4655 .LFE154: 4657 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits 4658 .align 1 4659 .global HAL_I2C_Slave_Transmit_DMA 4660 .syntax unified 4661 .thumb 4662 .thumb_func 4663 .fpu fpv5-d16 4665 HAL_I2C_Slave_Transmit_DMA: 4666 .LVL322: 4667 .LFB155: 2279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4668 .loc 1 2279 1 is_stmt 1 view -0 4669 .cfi_startproc 4670 @ args = 0, pretend = 0, frame = 0 4671 @ frame_needed = 0, uses_anonymous_args = 0 2280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4672 .loc 1 2280 3 view .LVU1583 2282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4673 .loc 1 2282 3 view .LVU1584 2282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4674 .loc 1 2282 11 is_stmt 0 view .LVU1585 4675 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4676 0004 DBB2 uxtb r3, r3 2282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4677 .loc 1 2282 6 view .LVU1586 4678 0006 202B cmp r3, #32 4679 0008 40F08D80 bne .L320 2279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4680 .loc 1 2279 1 view .LVU1587 4681 000c 10B5 push {r4, lr} 4682 .LCFI54: 4683 .cfi_def_cfa_offset 8 4684 .cfi_offset 4, -8 4685 .cfi_offset 14, -4 4686 000e 0446 mov r4, r0 2284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4687 .loc 1 2284 5 is_stmt 1 view .LVU1588 2284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4688 .loc 1 2284 8 is_stmt 0 view .LVU1589 4689 0010 002A cmp r2, #0 4690 0012 18BF it ne 4691 0014 0029 cmpne r1, #0 4692 0016 42D0 beq .L327 2290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4693 .loc 1 2290 5 is_stmt 1 view .LVU1590 2290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4694 .loc 1 2290 5 view .LVU1591 ARM GAS /tmp/cchwqEfL.s page 241 4695 0018 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4696 001c 012B cmp r3, #1 4697 001e 00F08480 beq .L321 2290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4698 .loc 1 2290 5 discriminator 2 view .LVU1592 4699 0022 0123 movs r3, #1 4700 0024 80F84030 strb r3, [r0, #64] 2290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4701 .loc 1 2290 5 discriminator 2 view .LVU1593 2292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4702 .loc 1 2292 5 discriminator 2 view .LVU1594 2292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4703 .loc 1 2292 23 is_stmt 0 discriminator 2 view .LVU1595 4704 0028 2123 movs r3, #33 4705 002a 80F84130 strb r3, [r0, #65] 2293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4706 .loc 1 2293 5 is_stmt 1 discriminator 2 view .LVU1596 2293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4707 .loc 1 2293 23 is_stmt 0 discriminator 2 view .LVU1597 4708 002e 2023 movs r3, #32 4709 0030 80F84230 strb r3, [r0, #66] 2294:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4710 .loc 1 2294 5 is_stmt 1 discriminator 2 view .LVU1598 2294:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4711 .loc 1 2294 23 is_stmt 0 discriminator 2 view .LVU1599 4712 0034 0023 movs r3, #0 4713 0036 4364 str r3, [r0, #68] 2297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4714 .loc 1 2297 5 is_stmt 1 discriminator 2 view .LVU1600 2297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 4715 .loc 1 2297 23 is_stmt 0 discriminator 2 view .LVU1601 4716 0038 4162 str r1, [r0, #36] 2298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4717 .loc 1 2298 5 is_stmt 1 discriminator 2 view .LVU1602 2298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4718 .loc 1 2298 23 is_stmt 0 discriminator 2 view .LVU1603 4719 003a 4285 strh r2, [r0, #42] @ movhi 2299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4720 .loc 1 2299 5 is_stmt 1 discriminator 2 view .LVU1604 2299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4721 .loc 1 2299 29 is_stmt 0 discriminator 2 view .LVU1605 4722 003c 438D ldrh r3, [r0, #42] 2299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4723 .loc 1 2299 23 discriminator 2 view .LVU1606 4724 003e 0385 strh r3, [r0, #40] @ movhi 2300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4725 .loc 1 2300 5 is_stmt 1 discriminator 2 view .LVU1607 2300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4726 .loc 1 2300 23 is_stmt 0 discriminator 2 view .LVU1608 4727 0040 3B4B ldr r3, .L330 4728 0042 C362 str r3, [r0, #44] 2301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4729 .loc 1 2301 5 is_stmt 1 discriminator 2 view .LVU1609 2301:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4730 .loc 1 2301 23 is_stmt 0 discriminator 2 view .LVU1610 4731 0044 3B4B ldr r3, .L330+4 4732 0046 4363 str r3, [r0, #52] ARM GAS /tmp/cchwqEfL.s page 242 2304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4733 .loc 1 2304 5 is_stmt 1 discriminator 2 view .LVU1611 2304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4734 .loc 1 2304 19 is_stmt 0 discriminator 2 view .LVU1612 4735 0048 036A ldr r3, [r0, #32] 2304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4736 .loc 1 2304 8 discriminator 2 view .LVU1613 4737 004a B3F5003F cmp r3, #131072 4738 004e 2BD0 beq .L328 4739 .LVL323: 4740 .L314: 2317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4741 .loc 1 2317 5 is_stmt 1 view .LVU1614 2317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4742 .loc 1 2317 13 is_stmt 0 view .LVU1615 4743 0050 638D ldrh r3, [r4, #42] 4744 0052 9BB2 uxth r3, r3 2317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4745 .loc 1 2317 8 view .LVU1616 4746 0054 002B cmp r3, #0 4747 0056 57D0 beq .L315 2319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4748 .loc 1 2319 7 is_stmt 1 view .LVU1617 2319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4749 .loc 1 2319 15 is_stmt 0 view .LVU1618 4750 0058 A36B ldr r3, [r4, #56] 2319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4751 .loc 1 2319 10 view .LVU1619 4752 005a 002B cmp r3, #0 4753 005c 33D0 beq .L316 2322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4754 .loc 1 2322 9 is_stmt 1 view .LVU1620 2322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4755 .loc 1 2322 40 is_stmt 0 view .LVU1621 4756 005e 364A ldr r2, .L330+8 4757 0060 DA63 str r2, [r3, #60] 2325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4758 .loc 1 2325 9 is_stmt 1 view .LVU1622 2325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4759 .loc 1 2325 13 is_stmt 0 view .LVU1623 4760 0062 A36B ldr r3, [r4, #56] 2325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4761 .loc 1 2325 41 view .LVU1624 4762 0064 354A ldr r2, .L330+12 4763 0066 DA64 str r2, [r3, #76] 2328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4764 .loc 1 2328 9 is_stmt 1 view .LVU1625 2328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4765 .loc 1 2328 13 is_stmt 0 view .LVU1626 4766 0068 A26B ldr r2, [r4, #56] 2328:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4767 .loc 1 2328 44 view .LVU1627 4768 006a 0023 movs r3, #0 4769 006c 1364 str r3, [r2, #64] 2329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4770 .loc 1 2329 9 is_stmt 1 view .LVU1628 2329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 243 4771 .loc 1 2329 13 is_stmt 0 view .LVU1629 4772 006e A26B ldr r2, [r4, #56] 2329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4773 .loc 1 2329 41 view .LVU1630 4774 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, 4775 .loc 1 2332 9 is_stmt 1 view .LVU1631 2333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 4776 .loc 1 2333 83 is_stmt 0 view .LVU1632 4777 0072 2268 ldr r2, [r4] 2332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4778 .loc 1 2332 25 view .LVU1633 4779 0074 238D ldrh r3, [r4, #40] 4780 0076 2832 adds r2, r2, #40 4781 0078 616A ldr r1, [r4, #36] 4782 .LVL324: 2332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4783 .loc 1 2332 25 view .LVU1634 4784 007a A06B ldr r0, [r4, #56] 4785 .LVL325: 2332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4786 .loc 1 2332 25 view .LVU1635 4787 007c FFF7FEFF bl HAL_DMA_Start_IT 4788 .LVL326: 2351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4789 .loc 1 2351 7 is_stmt 1 view .LVU1636 2351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4790 .loc 1 2351 10 is_stmt 0 view .LVU1637 4791 0080 78B3 cbz r0, .L329 2371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4792 .loc 1 2371 9 is_stmt 1 view .LVU1638 2371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4793 .loc 1 2371 25 is_stmt 0 view .LVU1639 4794 0082 2823 movs r3, #40 4795 0084 84F84130 strb r3, [r4, #65] 2372:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4796 .loc 1 2372 9 is_stmt 1 view .LVU1640 2372:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4797 .loc 1 2372 25 is_stmt 0 view .LVU1641 4798 0088 0022 movs r2, #0 4799 008a 84F84220 strb r2, [r4, #66] 2375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4800 .loc 1 2375 9 is_stmt 1 view .LVU1642 2375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4801 .loc 1 2375 25 is_stmt 0 view .LVU1643 4802 008e 636C ldr r3, [r4, #68] 4803 0090 43F01003 orr r3, r3, #16 4804 0094 6364 str r3, [r4, #68] 2378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4805 .loc 1 2378 9 is_stmt 1 view .LVU1644 2378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4806 .loc 1 2378 9 view .LVU1645 4807 0096 84F84020 strb r2, [r4, #64] 2378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4808 .loc 1 2378 9 view .LVU1646 2380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4809 .loc 1 2380 9 view .LVU1647 ARM GAS /tmp/cchwqEfL.s page 244 2380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4810 .loc 1 2380 16 is_stmt 0 view .LVU1648 4811 009a 0120 movs r0, #1 4812 .LVL327: 2380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4813 .loc 1 2380 16 view .LVU1649 4814 009c 03E0 b .L312 4815 .LVL328: 4816 .L327: 2286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4817 .loc 1 2286 7 is_stmt 1 view .LVU1650 2286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 4818 .loc 1 2286 23 is_stmt 0 view .LVU1651 4819 009e 4FF40073 mov r3, #512 4820 00a2 4364 str r3, [r0, #68] 2287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4821 .loc 1 2287 7 is_stmt 1 view .LVU1652 2287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4822 .loc 1 2287 15 is_stmt 0 view .LVU1653 4823 00a4 0120 movs r0, #1 4824 .LVL329: 4825 .L312: 2404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4826 .loc 1 2404 1 view .LVU1654 4827 00a6 10BD pop {r4, pc} 4828 .LVL330: 4829 .L328: 2308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4830 .loc 1 2308 7 is_stmt 1 view .LVU1655 2308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4831 .loc 1 2308 11 is_stmt 0 view .LVU1656 4832 00a8 0368 ldr r3, [r0] 2308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4833 .loc 1 2308 30 view .LVU1657 4834 00aa 0A78 ldrb r2, [r1] @ zero_extendqisi2 4835 .LVL331: 2308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4836 .loc 1 2308 28 view .LVU1658 4837 00ac 9A62 str r2, [r3, #40] 2311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4838 .loc 1 2311 7 is_stmt 1 view .LVU1659 2311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4839 .loc 1 2311 11 is_stmt 0 view .LVU1660 4840 00ae 436A ldr r3, [r0, #36] 2311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4841 .loc 1 2311 21 view .LVU1661 4842 00b0 0133 adds r3, r3, #1 4843 00b2 4362 str r3, [r0, #36] 2313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 4844 .loc 1 2313 7 is_stmt 1 view .LVU1662 2313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 4845 .loc 1 2313 11 is_stmt 0 view .LVU1663 4846 00b4 438D ldrh r3, [r0, #42] 4847 00b6 9BB2 uxth r3, r3 2313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 4848 .loc 1 2313 22 view .LVU1664 4849 00b8 013B subs r3, r3, #1 ARM GAS /tmp/cchwqEfL.s page 245 4850 00ba 9BB2 uxth r3, r3 4851 00bc 4385 strh r3, [r0, #42] @ movhi 2314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4852 .loc 1 2314 7 is_stmt 1 view .LVU1665 2314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4853 .loc 1 2314 11 is_stmt 0 view .LVU1666 4854 00be 038D ldrh r3, [r0, #40] 2314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4855 .loc 1 2314 21 view .LVU1667 4856 00c0 013B subs r3, r3, #1 4857 00c2 0385 strh r3, [r0, #40] @ movhi 4858 00c4 C4E7 b .L314 4859 .L316: 2339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4860 .loc 1 2339 9 is_stmt 1 view .LVU1668 2339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4861 .loc 1 2339 25 is_stmt 0 view .LVU1669 4862 00c6 2823 movs r3, #40 4863 00c8 84F84130 strb r3, [r4, #65] 2340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4864 .loc 1 2340 9 is_stmt 1 view .LVU1670 2340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4865 .loc 1 2340 25 is_stmt 0 view .LVU1671 4866 00cc 0022 movs r2, #0 4867 00ce 84F84220 strb r2, [r4, #66] 2343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4868 .loc 1 2343 9 is_stmt 1 view .LVU1672 2343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4869 .loc 1 2343 25 is_stmt 0 view .LVU1673 4870 00d2 636C ldr r3, [r4, #68] 4871 00d4 43F08003 orr r3, r3, #128 4872 00d8 6364 str r3, [r4, #68] 2346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4873 .loc 1 2346 9 is_stmt 1 view .LVU1674 2346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4874 .loc 1 2346 9 view .LVU1675 4875 00da 84F84020 strb r2, [r4, #64] 2346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4876 .loc 1 2346 9 view .LVU1676 2348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4877 .loc 1 2348 9 view .LVU1677 2348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4878 .loc 1 2348 16 is_stmt 0 view .LVU1678 4879 00de 0120 movs r0, #1 4880 .LVL332: 2348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4881 .loc 1 2348 16 view .LVU1679 4882 00e0 E1E7 b .L312 4883 .LVL333: 4884 .L329: 2354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4885 .loc 1 2354 9 is_stmt 1 view .LVU1680 2354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4886 .loc 1 2354 13 is_stmt 0 view .LVU1681 4887 00e2 2268 ldr r2, [r4] 2354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4888 .loc 1 2354 29 view .LVU1682 ARM GAS /tmp/cchwqEfL.s page 246 4889 00e4 5368 ldr r3, [r2, #4] 4890 00e6 23F40043 bic r3, r3, #32768 4891 00ea 5360 str r3, [r2, #4] 2357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4892 .loc 1 2357 9 is_stmt 1 view .LVU1683 2357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4893 .loc 1 2357 9 view .LVU1684 4894 00ec 0023 movs r3, #0 4895 00ee 84F84030 strb r3, [r4, #64] 2357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4896 .loc 1 2357 9 view .LVU1685 2363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4897 .loc 1 2363 9 view .LVU1686 4898 00f2 4FF40041 mov r1, #32768 4899 00f6 2046 mov r0, r4 4900 .LVL334: 2363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4901 .loc 1 2363 9 is_stmt 0 view .LVU1687 4902 00f8 FFF7FEFF bl I2C_Enable_IRQ 4903 .LVL335: 2366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4904 .loc 1 2366 9 is_stmt 1 view .LVU1688 2366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4905 .loc 1 2366 13 is_stmt 0 view .LVU1689 4906 00fc 2268 ldr r2, [r4] 2366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4907 .loc 1 2366 29 view .LVU1690 4908 00fe 1368 ldr r3, [r2] 4909 0100 43F48043 orr r3, r3, #16384 4910 0104 1360 str r3, [r2] 4911 0106 0CE0 b .L319 4912 .LVL336: 4913 .L315: 2386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4914 .loc 1 2386 7 is_stmt 1 view .LVU1691 2386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4915 .loc 1 2386 11 is_stmt 0 view .LVU1692 4916 0108 2268 ldr r2, [r4] 2386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4917 .loc 1 2386 27 view .LVU1693 4918 010a 5368 ldr r3, [r2, #4] 4919 010c 23F40043 bic r3, r3, #32768 4920 0110 5360 str r3, [r2, #4] 2389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4921 .loc 1 2389 7 is_stmt 1 view .LVU1694 2389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4922 .loc 1 2389 7 view .LVU1695 4923 0112 0023 movs r3, #0 4924 0114 84F84030 strb r3, [r4, #64] 2389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4925 .loc 1 2389 7 view .LVU1696 2395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4926 .loc 1 2395 7 view .LVU1697 4927 0118 4FF40041 mov r1, #32768 4928 .LVL337: 2395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4929 .loc 1 2395 7 is_stmt 0 view .LVU1698 ARM GAS /tmp/cchwqEfL.s page 247 4930 011c 2046 mov r0, r4 4931 .LVL338: 2395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4932 .loc 1 2395 7 view .LVU1699 4933 011e FFF7FEFF bl I2C_Enable_IRQ 4934 .LVL339: 4935 .L319: 2398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4936 .loc 1 2398 5 is_stmt 1 view .LVU1700 2398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4937 .loc 1 2398 12 is_stmt 0 view .LVU1701 4938 0122 0020 movs r0, #0 4939 0124 BFE7 b .L312 4940 .LVL340: 4941 .L320: 4942 .LCFI55: 4943 .cfi_def_cfa_offset 0 4944 .cfi_restore 4 4945 .cfi_restore 14 2402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 4946 .loc 1 2402 12 view .LVU1702 4947 0126 0220 movs r0, #2 4948 .LVL341: 2404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4949 .loc 1 2404 1 view .LVU1703 4950 0128 7047 bx lr 4951 .LVL342: 4952 .L321: 4953 .LCFI56: 4954 .cfi_def_cfa_offset 8 4955 .cfi_offset 4, -8 4956 .cfi_offset 14, -4 2290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4957 .loc 1 2290 5 view .LVU1704 4958 012a 0220 movs r0, #2 4959 .LVL343: 2290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4960 .loc 1 2290 5 view .LVU1705 4961 012c BBE7 b .L312 4962 .L331: 4963 012e 00BF .align 2 4964 .L330: 4965 0130 0000FFFF .word -65536 4966 0134 00000000 .word I2C_Slave_ISR_DMA 4967 0138 00000000 .word I2C_DMASlaveTransmitCplt 4968 013c 00000000 .word I2C_DMAError 4969 .cfi_endproc 4970 .LFE155: 4972 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits 4973 .align 1 4974 .global HAL_I2C_Slave_Receive_DMA 4975 .syntax unified 4976 .thumb 4977 .thumb_func 4978 .fpu fpv5-d16 4980 HAL_I2C_Slave_Receive_DMA: 4981 .LVL344: ARM GAS /tmp/cchwqEfL.s page 248 4982 .LFB156: 2415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4983 .loc 1 2415 1 is_stmt 1 view -0 4984 .cfi_startproc 4985 @ args = 0, pretend = 0, frame = 0 4986 @ frame_needed = 0, uses_anonymous_args = 0 2415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4987 .loc 1 2415 1 is_stmt 0 view .LVU1707 4988 0000 38B5 push {r3, r4, r5, lr} 4989 .LCFI57: 4990 .cfi_def_cfa_offset 16 4991 .cfi_offset 3, -16 4992 .cfi_offset 4, -12 4993 .cfi_offset 5, -8 4994 .cfi_offset 14, -4 2416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 4995 .loc 1 2416 3 is_stmt 1 view .LVU1708 2418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4996 .loc 1 2418 3 view .LVU1709 2418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 4997 .loc 1 2418 11 is_stmt 0 view .LVU1710 4998 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4999 0006 DBB2 uxtb r3, r3 2418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5000 .loc 1 2418 6 view .LVU1711 5001 0008 202B cmp r3, #32 5002 000a 65D1 bne .L338 5003 000c 0446 mov r4, r0 2420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5004 .loc 1 2420 5 is_stmt 1 view .LVU1712 2420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5005 .loc 1 2420 8 is_stmt 0 view .LVU1713 5006 000e 002A cmp r2, #0 5007 0010 18BF it ne 5008 0012 0029 cmpne r1, #0 5009 0014 3AD0 beq .L342 2426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5010 .loc 1 2426 5 is_stmt 1 view .LVU1714 2426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5011 .loc 1 2426 5 view .LVU1715 5012 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5013 001a 012B cmp r3, #1 5014 001c 5FD0 beq .L339 2426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5015 .loc 1 2426 5 discriminator 2 view .LVU1716 5016 001e 0123 movs r3, #1 5017 0020 80F84030 strb r3, [r0, #64] 2426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5018 .loc 1 2426 5 discriminator 2 view .LVU1717 2428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 5019 .loc 1 2428 5 discriminator 2 view .LVU1718 2428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 5020 .loc 1 2428 23 is_stmt 0 discriminator 2 view .LVU1719 5021 0024 2223 movs r3, #34 5022 0026 80F84130 strb r3, [r0, #65] 2429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5023 .loc 1 2429 5 is_stmt 1 discriminator 2 view .LVU1720 ARM GAS /tmp/cchwqEfL.s page 249 2429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5024 .loc 1 2429 23 is_stmt 0 discriminator 2 view .LVU1721 5025 002a 2023 movs r3, #32 5026 002c 80F84230 strb r3, [r0, #66] 2430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5027 .loc 1 2430 5 is_stmt 1 discriminator 2 view .LVU1722 2430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5028 .loc 1 2430 23 is_stmt 0 discriminator 2 view .LVU1723 5029 0030 0023 movs r3, #0 5030 0032 4364 str r3, [r0, #68] 2433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 5031 .loc 1 2433 5 is_stmt 1 discriminator 2 view .LVU1724 2433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 5032 .loc 1 2433 23 is_stmt 0 discriminator 2 view .LVU1725 5033 0034 4162 str r1, [r0, #36] 2434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5034 .loc 1 2434 5 is_stmt 1 discriminator 2 view .LVU1726 2434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5035 .loc 1 2434 23 is_stmt 0 discriminator 2 view .LVU1727 5036 0036 4285 strh r2, [r0, #42] @ movhi 2435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5037 .loc 1 2435 5 is_stmt 1 discriminator 2 view .LVU1728 2435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5038 .loc 1 2435 29 is_stmt 0 discriminator 2 view .LVU1729 5039 0038 438D ldrh r3, [r0, #42] 2435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5040 .loc 1 2435 23 discriminator 2 view .LVU1730 5041 003a 0385 strh r3, [r0, #40] @ movhi 2436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 5042 .loc 1 2436 5 is_stmt 1 discriminator 2 view .LVU1731 2436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 5043 .loc 1 2436 23 is_stmt 0 discriminator 2 view .LVU1732 5044 003c 294B ldr r3, .L344 5045 003e C362 str r3, [r0, #44] 2437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5046 .loc 1 2437 5 is_stmt 1 discriminator 2 view .LVU1733 2437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5047 .loc 1 2437 23 is_stmt 0 discriminator 2 view .LVU1734 5048 0040 294B ldr r3, .L344+4 5049 0042 4363 str r3, [r0, #52] 2439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5050 .loc 1 2439 5 is_stmt 1 discriminator 2 view .LVU1735 2439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5051 .loc 1 2439 13 is_stmt 0 discriminator 2 view .LVU1736 5052 0044 C36B ldr r3, [r0, #60] 2439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5053 .loc 1 2439 8 discriminator 2 view .LVU1737 5054 0046 33B3 cbz r3, .L335 2442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5055 .loc 1 2442 7 is_stmt 1 view .LVU1738 2442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5056 .loc 1 2442 38 is_stmt 0 view .LVU1739 5057 0048 284A ldr r2, .L344+8 5058 .LVL345: 2442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5059 .loc 1 2442 38 view .LVU1740 5060 004a DA63 str r2, [r3, #60] ARM GAS /tmp/cchwqEfL.s page 250 2445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5061 .loc 1 2445 7 is_stmt 1 view .LVU1741 2445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5062 .loc 1 2445 11 is_stmt 0 view .LVU1742 5063 004c C36B ldr r3, [r0, #60] 2445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5064 .loc 1 2445 39 view .LVU1743 5065 004e 284A ldr r2, .L344+12 5066 0050 DA64 str r2, [r3, #76] 2448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5067 .loc 1 2448 7 is_stmt 1 view .LVU1744 2448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5068 .loc 1 2448 11 is_stmt 0 view .LVU1745 5069 0052 C26B ldr r2, [r0, #60] 2448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 5070 .loc 1 2448 42 view .LVU1746 5071 0054 0023 movs r3, #0 5072 0056 1364 str r3, [r2, #64] 2449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5073 .loc 1 2449 7 is_stmt 1 view .LVU1747 2449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5074 .loc 1 2449 11 is_stmt 0 view .LVU1748 5075 0058 C26B ldr r2, [r0, #60] 2449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5076 .loc 1 2449 39 view .LVU1749 5077 005a 1365 str r3, [r2, #80] 2452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 5078 .loc 1 2452 7 is_stmt 1 view .LVU1750 2452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 5079 .loc 1 2452 69 is_stmt 0 view .LVU1751 5080 005c 0068 ldr r0, [r0] 5081 .LVL346: 2452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 5082 .loc 1 2452 23 view .LVU1752 5083 005e 238D ldrh r3, [r4, #40] 5084 0060 0A46 mov r2, r1 5085 0062 00F12401 add r1, r0, #36 5086 .LVL347: 2452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 5087 .loc 1 2452 23 view .LVU1753 5088 0066 E06B ldr r0, [r4, #60] 5089 0068 FFF7FEFF bl HAL_DMA_Start_IT 5090 .LVL348: 2470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5091 .loc 1 2470 5 is_stmt 1 view .LVU1754 2470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5092 .loc 1 2470 8 is_stmt 0 view .LVU1755 5093 006c 0546 mov r5, r0 5094 006e 00B3 cbz r0, .L343 2490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5095 .loc 1 2490 7 is_stmt 1 view .LVU1756 2490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5096 .loc 1 2490 23 is_stmt 0 view .LVU1757 5097 0070 2823 movs r3, #40 5098 0072 84F84130 strb r3, [r4, #65] 2491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5099 .loc 1 2491 7 is_stmt 1 view .LVU1758 ARM GAS /tmp/cchwqEfL.s page 251 2491:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5100 .loc 1 2491 23 is_stmt 0 view .LVU1759 5101 0076 0022 movs r2, #0 5102 0078 84F84220 strb r2, [r4, #66] 2494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5103 .loc 1 2494 7 is_stmt 1 view .LVU1760 2494:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5104 .loc 1 2494 23 is_stmt 0 view .LVU1761 5105 007c 636C ldr r3, [r4, #68] 5106 007e 43F01003 orr r3, r3, #16 5107 0082 6364 str r3, [r4, #68] 2497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5108 .loc 1 2497 7 is_stmt 1 view .LVU1762 2497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5109 .loc 1 2497 7 view .LVU1763 5110 0084 84F84020 strb r2, [r4, #64] 2497:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5111 .loc 1 2497 7 view .LVU1764 2499:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5112 .loc 1 2499 7 view .LVU1765 2499:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5113 .loc 1 2499 14 is_stmt 0 view .LVU1766 5114 0088 0125 movs r5, #1 5115 008a 26E0 b .L333 5116 .LVL349: 5117 .L342: 2422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5118 .loc 1 2422 7 is_stmt 1 view .LVU1767 2422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5119 .loc 1 2422 23 is_stmt 0 view .LVU1768 5120 008c 4FF40073 mov r3, #512 5121 0090 4364 str r3, [r0, #68] 2423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5122 .loc 1 2423 7 is_stmt 1 view .LVU1769 2423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5123 .loc 1 2423 15 is_stmt 0 view .LVU1770 5124 0092 0125 movs r5, #1 5125 0094 21E0 b .L333 5126 .L335: 2458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5127 .loc 1 2458 7 is_stmt 1 view .LVU1771 2458:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5128 .loc 1 2458 23 is_stmt 0 view .LVU1772 5129 0096 2823 movs r3, #40 5130 0098 80F84130 strb r3, [r0, #65] 2459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5131 .loc 1 2459 7 is_stmt 1 view .LVU1773 2459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5132 .loc 1 2459 23 is_stmt 0 view .LVU1774 5133 009c 0022 movs r2, #0 5134 .LVL350: 2459:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5135 .loc 1 2459 23 view .LVU1775 5136 009e 80F84220 strb r2, [r0, #66] 2462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5137 .loc 1 2462 7 is_stmt 1 view .LVU1776 2462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 252 5138 .loc 1 2462 23 is_stmt 0 view .LVU1777 5139 00a2 436C ldr r3, [r0, #68] 5140 00a4 43F08003 orr r3, r3, #128 5141 00a8 4364 str r3, [r0, #68] 2465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5142 .loc 1 2465 7 is_stmt 1 view .LVU1778 2465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5143 .loc 1 2465 7 view .LVU1779 5144 00aa 80F84020 strb r2, [r0, #64] 2465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5145 .loc 1 2465 7 view .LVU1780 2467:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5146 .loc 1 2467 7 view .LVU1781 2467:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5147 .loc 1 2467 14 is_stmt 0 view .LVU1782 5148 00ae 0125 movs r5, #1 5149 00b0 13E0 b .L333 5150 .LVL351: 5151 .L343: 2473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5152 .loc 1 2473 7 is_stmt 1 view .LVU1783 2473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5153 .loc 1 2473 11 is_stmt 0 view .LVU1784 5154 00b2 2268 ldr r2, [r4] 2473:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5155 .loc 1 2473 27 view .LVU1785 5156 00b4 5368 ldr r3, [r2, #4] 5157 00b6 23F40043 bic r3, r3, #32768 5158 00ba 5360 str r3, [r2, #4] 2476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5159 .loc 1 2476 7 is_stmt 1 view .LVU1786 2476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5160 .loc 1 2476 7 view .LVU1787 5161 00bc 0023 movs r3, #0 5162 00be 84F84030 strb r3, [r4, #64] 2476:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5163 .loc 1 2476 7 view .LVU1788 2482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5164 .loc 1 2482 7 view .LVU1789 5165 00c2 4FF40041 mov r1, #32768 5166 00c6 2046 mov r0, r4 5167 .LVL352: 2482:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5168 .loc 1 2482 7 is_stmt 0 view .LVU1790 5169 00c8 FFF7FEFF bl I2C_Enable_IRQ 5170 .LVL353: 2485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5171 .loc 1 2485 7 is_stmt 1 view .LVU1791 2485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5172 .loc 1 2485 11 is_stmt 0 view .LVU1792 5173 00cc 2268 ldr r2, [r4] 2485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5174 .loc 1 2485 27 view .LVU1793 5175 00ce 1368 ldr r3, [r2] 5176 00d0 43F40043 orr r3, r3, #32768 5177 00d4 1360 str r3, [r2] 2502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/cchwqEfL.s page 253 5178 .loc 1 2502 5 is_stmt 1 view .LVU1794 2502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5179 .loc 1 2502 12 is_stmt 0 view .LVU1795 5180 00d6 00E0 b .L333 5181 .LVL354: 5182 .L338: 2506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5183 .loc 1 2506 12 view .LVU1796 5184 00d8 0225 movs r5, #2 5185 .LVL355: 5186 .L333: 2508:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5187 .loc 1 2508 1 view .LVU1797 5188 00da 2846 mov r0, r5 5189 00dc 38BD pop {r3, r4, r5, pc} 5190 .LVL356: 5191 .L339: 2426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5192 .loc 1 2426 5 view .LVU1798 5193 00de 0225 movs r5, #2 5194 00e0 FBE7 b .L333 5195 .L345: 5196 00e2 00BF .align 2 5197 .L344: 5198 00e4 0000FFFF .word -65536 5199 00e8 00000000 .word I2C_Slave_ISR_DMA 5200 00ec 00000000 .word I2C_DMASlaveReceiveCplt 5201 00f0 00000000 .word I2C_DMAError 5202 .cfi_endproc 5203 .LFE156: 5205 .section .text.HAL_I2C_Mem_Write,"ax",%progbits 5206 .align 1 5207 .global HAL_I2C_Mem_Write 5208 .syntax unified 5209 .thumb 5210 .thumb_func 5211 .fpu fpv5-d16 5213 HAL_I2C_Mem_Write: 5214 .LVL357: 5215 .LFB157: 2525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 5216 .loc 1 2525 1 is_stmt 1 view -0 5217 .cfi_startproc 5218 @ args = 12, pretend = 0, frame = 0 5219 @ frame_needed = 0, uses_anonymous_args = 0 2525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 5220 .loc 1 2525 1 is_stmt 0 view .LVU1800 5221 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5222 .LCFI58: 5223 .cfi_def_cfa_offset 36 5224 .cfi_offset 4, -36 5225 .cfi_offset 5, -32 5226 .cfi_offset 6, -28 5227 .cfi_offset 7, -24 5228 .cfi_offset 8, -20 5229 .cfi_offset 9, -16 5230 .cfi_offset 10, -12 ARM GAS /tmp/cchwqEfL.s page 254 5231 .cfi_offset 11, -8 5232 .cfi_offset 14, -4 5233 0004 83B0 sub sp, sp, #12 5234 .LCFI59: 5235 .cfi_def_cfa_offset 48 5236 0006 0D46 mov r5, r1 5237 0008 BDF834A0 ldrh r10, [sp, #52] 5238 000c 0E9F ldr r7, [sp, #56] 2526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5239 .loc 1 2526 3 is_stmt 1 view .LVU1801 2529:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5240 .loc 1 2529 3 view .LVU1802 2531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5241 .loc 1 2531 3 view .LVU1803 2531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5242 .loc 1 2531 11 is_stmt 0 view .LVU1804 5243 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5244 .LVL358: 2531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5245 .loc 1 2531 11 view .LVU1805 5246 0012 C9B2 uxtb r1, r1 2531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5247 .loc 1 2531 6 view .LVU1806 5248 0014 2029 cmp r1, #32 5249 0016 40F0BC80 bne .L355 5250 001a 0446 mov r4, r0 5251 001c 9046 mov r8, r2 5252 001e 9946 mov r9, r3 2533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5253 .loc 1 2533 5 is_stmt 1 view .LVU1807 2533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5254 .loc 1 2533 8 is_stmt 0 view .LVU1808 5255 0020 0C9B ldr r3, [sp, #48] 5256 .LVL359: 2533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5257 .loc 1 2533 8 view .LVU1809 5258 0022 BAF1000F cmp r10, #0 5259 0026 18BF it ne 5260 0028 002B cmpne r3, #0 5261 002a 16D0 beq .L362 2540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5262 .loc 1 2540 5 is_stmt 1 view .LVU1810 2540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5263 .loc 1 2540 5 view .LVU1811 5264 002c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5265 0030 012B cmp r3, #1 5266 0032 00F0B280 beq .L356 2540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5267 .loc 1 2540 5 discriminator 2 view .LVU1812 5268 0036 4FF0010B mov fp, #1 5269 003a 80F840B0 strb fp, [r0, #64] 2540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5270 .loc 1 2540 5 discriminator 2 view .LVU1813 2543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5271 .loc 1 2543 5 discriminator 2 view .LVU1814 2543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5272 .loc 1 2543 17 is_stmt 0 discriminator 2 view .LVU1815 ARM GAS /tmp/cchwqEfL.s page 255 5273 003e FFF7FEFF bl HAL_GetTick 5274 .LVL360: 2543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5275 .loc 1 2543 17 discriminator 2 view .LVU1816 5276 0042 0646 mov r6, r0 5277 .LVL361: 2545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5278 .loc 1 2545 5 is_stmt 1 discriminator 2 view .LVU1817 2545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5279 .loc 1 2545 9 is_stmt 0 discriminator 2 view .LVU1818 5280 0044 0090 str r0, [sp] 5281 0046 1923 movs r3, #25 5282 0048 5A46 mov r2, fp 5283 004a 4FF40041 mov r1, #32768 5284 004e 2046 mov r0, r4 5285 .LVL362: 2545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5286 .loc 1 2545 9 discriminator 2 view .LVU1819 5287 0050 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5288 .LVL363: 2545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5289 .loc 1 2545 8 discriminator 2 view .LVU1820 5290 0054 30B1 cbz r0, .L363 2547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5291 .loc 1 2547 14 view .LVU1821 5292 0056 0120 movs r0, #1 5293 0058 9CE0 b .L347 5294 .LVL364: 5295 .L362: 2535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5296 .loc 1 2535 7 is_stmt 1 view .LVU1822 2535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5297 .loc 1 2535 23 is_stmt 0 view .LVU1823 5298 005a 4FF40073 mov r3, #512 5299 005e 4364 str r3, [r0, #68] 2536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5300 .loc 1 2536 7 is_stmt 1 view .LVU1824 2536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5301 .loc 1 2536 15 is_stmt 0 view .LVU1825 5302 0060 0120 movs r0, #1 5303 .LVL365: 2536:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5304 .loc 1 2536 15 view .LVU1826 5305 0062 97E0 b .L347 5306 .LVL366: 5307 .L363: 2550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5308 .loc 1 2550 5 is_stmt 1 view .LVU1827 2550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5309 .loc 1 2550 21 is_stmt 0 view .LVU1828 5310 0064 2123 movs r3, #33 5311 0066 84F84130 strb r3, [r4, #65] 2551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5312 .loc 1 2551 5 is_stmt 1 view .LVU1829 2551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5313 .loc 1 2551 21 is_stmt 0 view .LVU1830 5314 006a 4023 movs r3, #64 ARM GAS /tmp/cchwqEfL.s page 256 5315 006c 84F84230 strb r3, [r4, #66] 2552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5316 .loc 1 2552 5 is_stmt 1 view .LVU1831 2552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5317 .loc 1 2552 21 is_stmt 0 view .LVU1832 5318 0070 0023 movs r3, #0 5319 0072 6364 str r3, [r4, #68] 2555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 5320 .loc 1 2555 5 is_stmt 1 view .LVU1833 2555:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 5321 .loc 1 2555 21 is_stmt 0 view .LVU1834 5322 0074 0C9A ldr r2, [sp, #48] 5323 0076 6262 str r2, [r4, #36] 2556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5324 .loc 1 2556 5 is_stmt 1 view .LVU1835 2556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5325 .loc 1 2556 21 is_stmt 0 view .LVU1836 5326 0078 A4F82AA0 strh r10, [r4, #42] @ movhi 2557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5327 .loc 1 2557 5 is_stmt 1 view .LVU1837 2557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5328 .loc 1 2557 21 is_stmt 0 view .LVU1838 5329 007c 6363 str r3, [r4, #52] 2560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5330 .loc 1 2560 5 is_stmt 1 view .LVU1839 2560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5331 .loc 1 2560 9 is_stmt 0 view .LVU1840 5332 007e 0196 str r6, [sp, #4] 5333 0080 0097 str r7, [sp] 5334 0082 4B46 mov r3, r9 5335 0084 4246 mov r2, r8 5336 0086 2946 mov r1, r5 5337 0088 2046 mov r0, r4 5338 008a FFF7FEFF bl I2C_RequestMemoryWrite 5339 .LVL367: 2560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5340 .loc 1 2560 8 view .LVU1841 5341 008e 70B9 cbnz r0, .L364 2568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5342 .loc 1 2568 5 is_stmt 1 view .LVU1842 2568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5343 .loc 1 2568 13 is_stmt 0 view .LVU1843 5344 0090 638D ldrh r3, [r4, #42] 5345 0092 9BB2 uxth r3, r3 2568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5346 .loc 1 2568 8 view .LVU1844 5347 0094 FF2B cmp r3, #255 5348 0096 0FD9 bls .L350 2570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5349 .loc 1 2570 7 is_stmt 1 view .LVU1845 2570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5350 .loc 1 2570 22 is_stmt 0 view .LVU1846 5351 0098 FF22 movs r2, #255 5352 009a 2285 strh r2, [r4, #40] @ movhi 2571:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5353 .loc 1 2571 7 is_stmt 1 view .LVU1847 5354 009c 0023 movs r3, #0 ARM GAS /tmp/cchwqEfL.s page 257 5355 009e 0093 str r3, [sp] 5356 00a0 4FF08073 mov r3, #16777216 5357 00a4 2946 mov r1, r5 5358 00a6 2046 mov r0, r4 5359 00a8 FFF7FEFF bl I2C_TransferConfig 5360 .LVL368: 5361 00ac 21E0 b .L354 5362 .L364: 2563:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5363 .loc 1 2563 7 view .LVU1848 2563:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5364 .loc 1 2563 7 view .LVU1849 5365 00ae 0023 movs r3, #0 5366 00b0 84F84030 strb r3, [r4, #64] 2563:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5367 .loc 1 2563 7 view .LVU1850 2564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5368 .loc 1 2564 7 view .LVU1851 2564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5369 .loc 1 2564 14 is_stmt 0 view .LVU1852 5370 00b4 5846 mov r0, fp 5371 00b6 6DE0 b .L347 5372 .L350: 2575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5373 .loc 1 2575 7 is_stmt 1 view .LVU1853 2575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5374 .loc 1 2575 28 is_stmt 0 view .LVU1854 5375 00b8 628D ldrh r2, [r4, #42] 5376 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 5377 .loc 1 2575 22 view .LVU1855 5378 00bc 2285 strh r2, [r4, #40] @ movhi 2576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5379 .loc 1 2576 7 is_stmt 1 view .LVU1856 5380 00be 0023 movs r3, #0 5381 00c0 0093 str r3, [sp] 5382 00c2 4FF00073 mov r3, #33554432 5383 00c6 D2B2 uxtb r2, r2 5384 00c8 2946 mov r1, r5 5385 00ca 2046 mov r0, r4 5386 00cc FFF7FEFF bl I2C_TransferConfig 5387 .LVL369: 5388 00d0 0FE0 b .L354 5389 .L353: 2612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5390 .loc 1 2612 11 view .LVU1857 2612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5391 .loc 1 2612 32 is_stmt 0 view .LVU1858 5392 00d2 628D ldrh r2, [r4, #42] 5393 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, 5394 .loc 1 2612 26 view .LVU1859 5395 00d6 2285 strh r2, [r4, #40] @ movhi 2613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5396 .loc 1 2613 11 is_stmt 1 view .LVU1860 5397 00d8 0023 movs r3, #0 5398 00da 0093 str r3, [sp] ARM GAS /tmp/cchwqEfL.s page 258 5399 00dc 4FF00073 mov r3, #33554432 5400 00e0 D2B2 uxtb r2, r2 5401 00e2 2946 mov r1, r5 5402 00e4 2046 mov r0, r4 5403 00e6 FFF7FEFF bl I2C_TransferConfig 5404 .LVL370: 5405 .L352: 2618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5406 .loc 1 2618 13 view .LVU1861 2618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5407 .loc 1 2618 18 is_stmt 0 view .LVU1862 5408 00ea 638D ldrh r3, [r4, #42] 5409 00ec 9BB2 uxth r3, r3 2618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5410 .loc 1 2618 5 view .LVU1863 5411 00ee 002B cmp r3, #0 5412 00f0 33D0 beq .L365 5413 .L354: 2579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5414 .loc 1 2579 5 is_stmt 1 view .LVU1864 2582:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5415 .loc 1 2582 7 view .LVU1865 2582:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5416 .loc 1 2582 11 is_stmt 0 view .LVU1866 5417 00f2 3246 mov r2, r6 5418 00f4 3946 mov r1, r7 5419 00f6 2046 mov r0, r4 5420 00f8 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 5421 .LVL371: 2582:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5422 .loc 1 2582 10 view .LVU1867 5423 00fc 0028 cmp r0, #0 5424 00fe 4ED1 bne .L358 2588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5425 .loc 1 2588 7 is_stmt 1 view .LVU1868 2588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5426 .loc 1 2588 35 is_stmt 0 view .LVU1869 5427 0100 626A ldr r2, [r4, #36] 2588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5428 .loc 1 2588 11 view .LVU1870 5429 0102 2368 ldr r3, [r4] 2588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5430 .loc 1 2588 30 view .LVU1871 5431 0104 1278 ldrb r2, [r2] @ zero_extendqisi2 2588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5432 .loc 1 2588 28 view .LVU1872 5433 0106 9A62 str r2, [r3, #40] 2591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5434 .loc 1 2591 7 is_stmt 1 view .LVU1873 2591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5435 .loc 1 2591 11 is_stmt 0 view .LVU1874 5436 0108 636A ldr r3, [r4, #36] 2591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5437 .loc 1 2591 21 view .LVU1875 5438 010a 0133 adds r3, r3, #1 5439 010c 6362 str r3, [r4, #36] 2593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; ARM GAS /tmp/cchwqEfL.s page 259 5440 .loc 1 2593 7 is_stmt 1 view .LVU1876 2593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 5441 .loc 1 2593 11 is_stmt 0 view .LVU1877 5442 010e 638D ldrh r3, [r4, #42] 5443 0110 9BB2 uxth r3, r3 2593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 5444 .loc 1 2593 22 view .LVU1878 5445 0112 013B subs r3, r3, #1 5446 0114 9BB2 uxth r3, r3 5447 0116 6385 strh r3, [r4, #42] @ movhi 2594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5448 .loc 1 2594 7 is_stmt 1 view .LVU1879 2594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5449 .loc 1 2594 11 is_stmt 0 view .LVU1880 5450 0118 238D ldrh r3, [r4, #40] 2594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5451 .loc 1 2594 21 view .LVU1881 5452 011a 013B subs r3, r3, #1 5453 011c 9BB2 uxth r3, r3 5454 011e 2385 strh r3, [r4, #40] @ movhi 2596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5455 .loc 1 2596 7 is_stmt 1 view .LVU1882 2596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5456 .loc 1 2596 16 is_stmt 0 view .LVU1883 5457 0120 628D ldrh r2, [r4, #42] 5458 0122 92B2 uxth r2, r2 2596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5459 .loc 1 2596 10 view .LVU1884 5460 0124 002A cmp r2, #0 5461 0126 E0D0 beq .L352 2596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5462 .loc 1 2596 35 discriminator 1 view .LVU1885 5463 0128 002B cmp r3, #0 5464 012a DED1 bne .L352 2599:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5465 .loc 1 2599 9 is_stmt 1 view .LVU1886 2599:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5466 .loc 1 2599 13 is_stmt 0 view .LVU1887 5467 012c 0096 str r6, [sp] 5468 012e 3B46 mov r3, r7 5469 0130 0022 movs r2, #0 5470 0132 8021 movs r1, #128 5471 0134 2046 mov r0, r4 5472 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5473 .LVL372: 2599:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5474 .loc 1 2599 12 view .LVU1888 5475 013a 90BB cbnz r0, .L359 2604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5476 .loc 1 2604 9 is_stmt 1 view .LVU1889 2604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5477 .loc 1 2604 17 is_stmt 0 view .LVU1890 5478 013c 638D ldrh r3, [r4, #42] 5479 013e 9BB2 uxth r3, r3 2604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5480 .loc 1 2604 12 view .LVU1891 5481 0140 FF2B cmp r3, #255 ARM GAS /tmp/cchwqEfL.s page 260 5482 0142 C6D9 bls .L353 2606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5483 .loc 1 2606 11 is_stmt 1 view .LVU1892 2606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5484 .loc 1 2606 26 is_stmt 0 view .LVU1893 5485 0144 FF22 movs r2, #255 5486 0146 2285 strh r2, [r4, #40] @ movhi 2607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5487 .loc 1 2607 11 is_stmt 1 view .LVU1894 5488 0148 0023 movs r3, #0 5489 014a 0093 str r3, [sp] 5490 014c 4FF08073 mov r3, #16777216 5491 0150 2946 mov r1, r5 5492 0152 2046 mov r0, r4 5493 0154 FFF7FEFF bl I2C_TransferConfig 5494 .LVL373: 5495 0158 C7E7 b .L352 5496 .L365: 2622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5497 .loc 1 2622 5 view .LVU1895 2622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5498 .loc 1 2622 9 is_stmt 0 view .LVU1896 5499 015a 3246 mov r2, r6 5500 015c 3946 mov r1, r7 5501 015e 2046 mov r0, r4 5502 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5503 .LVL374: 2622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5504 .loc 1 2622 8 view .LVU1897 5505 0164 F8B9 cbnz r0, .L360 2628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5506 .loc 1 2628 5 is_stmt 1 view .LVU1898 5507 0166 2368 ldr r3, [r4] 5508 0168 2022 movs r2, #32 5509 016a DA61 str r2, [r3, #28] 2631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5510 .loc 1 2631 5 view .LVU1899 5511 016c 2168 ldr r1, [r4] 5512 016e 4B68 ldr r3, [r1, #4] 5513 0170 23F0FF73 bic r3, r3, #33423360 5514 0174 23F48B33 bic r3, r3, #71168 5515 0178 23F4FF73 bic r3, r3, #510 5516 017c 23F00103 bic r3, r3, #1 5517 0180 4B60 str r3, [r1, #4] 2633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5518 .loc 1 2633 5 view .LVU1900 2633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5519 .loc 1 2633 17 is_stmt 0 view .LVU1901 5520 0182 84F84120 strb r2, [r4, #65] 2634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5521 .loc 1 2634 5 is_stmt 1 view .LVU1902 2634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5522 .loc 1 2634 17 is_stmt 0 view .LVU1903 5523 0186 0023 movs r3, #0 5524 0188 84F84230 strb r3, [r4, #66] 2637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5525 .loc 1 2637 5 is_stmt 1 view .LVU1904 ARM GAS /tmp/cchwqEfL.s page 261 2637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5526 .loc 1 2637 5 view .LVU1905 5527 018c 84F84030 strb r3, [r4, #64] 2637:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5528 .loc 1 2637 5 view .LVU1906 2639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5529 .loc 1 2639 5 view .LVU1907 2639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5530 .loc 1 2639 12 is_stmt 0 view .LVU1908 5531 0190 00E0 b .L347 5532 .LVL375: 5533 .L355: 2643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5534 .loc 1 2643 12 view .LVU1909 5535 0192 0220 movs r0, #2 5536 .LVL376: 5537 .L347: 2645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5538 .loc 1 2645 1 view .LVU1910 5539 0194 03B0 add sp, sp, #12 5540 .LCFI60: 5541 .cfi_remember_state 5542 .cfi_def_cfa_offset 36 5543 @ sp needed 5544 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5545 .LVL377: 5546 .L356: 5547 .LCFI61: 5548 .cfi_restore_state 2540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5549 .loc 1 2540 5 view .LVU1911 5550 019a 0220 movs r0, #2 5551 .LVL378: 2540:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5552 .loc 1 2540 5 view .LVU1912 5553 019c FAE7 b .L347 5554 .LVL379: 5555 .L358: 2584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5556 .loc 1 2584 16 view .LVU1913 5557 019e 0120 movs r0, #1 5558 01a0 F8E7 b .L347 5559 .L359: 2601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5560 .loc 1 2601 18 view .LVU1914 5561 01a2 0120 movs r0, #1 5562 01a4 F6E7 b .L347 5563 .L360: 2624:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5564 .loc 1 2624 14 view .LVU1915 5565 01a6 0120 movs r0, #1 5566 01a8 F4E7 b .L347 5567 .cfi_endproc 5568 .LFE157: 5570 .section .text.HAL_I2C_Mem_Read,"ax",%progbits 5571 .align 1 5572 .global HAL_I2C_Mem_Read ARM GAS /tmp/cchwqEfL.s page 262 5573 .syntax unified 5574 .thumb 5575 .thumb_func 5576 .fpu fpv5-d16 5578 HAL_I2C_Mem_Read: 5579 .LVL380: 5580 .LFB158: 2662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 5581 .loc 1 2662 1 is_stmt 1 view -0 5582 .cfi_startproc 5583 @ args = 12, pretend = 0, frame = 0 5584 @ frame_needed = 0, uses_anonymous_args = 0 2662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 5585 .loc 1 2662 1 is_stmt 0 view .LVU1917 5586 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5587 .LCFI62: 5588 .cfi_def_cfa_offset 36 5589 .cfi_offset 4, -36 5590 .cfi_offset 5, -32 5591 .cfi_offset 6, -28 5592 .cfi_offset 7, -24 5593 .cfi_offset 8, -20 5594 .cfi_offset 9, -16 5595 .cfi_offset 10, -12 5596 .cfi_offset 11, -8 5597 .cfi_offset 14, -4 5598 0004 83B0 sub sp, sp, #12 5599 .LCFI63: 5600 .cfi_def_cfa_offset 48 5601 0006 0D46 mov r5, r1 5602 0008 BDF834A0 ldrh r10, [sp, #52] 5603 000c 0E9F ldr r7, [sp, #56] 2663:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5604 .loc 1 2663 3 is_stmt 1 view .LVU1918 2666:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5605 .loc 1 2666 3 view .LVU1919 2668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5606 .loc 1 2668 3 view .LVU1920 2668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5607 .loc 1 2668 11 is_stmt 0 view .LVU1921 5608 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5609 .LVL381: 2668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5610 .loc 1 2668 11 view .LVU1922 5611 0012 C9B2 uxtb r1, r1 2668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5612 .loc 1 2668 6 view .LVU1923 5613 0014 2029 cmp r1, #32 5614 0016 40F0BD80 bne .L375 5615 001a 0446 mov r4, r0 5616 001c 9046 mov r8, r2 5617 001e 9946 mov r9, r3 2670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5618 .loc 1 2670 5 is_stmt 1 view .LVU1924 2670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5619 .loc 1 2670 8 is_stmt 0 view .LVU1925 5620 0020 0C9B ldr r3, [sp, #48] ARM GAS /tmp/cchwqEfL.s page 263 5621 .LVL382: 2670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5622 .loc 1 2670 8 view .LVU1926 5623 0022 BAF1000F cmp r10, #0 5624 0026 18BF it ne 5625 0028 002B cmpne r3, #0 5626 002a 16D0 beq .L382 2677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5627 .loc 1 2677 5 is_stmt 1 view .LVU1927 2677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5628 .loc 1 2677 5 view .LVU1928 5629 002c 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5630 0030 012B cmp r3, #1 5631 0032 00F0B380 beq .L376 2677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5632 .loc 1 2677 5 discriminator 2 view .LVU1929 5633 0036 4FF0010B mov fp, #1 5634 003a 80F840B0 strb fp, [r0, #64] 2677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5635 .loc 1 2677 5 discriminator 2 view .LVU1930 2680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5636 .loc 1 2680 5 discriminator 2 view .LVU1931 2680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5637 .loc 1 2680 17 is_stmt 0 discriminator 2 view .LVU1932 5638 003e FFF7FEFF bl HAL_GetTick 5639 .LVL383: 2680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5640 .loc 1 2680 17 discriminator 2 view .LVU1933 5641 0042 0646 mov r6, r0 5642 .LVL384: 2682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5643 .loc 1 2682 5 is_stmt 1 discriminator 2 view .LVU1934 2682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5644 .loc 1 2682 9 is_stmt 0 discriminator 2 view .LVU1935 5645 0044 0090 str r0, [sp] 5646 0046 1923 movs r3, #25 5647 0048 5A46 mov r2, fp 5648 004a 4FF40041 mov r1, #32768 5649 004e 2046 mov r0, r4 5650 .LVL385: 2682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5651 .loc 1 2682 9 discriminator 2 view .LVU1936 5652 0050 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5653 .LVL386: 2682:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5654 .loc 1 2682 8 discriminator 2 view .LVU1937 5655 0054 30B1 cbz r0, .L383 2684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5656 .loc 1 2684 14 view .LVU1938 5657 0056 0120 movs r0, #1 5658 0058 9DE0 b .L367 5659 .LVL387: 5660 .L382: 2672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5661 .loc 1 2672 7 is_stmt 1 view .LVU1939 2672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5662 .loc 1 2672 23 is_stmt 0 view .LVU1940 ARM GAS /tmp/cchwqEfL.s page 264 5663 005a 4FF40073 mov r3, #512 5664 005e 4364 str r3, [r0, #68] 2673:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5665 .loc 1 2673 7 is_stmt 1 view .LVU1941 2673:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5666 .loc 1 2673 15 is_stmt 0 view .LVU1942 5667 0060 0120 movs r0, #1 5668 .LVL388: 2673:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5669 .loc 1 2673 15 view .LVU1943 5670 0062 98E0 b .L367 5671 .LVL389: 5672 .L383: 2687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5673 .loc 1 2687 5 is_stmt 1 view .LVU1944 2687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5674 .loc 1 2687 21 is_stmt 0 view .LVU1945 5675 0064 2223 movs r3, #34 5676 0066 84F84130 strb r3, [r4, #65] 2688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5677 .loc 1 2688 5 is_stmt 1 view .LVU1946 2688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5678 .loc 1 2688 21 is_stmt 0 view .LVU1947 5679 006a 4023 movs r3, #64 5680 006c 84F84230 strb r3, [r4, #66] 2689:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5681 .loc 1 2689 5 is_stmt 1 view .LVU1948 2689:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5682 .loc 1 2689 21 is_stmt 0 view .LVU1949 5683 0070 0023 movs r3, #0 5684 0072 6364 str r3, [r4, #68] 2692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 5685 .loc 1 2692 5 is_stmt 1 view .LVU1950 2692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 5686 .loc 1 2692 21 is_stmt 0 view .LVU1951 5687 0074 0C9A ldr r2, [sp, #48] 5688 0076 6262 str r2, [r4, #36] 2693:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5689 .loc 1 2693 5 is_stmt 1 view .LVU1952 2693:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5690 .loc 1 2693 21 is_stmt 0 view .LVU1953 5691 0078 A4F82AA0 strh r10, [r4, #42] @ movhi 2694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5692 .loc 1 2694 5 is_stmt 1 view .LVU1954 2694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5693 .loc 1 2694 21 is_stmt 0 view .LVU1955 5694 007c 6363 str r3, [r4, #52] 2697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5695 .loc 1 2697 5 is_stmt 1 view .LVU1956 2697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5696 .loc 1 2697 9 is_stmt 0 view .LVU1957 5697 007e 0196 str r6, [sp, #4] 5698 0080 0097 str r7, [sp] 5699 0082 4B46 mov r3, r9 5700 0084 4246 mov r2, r8 5701 0086 2946 mov r1, r5 5702 0088 2046 mov r0, r4 ARM GAS /tmp/cchwqEfL.s page 265 5703 008a FFF7FEFF bl I2C_RequestMemoryRead 5704 .LVL390: 2697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5705 .loc 1 2697 8 view .LVU1958 5706 008e 70B9 cbnz r0, .L384 2706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5707 .loc 1 2706 5 is_stmt 1 view .LVU1959 2706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5708 .loc 1 2706 13 is_stmt 0 view .LVU1960 5709 0090 638D ldrh r3, [r4, #42] 5710 0092 9BB2 uxth r3, r3 2706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5711 .loc 1 2706 8 view .LVU1961 5712 0094 FF2B cmp r3, #255 5713 0096 0FD9 bls .L370 2708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5714 .loc 1 2708 7 is_stmt 1 view .LVU1962 2708:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5715 .loc 1 2708 22 is_stmt 0 view .LVU1963 5716 0098 0122 movs r2, #1 5717 009a 2285 strh r2, [r4, #40] @ movhi 2709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5718 .loc 1 2709 7 is_stmt 1 view .LVU1964 5719 009c 434B ldr r3, .L386 5720 009e 0093 str r3, [sp] 5721 00a0 4FF08073 mov r3, #16777216 5722 00a4 2946 mov r1, r5 5723 00a6 2046 mov r0, r4 5724 00a8 FFF7FEFF bl I2C_TransferConfig 5725 .LVL391: 5726 00ac 21E0 b .L374 5727 .L384: 2700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5728 .loc 1 2700 7 view .LVU1965 2700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5729 .loc 1 2700 7 view .LVU1966 5730 00ae 0023 movs r3, #0 5731 00b0 84F84030 strb r3, [r4, #64] 2700:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 5732 .loc 1 2700 7 view .LVU1967 2701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5733 .loc 1 2701 7 view .LVU1968 2701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5734 .loc 1 2701 14 is_stmt 0 view .LVU1969 5735 00b4 5846 mov r0, fp 5736 00b6 6EE0 b .L367 5737 .L370: 2714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5738 .loc 1 2714 7 is_stmt 1 view .LVU1970 2714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5739 .loc 1 2714 28 is_stmt 0 view .LVU1971 5740 00b8 628D ldrh r2, [r4, #42] 5741 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, 5742 .loc 1 2714 22 view .LVU1972 5743 00bc 2285 strh r2, [r4, #40] @ movhi 2715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); ARM GAS /tmp/cchwqEfL.s page 266 5744 .loc 1 2715 7 is_stmt 1 view .LVU1973 5745 00be 3B4B ldr r3, .L386 5746 00c0 0093 str r3, [sp] 5747 00c2 4FF00073 mov r3, #33554432 5748 00c6 D2B2 uxtb r2, r2 5749 00c8 2946 mov r1, r5 5750 00ca 2046 mov r0, r4 5751 00cc FFF7FEFF bl I2C_TransferConfig 5752 .LVL392: 5753 00d0 0FE0 b .L374 5754 .L373: 2752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5755 .loc 1 2752 11 view .LVU1974 2752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5756 .loc 1 2752 32 is_stmt 0 view .LVU1975 5757 00d2 628D ldrh r2, [r4, #42] 5758 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, 5759 .loc 1 2752 26 view .LVU1976 5760 00d6 2285 strh r2, [r4, #40] @ movhi 2753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5761 .loc 1 2753 11 is_stmt 1 view .LVU1977 5762 00d8 0023 movs r3, #0 5763 00da 0093 str r3, [sp] 5764 00dc 4FF00073 mov r3, #33554432 5765 00e0 D2B2 uxtb r2, r2 5766 00e2 2946 mov r1, r5 5767 00e4 2046 mov r0, r4 5768 00e6 FFF7FEFF bl I2C_TransferConfig 5769 .LVL393: 5770 .L372: 2757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5771 .loc 1 2757 13 view .LVU1978 2757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5772 .loc 1 2757 18 is_stmt 0 view .LVU1979 5773 00ea 638D ldrh r3, [r4, #42] 5774 00ec 9BB2 uxth r3, r3 2757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5775 .loc 1 2757 5 view .LVU1980 5776 00ee 002B cmp r3, #0 5777 00f0 34D0 beq .L385 5778 .L374: 2719:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5779 .loc 1 2719 5 is_stmt 1 view .LVU1981 2722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5780 .loc 1 2722 7 view .LVU1982 2722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5781 .loc 1 2722 11 is_stmt 0 view .LVU1983 5782 00f2 0096 str r6, [sp] 5783 00f4 3B46 mov r3, r7 5784 00f6 0022 movs r2, #0 5785 00f8 0421 movs r1, #4 5786 00fa 2046 mov r0, r4 5787 00fc FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5788 .LVL394: 2722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5789 .loc 1 2722 10 view .LVU1984 ARM GAS /tmp/cchwqEfL.s page 267 5790 0100 0028 cmp r0, #0 5791 0102 4DD1 bne .L378 2728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5792 .loc 1 2728 7 is_stmt 1 view .LVU1985 2728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5793 .loc 1 2728 38 is_stmt 0 view .LVU1986 5794 0104 2368 ldr r3, [r4] 2728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5795 .loc 1 2728 48 view .LVU1987 5796 0106 5A6A ldr r2, [r3, #36] 2728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5797 .loc 1 2728 12 view .LVU1988 5798 0108 636A ldr r3, [r4, #36] 2728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5799 .loc 1 2728 23 view .LVU1989 5800 010a 1A70 strb r2, [r3] 2731:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5801 .loc 1 2731 7 is_stmt 1 view .LVU1990 2731:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5802 .loc 1 2731 11 is_stmt 0 view .LVU1991 5803 010c 636A ldr r3, [r4, #36] 2731:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5804 .loc 1 2731 21 view .LVU1992 5805 010e 0133 adds r3, r3, #1 5806 0110 6362 str r3, [r4, #36] 2733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 5807 .loc 1 2733 7 is_stmt 1 view .LVU1993 2733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 5808 .loc 1 2733 11 is_stmt 0 view .LVU1994 5809 0112 228D ldrh r2, [r4, #40] 2733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 5810 .loc 1 2733 21 view .LVU1995 5811 0114 013A subs r2, r2, #1 5812 0116 92B2 uxth r2, r2 5813 0118 2285 strh r2, [r4, #40] @ movhi 2734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5814 .loc 1 2734 7 is_stmt 1 view .LVU1996 2734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5815 .loc 1 2734 11 is_stmt 0 view .LVU1997 5816 011a 638D ldrh r3, [r4, #42] 5817 011c 9BB2 uxth r3, r3 2734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5818 .loc 1 2734 22 view .LVU1998 5819 011e 013B subs r3, r3, #1 5820 0120 9BB2 uxth r3, r3 5821 0122 6385 strh r3, [r4, #42] @ movhi 2736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5822 .loc 1 2736 7 is_stmt 1 view .LVU1999 2736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5823 .loc 1 2736 16 is_stmt 0 view .LVU2000 5824 0124 638D ldrh r3, [r4, #42] 5825 0126 9BB2 uxth r3, r3 2736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5826 .loc 1 2736 10 view .LVU2001 5827 0128 002B cmp r3, #0 5828 012a DED0 beq .L372 2736:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/cchwqEfL.s page 268 5829 .loc 1 2736 35 discriminator 1 view .LVU2002 5830 012c 002A cmp r2, #0 5831 012e DCD1 bne .L372 2739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5832 .loc 1 2739 9 is_stmt 1 view .LVU2003 2739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5833 .loc 1 2739 13 is_stmt 0 view .LVU2004 5834 0130 0096 str r6, [sp] 5835 0132 3B46 mov r3, r7 5836 0134 8021 movs r1, #128 5837 0136 2046 mov r0, r4 5838 0138 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5839 .LVL395: 2739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5840 .loc 1 2739 12 view .LVU2005 5841 013c 90BB cbnz r0, .L379 2744:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5842 .loc 1 2744 9 is_stmt 1 view .LVU2006 2744:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5843 .loc 1 2744 17 is_stmt 0 view .LVU2007 5844 013e 638D ldrh r3, [r4, #42] 5845 0140 9BB2 uxth r3, r3 2744:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5846 .loc 1 2744 12 view .LVU2008 5847 0142 FF2B cmp r3, #255 5848 0144 C5D9 bls .L373 2746:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5849 .loc 1 2746 11 is_stmt 1 view .LVU2009 2746:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5850 .loc 1 2746 26 is_stmt 0 view .LVU2010 5851 0146 0122 movs r2, #1 5852 0148 2285 strh r2, [r4, #40] @ movhi 2747:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5853 .loc 1 2747 11 is_stmt 1 view .LVU2011 5854 014a 0023 movs r3, #0 5855 014c 0093 str r3, [sp] 5856 014e 4FF08073 mov r3, #16777216 5857 0152 2946 mov r1, r5 5858 0154 2046 mov r0, r4 5859 0156 FFF7FEFF bl I2C_TransferConfig 5860 .LVL396: 5861 015a C6E7 b .L372 5862 .L385: 2761:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5863 .loc 1 2761 5 view .LVU2012 2761:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5864 .loc 1 2761 9 is_stmt 0 view .LVU2013 5865 015c 3246 mov r2, r6 5866 015e 3946 mov r1, r7 5867 0160 2046 mov r0, r4 5868 0162 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5869 .LVL397: 2761:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5870 .loc 1 2761 8 view .LVU2014 5871 0166 F8B9 cbnz r0, .L380 2767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5872 .loc 1 2767 5 is_stmt 1 view .LVU2015 ARM GAS /tmp/cchwqEfL.s page 269 5873 0168 2368 ldr r3, [r4] 5874 016a 2022 movs r2, #32 5875 016c DA61 str r2, [r3, #28] 2770:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5876 .loc 1 2770 5 view .LVU2016 5877 016e 2168 ldr r1, [r4] 5878 0170 4B68 ldr r3, [r1, #4] 5879 0172 23F0FF73 bic r3, r3, #33423360 5880 0176 23F48B33 bic r3, r3, #71168 5881 017a 23F4FF73 bic r3, r3, #510 5882 017e 23F00103 bic r3, r3, #1 5883 0182 4B60 str r3, [r1, #4] 2772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5884 .loc 1 2772 5 view .LVU2017 2772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5885 .loc 1 2772 17 is_stmt 0 view .LVU2018 5886 0184 84F84120 strb r2, [r4, #65] 2773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5887 .loc 1 2773 5 is_stmt 1 view .LVU2019 2773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5888 .loc 1 2773 17 is_stmt 0 view .LVU2020 5889 0188 0023 movs r3, #0 5890 018a 84F84230 strb r3, [r4, #66] 2776:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5891 .loc 1 2776 5 is_stmt 1 view .LVU2021 2776:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5892 .loc 1 2776 5 view .LVU2022 5893 018e 84F84030 strb r3, [r4, #64] 2776:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5894 .loc 1 2776 5 view .LVU2023 2778:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5895 .loc 1 2778 5 view .LVU2024 2778:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5896 .loc 1 2778 12 is_stmt 0 view .LVU2025 5897 0192 00E0 b .L367 5898 .LVL398: 5899 .L375: 2782:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5900 .loc 1 2782 12 view .LVU2026 5901 0194 0220 movs r0, #2 5902 .LVL399: 5903 .L367: 2784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /** 5904 .loc 1 2784 1 view .LVU2027 5905 0196 03B0 add sp, sp, #12 5906 .LCFI64: 5907 .cfi_remember_state 5908 .cfi_def_cfa_offset 36 5909 @ sp needed 5910 0198 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5911 .LVL400: 5912 .L376: 5913 .LCFI65: 5914 .cfi_restore_state 2677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5915 .loc 1 2677 5 view .LVU2028 5916 019c 0220 movs r0, #2 ARM GAS /tmp/cchwqEfL.s page 270 5917 .LVL401: 2677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5918 .loc 1 2677 5 view .LVU2029 5919 019e FAE7 b .L367 5920 .LVL402: 5921 .L378: 2724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5922 .loc 1 2724 16 view .LVU2030 5923 01a0 0120 movs r0, #1 5924 01a2 F8E7 b .L367 5925 .L379: 2741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5926 .loc 1 2741 18 view .LVU2031 5927 01a4 0120 movs r0, #1 5928 01a6 F6E7 b .L367 5929 .L380: 2763:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 5930 .loc 1 2763 14 view .LVU2032 5931 01a8 0120 movs r0, #1 5932 01aa F4E7 b .L367 5933 .L387: 5934 .align 2 5935 .L386: 5936 01ac 00240080 .word -2147474432 5937 .cfi_endproc 5938 .LFE158: 5940 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits 5941 .align 1 5942 .global HAL_I2C_Mem_Write_IT 5943 .syntax unified 5944 .thumb 5945 .thumb_func 5946 .fpu fpv5-d16 5948 HAL_I2C_Mem_Write_IT: 5949 .LVL403: 5950 .LFB159: 2799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 5951 .loc 1 2799 1 is_stmt 1 view -0 5952 .cfi_startproc 5953 @ args = 8, pretend = 0, frame = 0 5954 @ frame_needed = 0, uses_anonymous_args = 0 2799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 5955 .loc 1 2799 1 is_stmt 0 view .LVU2034 5956 0000 70B5 push {r4, r5, r6, lr} 5957 .LCFI66: 5958 .cfi_def_cfa_offset 16 5959 .cfi_offset 4, -16 5960 .cfi_offset 5, -12 5961 .cfi_offset 6, -8 5962 .cfi_offset 14, -4 5963 0002 82B0 sub sp, sp, #8 5964 .LCFI67: 5965 .cfi_def_cfa_offset 24 5966 0004 0446 mov r4, r0 5967 0006 1D46 mov r5, r3 5968 0008 BDF81C30 ldrh r3, [sp, #28] 5969 .LVL404: ARM GAS /tmp/cchwqEfL.s page 271 2801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5970 .loc 1 2801 3 is_stmt 1 view .LVU2035 2803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5971 .loc 1 2803 3 view .LVU2036 2803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5972 .loc 1 2803 11 is_stmt 0 view .LVU2037 5973 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 5974 .LVL405: 2803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5975 .loc 1 2803 11 view .LVU2038 5976 0010 C0B2 uxtb r0, r0 2803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5977 .loc 1 2803 6 view .LVU2039 5978 0012 2028 cmp r0, #32 5979 0014 43D1 bne .L393 2805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5980 .loc 1 2805 5 is_stmt 1 view .LVU2040 2805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5981 .loc 1 2805 8 is_stmt 0 view .LVU2041 5982 0016 0698 ldr r0, [sp, #24] 5983 0018 002B cmp r3, #0 5984 001a 18BF it ne 5985 001c 0028 cmpne r0, #0 5986 001e 33D0 beq .L397 2811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5987 .loc 1 2811 5 is_stmt 1 view .LVU2042 2811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5988 .loc 1 2811 9 is_stmt 0 view .LVU2043 5989 0020 2068 ldr r0, [r4] 5990 0022 8669 ldr r6, [r0, #24] 2811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 5991 .loc 1 2811 8 view .LVU2044 5992 0024 16F4004F tst r6, #32768 5993 0028 3CD1 bne .L394 2817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5994 .loc 1 2817 5 is_stmt 1 view .LVU2045 2817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5995 .loc 1 2817 5 view .LVU2046 5996 002a 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 5997 002e 012E cmp r6, #1 5998 0030 3AD0 beq .L395 2817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 5999 .loc 1 2817 5 discriminator 2 view .LVU2047 6000 0032 0126 movs r6, #1 6001 0034 84F84060 strb r6, [r4, #64] 2817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6002 .loc 1 2817 5 discriminator 2 view .LVU2048 2819:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6003 .loc 1 2819 5 discriminator 2 view .LVU2049 2819:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6004 .loc 1 2819 23 is_stmt 0 discriminator 2 view .LVU2050 6005 0038 2126 movs r6, #33 6006 003a 84F84160 strb r6, [r4, #65] 2820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6007 .loc 1 2820 5 is_stmt 1 discriminator 2 view .LVU2051 2820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6008 .loc 1 2820 23 is_stmt 0 discriminator 2 view .LVU2052 ARM GAS /tmp/cchwqEfL.s page 272 6009 003e 4026 movs r6, #64 6010 0040 84F84260 strb r6, [r4, #66] 2821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6011 .loc 1 2821 5 is_stmt 1 discriminator 2 view .LVU2053 2821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6012 .loc 1 2821 23 is_stmt 0 discriminator 2 view .LVU2054 6013 0044 0026 movs r6, #0 6014 0046 6664 str r6, [r4, #68] 2824:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 6015 .loc 1 2824 5 is_stmt 1 discriminator 2 view .LVU2055 2824:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 6016 .loc 1 2824 23 is_stmt 0 discriminator 2 view .LVU2056 6017 0048 2685 strh r6, [r4, #40] @ movhi 2825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6018 .loc 1 2825 5 is_stmt 1 discriminator 2 view .LVU2057 2825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6019 .loc 1 2825 23 is_stmt 0 discriminator 2 view .LVU2058 6020 004a 069E ldr r6, [sp, #24] 6021 004c 6662 str r6, [r4, #36] 2826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6022 .loc 1 2826 5 is_stmt 1 discriminator 2 view .LVU2059 2826:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6023 .loc 1 2826 23 is_stmt 0 discriminator 2 view .LVU2060 6024 004e 6385 strh r3, [r4, #42] @ movhi 2827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6025 .loc 1 2827 5 is_stmt 1 discriminator 2 view .LVU2061 2827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6026 .loc 1 2827 23 is_stmt 0 discriminator 2 view .LVU2062 6027 0050 164B ldr r3, .L399 6028 0052 E362 str r3, [r4, #44] 2828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6029 .loc 1 2828 5 is_stmt 1 discriminator 2 view .LVU2063 2828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6030 .loc 1 2828 23 is_stmt 0 discriminator 2 view .LVU2064 6031 0054 164B ldr r3, .L399+4 6032 0056 6363 str r3, [r4, #52] 2829:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6033 .loc 1 2829 5 is_stmt 1 discriminator 2 view .LVU2065 2829:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6034 .loc 1 2829 23 is_stmt 0 discriminator 2 view .LVU2066 6035 0058 E164 str r1, [r4, #76] 2832:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6036 .loc 1 2832 5 is_stmt 1 discriminator 2 view .LVU2067 2832:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6037 .loc 1 2832 8 is_stmt 0 discriminator 2 view .LVU2068 6038 005a 012D cmp r5, #1 6039 005c 19D0 beq .L398 2844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6040 .loc 1 2844 7 is_stmt 1 view .LVU2069 2844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6041 .loc 1 2844 30 is_stmt 0 view .LVU2070 6042 005e 130A lsrs r3, r2, #8 2844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6043 .loc 1 2844 28 view .LVU2071 6044 0060 8362 str r3, [r0, #40] 2847:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6045 .loc 1 2847 7 is_stmt 1 view .LVU2072 ARM GAS /tmp/cchwqEfL.s page 273 2847:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6046 .loc 1 2847 26 is_stmt 0 view .LVU2073 6047 0062 D2B2 uxtb r2, r2 6048 .LVL406: 2847:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6049 .loc 1 2847 24 view .LVU2074 6050 0064 2265 str r2, [r4, #80] 6051 .L392: 2850:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6052 .loc 1 2850 5 is_stmt 1 view .LVU2075 6053 0066 134B ldr r3, .L399+8 6054 0068 0093 str r3, [sp] 6055 006a 4FF08073 mov r3, #16777216 6056 006e EAB2 uxtb r2, r5 6057 0070 2046 mov r0, r4 6058 0072 FFF7FEFF bl I2C_TransferConfig 6059 .LVL407: 2853:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6060 .loc 1 2853 5 view .LVU2076 2853:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6061 .loc 1 2853 5 view .LVU2077 6062 0076 0025 movs r5, #0 6063 0078 84F84050 strb r5, [r4, #64] 2853:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6064 .loc 1 2853 5 view .LVU2078 2863:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6065 .loc 1 2863 5 view .LVU2079 6066 007c 0121 movs r1, #1 6067 007e 2046 mov r0, r4 6068 0080 FFF7FEFF bl I2C_Enable_IRQ 6069 .LVL408: 2865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6070 .loc 1 2865 5 view .LVU2080 2865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6071 .loc 1 2865 12 is_stmt 0 view .LVU2081 6072 0084 2846 mov r0, r5 6073 0086 0BE0 b .L389 6074 .LVL409: 6075 .L397: 2807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6076 .loc 1 2807 7 is_stmt 1 view .LVU2082 2807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6077 .loc 1 2807 23 is_stmt 0 view .LVU2083 6078 0088 4FF40073 mov r3, #512 6079 008c 6364 str r3, [r4, #68] 2808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6080 .loc 1 2808 7 is_stmt 1 view .LVU2084 2808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6081 .loc 1 2808 15 is_stmt 0 view .LVU2085 6082 008e 0120 movs r0, #1 6083 0090 06E0 b .L389 6084 .L398: 2835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6085 .loc 1 2835 7 is_stmt 1 view .LVU2086 2835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6086 .loc 1 2835 30 is_stmt 0 view .LVU2087 6087 0092 D2B2 uxtb r2, r2 ARM GAS /tmp/cchwqEfL.s page 274 6088 .LVL410: 2835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6089 .loc 1 2835 28 view .LVU2088 6090 0094 8262 str r2, [r0, #40] 2838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6091 .loc 1 2838 7 is_stmt 1 view .LVU2089 2838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6092 .loc 1 2838 24 is_stmt 0 view .LVU2090 6093 0096 4FF0FF33 mov r3, #-1 6094 009a 2365 str r3, [r4, #80] 6095 009c E3E7 b .L392 6096 .LVL411: 6097 .L393: 2869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6098 .loc 1 2869 12 view .LVU2091 6099 009e 0220 movs r0, #2 6100 .LVL412: 6101 .L389: 2871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6102 .loc 1 2871 1 view .LVU2092 6103 00a0 02B0 add sp, sp, #8 6104 .LCFI68: 6105 .cfi_remember_state 6106 .cfi_def_cfa_offset 16 6107 @ sp needed 6108 00a2 70BD pop {r4, r5, r6, pc} 6109 .LVL413: 6110 .L394: 6111 .LCFI69: 6112 .cfi_restore_state 2813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6113 .loc 1 2813 14 view .LVU2093 6114 00a4 0220 movs r0, #2 6115 00a6 FBE7 b .L389 6116 .L395: 2817:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6117 .loc 1 2817 5 view .LVU2094 6118 00a8 0220 movs r0, #2 6119 00aa F9E7 b .L389 6120 .L400: 6121 .align 2 6122 .L399: 6123 00ac 0000FFFF .word -65536 6124 00b0 00000000 .word I2C_Mem_ISR_IT 6125 00b4 00200080 .word -2147475456 6126 .cfi_endproc 6127 .LFE159: 6129 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits 6130 .align 1 6131 .global HAL_I2C_Mem_Read_IT 6132 .syntax unified 6133 .thumb 6134 .thumb_func 6135 .fpu fpv5-d16 6137 HAL_I2C_Mem_Read_IT: 6138 .LVL414: 6139 .LFB160: ARM GAS /tmp/cchwqEfL.s page 275 2887:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 6140 .loc 1 2887 1 is_stmt 1 view -0 6141 .cfi_startproc 6142 @ args = 8, pretend = 0, frame = 0 6143 @ frame_needed = 0, uses_anonymous_args = 0 2887:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Check the parameters */ 6144 .loc 1 2887 1 is_stmt 0 view .LVU2096 6145 0000 70B5 push {r4, r5, r6, lr} 6146 .LCFI70: 6147 .cfi_def_cfa_offset 16 6148 .cfi_offset 4, -16 6149 .cfi_offset 5, -12 6150 .cfi_offset 6, -8 6151 .cfi_offset 14, -4 6152 0002 82B0 sub sp, sp, #8 6153 .LCFI71: 6154 .cfi_def_cfa_offset 24 6155 0004 0446 mov r4, r0 6156 0006 1D46 mov r5, r3 6157 0008 BDF81C30 ldrh r3, [sp, #28] 6158 .LVL415: 2889:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6159 .loc 1 2889 3 is_stmt 1 view .LVU2097 2891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6160 .loc 1 2891 3 view .LVU2098 2891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6161 .loc 1 2891 11 is_stmt 0 view .LVU2099 6162 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6163 .LVL416: 2891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6164 .loc 1 2891 11 view .LVU2100 6165 0010 C0B2 uxtb r0, r0 2891:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6166 .loc 1 2891 6 view .LVU2101 6167 0012 2028 cmp r0, #32 6168 0014 41D1 bne .L406 2893:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6169 .loc 1 2893 5 is_stmt 1 view .LVU2102 2893:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6170 .loc 1 2893 8 is_stmt 0 view .LVU2103 6171 0016 0698 ldr r0, [sp, #24] 6172 0018 002B cmp r3, #0 6173 001a 18BF it ne 6174 001c 0028 cmpne r0, #0 6175 001e 31D0 beq .L410 2899:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6176 .loc 1 2899 5 is_stmt 1 view .LVU2104 2899:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6177 .loc 1 2899 9 is_stmt 0 view .LVU2105 6178 0020 2068 ldr r0, [r4] 6179 0022 8669 ldr r6, [r0, #24] 2899:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6180 .loc 1 2899 8 view .LVU2106 6181 0024 16F4004F tst r6, #32768 6182 0028 3AD1 bne .L407 2905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6183 .loc 1 2905 5 is_stmt 1 view .LVU2107 ARM GAS /tmp/cchwqEfL.s page 276 2905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6184 .loc 1 2905 5 view .LVU2108 6185 002a 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 6186 002e 012E cmp r6, #1 6187 0030 38D0 beq .L408 2905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6188 .loc 1 2905 5 discriminator 2 view .LVU2109 6189 0032 0126 movs r6, #1 6190 0034 84F84060 strb r6, [r4, #64] 2905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6191 .loc 1 2905 5 discriminator 2 view .LVU2110 2907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6192 .loc 1 2907 5 discriminator 2 view .LVU2111 2907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6193 .loc 1 2907 23 is_stmt 0 discriminator 2 view .LVU2112 6194 0038 2226 movs r6, #34 6195 003a 84F84160 strb r6, [r4, #65] 2908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6196 .loc 1 2908 5 is_stmt 1 discriminator 2 view .LVU2113 2908:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6197 .loc 1 2908 23 is_stmt 0 discriminator 2 view .LVU2114 6198 003e 4026 movs r6, #64 6199 0040 84F84260 strb r6, [r4, #66] 2909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6200 .loc 1 2909 5 is_stmt 1 discriminator 2 view .LVU2115 2909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6201 .loc 1 2909 23 is_stmt 0 discriminator 2 view .LVU2116 6202 0044 0026 movs r6, #0 6203 0046 6664 str r6, [r4, #68] 2912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6204 .loc 1 2912 5 is_stmt 1 discriminator 2 view .LVU2117 2912:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6205 .loc 1 2912 23 is_stmt 0 discriminator 2 view .LVU2118 6206 0048 069E ldr r6, [sp, #24] 6207 004a 6662 str r6, [r4, #36] 2913:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6208 .loc 1 2913 5 is_stmt 1 discriminator 2 view .LVU2119 2913:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6209 .loc 1 2913 23 is_stmt 0 discriminator 2 view .LVU2120 6210 004c 6385 strh r3, [r4, #42] @ movhi 2914:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6211 .loc 1 2914 5 is_stmt 1 discriminator 2 view .LVU2121 2914:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6212 .loc 1 2914 23 is_stmt 0 discriminator 2 view .LVU2122 6213 004e 164B ldr r3, .L412 6214 0050 E362 str r3, [r4, #44] 2915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6215 .loc 1 2915 5 is_stmt 1 discriminator 2 view .LVU2123 2915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6216 .loc 1 2915 23 is_stmt 0 discriminator 2 view .LVU2124 6217 0052 164B ldr r3, .L412+4 6218 0054 6363 str r3, [r4, #52] 2916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6219 .loc 1 2916 5 is_stmt 1 discriminator 2 view .LVU2125 2916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6220 .loc 1 2916 23 is_stmt 0 discriminator 2 view .LVU2126 6221 0056 E164 str r1, [r4, #76] ARM GAS /tmp/cchwqEfL.s page 277 2919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6222 .loc 1 2919 5 is_stmt 1 discriminator 2 view .LVU2127 2919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6223 .loc 1 2919 8 is_stmt 0 discriminator 2 view .LVU2128 6224 0058 012D cmp r5, #1 6225 005a 18D0 beq .L411 2931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6226 .loc 1 2931 7 is_stmt 1 view .LVU2129 2931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6227 .loc 1 2931 30 is_stmt 0 view .LVU2130 6228 005c 130A lsrs r3, r2, #8 2931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6229 .loc 1 2931 28 view .LVU2131 6230 005e 8362 str r3, [r0, #40] 2934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6231 .loc 1 2934 7 is_stmt 1 view .LVU2132 2934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6232 .loc 1 2934 26 is_stmt 0 view .LVU2133 6233 0060 D2B2 uxtb r2, r2 6234 .LVL417: 2934:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6235 .loc 1 2934 24 view .LVU2134 6236 0062 2265 str r2, [r4, #80] 6237 .L405: 2937:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6238 .loc 1 2937 5 is_stmt 1 view .LVU2135 6239 0064 124B ldr r3, .L412+8 6240 0066 0093 str r3, [sp] 6241 0068 0023 movs r3, #0 6242 006a EAB2 uxtb r2, r5 6243 006c 2046 mov r0, r4 6244 006e FFF7FEFF bl I2C_TransferConfig 6245 .LVL418: 2940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6246 .loc 1 2940 5 view .LVU2136 2940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6247 .loc 1 2940 5 view .LVU2137 6248 0072 0025 movs r5, #0 6249 0074 84F84050 strb r5, [r4, #64] 2940:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6250 .loc 1 2940 5 view .LVU2138 2950:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6251 .loc 1 2950 5 view .LVU2139 6252 0078 0121 movs r1, #1 6253 007a 2046 mov r0, r4 6254 007c FFF7FEFF bl I2C_Enable_IRQ 6255 .LVL419: 2952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6256 .loc 1 2952 5 view .LVU2140 2952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6257 .loc 1 2952 12 is_stmt 0 view .LVU2141 6258 0080 2846 mov r0, r5 6259 0082 0BE0 b .L402 6260 .LVL420: 6261 .L410: 2895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6262 .loc 1 2895 7 is_stmt 1 view .LVU2142 ARM GAS /tmp/cchwqEfL.s page 278 2895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6263 .loc 1 2895 23 is_stmt 0 view .LVU2143 6264 0084 4FF40073 mov r3, #512 6265 0088 6364 str r3, [r4, #68] 2896:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6266 .loc 1 2896 7 is_stmt 1 view .LVU2144 2896:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6267 .loc 1 2896 15 is_stmt 0 view .LVU2145 6268 008a 0120 movs r0, #1 6269 008c 06E0 b .L402 6270 .L411: 2922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6271 .loc 1 2922 7 is_stmt 1 view .LVU2146 2922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6272 .loc 1 2922 30 is_stmt 0 view .LVU2147 6273 008e D2B2 uxtb r2, r2 6274 .LVL421: 2922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6275 .loc 1 2922 28 view .LVU2148 6276 0090 8262 str r2, [r0, #40] 2925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6277 .loc 1 2925 7 is_stmt 1 view .LVU2149 2925:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6278 .loc 1 2925 24 is_stmt 0 view .LVU2150 6279 0092 4FF0FF33 mov r3, #-1 6280 0096 2365 str r3, [r4, #80] 6281 0098 E4E7 b .L405 6282 .LVL422: 6283 .L406: 2956:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6284 .loc 1 2956 12 view .LVU2151 6285 009a 0220 movs r0, #2 6286 .LVL423: 6287 .L402: 2958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6288 .loc 1 2958 1 view .LVU2152 6289 009c 02B0 add sp, sp, #8 6290 .LCFI72: 6291 .cfi_remember_state 6292 .cfi_def_cfa_offset 16 6293 @ sp needed 6294 009e 70BD pop {r4, r5, r6, pc} 6295 .LVL424: 6296 .L407: 6297 .LCFI73: 6298 .cfi_restore_state 2901:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6299 .loc 1 2901 14 view .LVU2153 6300 00a0 0220 movs r0, #2 6301 00a2 FBE7 b .L402 6302 .L408: 2905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6303 .loc 1 2905 5 view .LVU2154 6304 00a4 0220 movs r0, #2 6305 00a6 F9E7 b .L402 6306 .L413: 6307 .align 2 ARM GAS /tmp/cchwqEfL.s page 279 6308 .L412: 6309 00a8 0000FFFF .word -65536 6310 00ac 00000000 .word I2C_Mem_ISR_IT 6311 00b0 00200080 .word -2147475456 6312 .cfi_endproc 6313 .LFE160: 6315 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits 6316 .align 1 6317 .global HAL_I2C_Mem_Write_DMA 6318 .syntax unified 6319 .thumb 6320 .thumb_func 6321 .fpu fpv5-d16 6323 HAL_I2C_Mem_Write_DMA: 6324 .LVL425: 6325 .LFB161: 2974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6326 .loc 1 2974 1 is_stmt 1 view -0 6327 .cfi_startproc 6328 @ args = 8, pretend = 0, frame = 0 6329 @ frame_needed = 0, uses_anonymous_args = 0 2974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6330 .loc 1 2974 1 is_stmt 0 view .LVU2156 6331 0000 F0B5 push {r4, r5, r6, r7, lr} 6332 .LCFI74: 6333 .cfi_def_cfa_offset 20 6334 .cfi_offset 4, -20 6335 .cfi_offset 5, -16 6336 .cfi_offset 6, -12 6337 .cfi_offset 7, -8 6338 .cfi_offset 14, -4 6339 0002 83B0 sub sp, sp, #12 6340 .LCFI75: 6341 .cfi_def_cfa_offset 32 6342 0004 0446 mov r4, r0 6343 0006 0E46 mov r6, r1 6344 0008 1F46 mov r7, r3 6345 000a 0899 ldr r1, [sp, #32] 6346 .LVL426: 2974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6347 .loc 1 2974 1 view .LVU2157 6348 000c BDF82430 ldrh r3, [sp, #36] 6349 .LVL427: 2975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6350 .loc 1 2975 3 is_stmt 1 view .LVU2158 2978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6351 .loc 1 2978 3 view .LVU2159 2980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6352 .loc 1 2980 3 view .LVU2160 2980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6353 .loc 1 2980 11 is_stmt 0 view .LVU2161 6354 0010 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6355 .LVL428: 2980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6356 .loc 1 2980 11 view .LVU2162 6357 0014 C0B2 uxtb r0, r0 2980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/cchwqEfL.s page 280 6358 .loc 1 2980 6 view .LVU2163 6359 0016 2028 cmp r0, #32 6360 0018 7AD1 bne .L424 2982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6361 .loc 1 2982 5 is_stmt 1 view .LVU2164 2982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6362 .loc 1 2982 8 is_stmt 0 view .LVU2165 6363 001a 002B cmp r3, #0 6364 001c 18BF it ne 6365 001e 0029 cmpne r1, #0 6366 0020 49D0 beq .L429 2988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6367 .loc 1 2988 5 is_stmt 1 view .LVU2166 2988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6368 .loc 1 2988 9 is_stmt 0 view .LVU2167 6369 0022 2068 ldr r0, [r4] 6370 0024 8569 ldr r5, [r0, #24] 2988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6371 .loc 1 2988 8 view .LVU2168 6372 0026 15F4004F tst r5, #32768 6373 002a 75D1 bne .L425 2994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6374 .loc 1 2994 5 is_stmt 1 view .LVU2169 2994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6375 .loc 1 2994 5 view .LVU2170 6376 002c 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2 6377 0030 012D cmp r5, #1 6378 0032 73D0 beq .L426 2994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6379 .loc 1 2994 5 discriminator 2 view .LVU2171 6380 0034 0125 movs r5, #1 6381 0036 84F84050 strb r5, [r4, #64] 2994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6382 .loc 1 2994 5 discriminator 2 view .LVU2172 2996:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6383 .loc 1 2996 5 discriminator 2 view .LVU2173 2996:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6384 .loc 1 2996 23 is_stmt 0 discriminator 2 view .LVU2174 6385 003a 2125 movs r5, #33 6386 003c 84F84150 strb r5, [r4, #65] 2997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6387 .loc 1 2997 5 is_stmt 1 discriminator 2 view .LVU2175 2997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6388 .loc 1 2997 23 is_stmt 0 discriminator 2 view .LVU2176 6389 0040 4025 movs r5, #64 6390 0042 84F84250 strb r5, [r4, #66] 2998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6391 .loc 1 2998 5 is_stmt 1 discriminator 2 view .LVU2177 2998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6392 .loc 1 2998 23 is_stmt 0 discriminator 2 view .LVU2178 6393 0046 0025 movs r5, #0 6394 0048 6564 str r5, [r4, #68] 3001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6395 .loc 1 3001 5 is_stmt 1 discriminator 2 view .LVU2179 3001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6396 .loc 1 3001 23 is_stmt 0 discriminator 2 view .LVU2180 6397 004a 6162 str r1, [r4, #36] ARM GAS /tmp/cchwqEfL.s page 281 3002:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6398 .loc 1 3002 5 is_stmt 1 discriminator 2 view .LVU2181 3002:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6399 .loc 1 3002 23 is_stmt 0 discriminator 2 view .LVU2182 6400 004c 6385 strh r3, [r4, #42] @ movhi 3003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6401 .loc 1 3003 5 is_stmt 1 discriminator 2 view .LVU2183 3003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6402 .loc 1 3003 23 is_stmt 0 discriminator 2 view .LVU2184 6403 004e 344B ldr r3, .L432 6404 0050 E362 str r3, [r4, #44] 3004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6405 .loc 1 3004 5 is_stmt 1 discriminator 2 view .LVU2185 3004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6406 .loc 1 3004 23 is_stmt 0 discriminator 2 view .LVU2186 6407 0052 344B ldr r3, .L432+4 6408 0054 6363 str r3, [r4, #52] 3005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6409 .loc 1 3005 5 is_stmt 1 discriminator 2 view .LVU2187 3005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6410 .loc 1 3005 23 is_stmt 0 discriminator 2 view .LVU2188 6411 0056 E664 str r6, [r4, #76] 3007:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6412 .loc 1 3007 5 is_stmt 1 discriminator 2 view .LVU2189 3007:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6413 .loc 1 3007 13 is_stmt 0 discriminator 2 view .LVU2190 6414 0058 638D ldrh r3, [r4, #42] 6415 005a 9BB2 uxth r3, r3 3007:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6416 .loc 1 3007 8 discriminator 2 view .LVU2191 6417 005c FF2B cmp r3, #255 6418 005e 2FD9 bls .L417 3009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6419 .loc 1 3009 7 is_stmt 1 view .LVU2192 3009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6420 .loc 1 3009 22 is_stmt 0 view .LVU2193 6421 0060 FF23 movs r3, #255 6422 0062 2385 strh r3, [r4, #40] @ movhi 6423 .L418: 3017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6424 .loc 1 3017 5 is_stmt 1 view .LVU2194 3017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6425 .loc 1 3017 8 is_stmt 0 view .LVU2195 6426 0064 012F cmp r7, #1 6427 0066 2ED0 beq .L430 3029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6428 .loc 1 3029 7 is_stmt 1 view .LVU2196 3029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6429 .loc 1 3029 30 is_stmt 0 view .LVU2197 6430 0068 130A lsrs r3, r2, #8 3029:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6431 .loc 1 3029 28 view .LVU2198 6432 006a 8362 str r3, [r0, #40] 3032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6433 .loc 1 3032 7 is_stmt 1 view .LVU2199 3032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6434 .loc 1 3032 26 is_stmt 0 view .LVU2200 ARM GAS /tmp/cchwqEfL.s page 282 6435 006c D2B2 uxtb r2, r2 6436 .LVL429: 3032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6437 .loc 1 3032 24 view .LVU2201 6438 006e 2265 str r2, [r4, #80] 6439 .L420: 3035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6440 .loc 1 3035 5 is_stmt 1 view .LVU2202 3035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6441 .loc 1 3035 13 is_stmt 0 view .LVU2203 6442 0070 A36B ldr r3, [r4, #56] 3035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6443 .loc 1 3035 8 view .LVU2204 6444 0072 002B cmp r3, #0 6445 0074 2DD0 beq .L421 3038:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6446 .loc 1 3038 7 is_stmt 1 view .LVU2205 3038:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6447 .loc 1 3038 38 is_stmt 0 view .LVU2206 6448 0076 2C4A ldr r2, .L432+8 6449 0078 DA63 str r2, [r3, #60] 3041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6450 .loc 1 3041 7 is_stmt 1 view .LVU2207 3041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6451 .loc 1 3041 11 is_stmt 0 view .LVU2208 6452 007a A36B ldr r3, [r4, #56] 3041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6453 .loc 1 3041 39 view .LVU2209 6454 007c 2B4A ldr r2, .L432+12 6455 007e DA64 str r2, [r3, #76] 3044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6456 .loc 1 3044 7 is_stmt 1 view .LVU2210 3044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6457 .loc 1 3044 11 is_stmt 0 view .LVU2211 6458 0080 A26B ldr r2, [r4, #56] 3044:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6459 .loc 1 3044 42 view .LVU2212 6460 0082 0023 movs r3, #0 6461 0084 1364 str r3, [r2, #64] 3045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6462 .loc 1 3045 7 is_stmt 1 view .LVU2213 3045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6463 .loc 1 3045 11 is_stmt 0 view .LVU2214 6464 0086 A26B ldr r2, [r4, #56] 3045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6465 .loc 1 3045 39 view .LVU2215 6466 0088 1365 str r3, [r2, #80] 3048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 6467 .loc 1 3048 7 is_stmt 1 view .LVU2216 3048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 6468 .loc 1 3048 86 is_stmt 0 view .LVU2217 6469 008a 2268 ldr r2, [r4] 3048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 6470 .loc 1 3048 23 view .LVU2218 6471 008c 238D ldrh r3, [r4, #40] 6472 008e 2832 adds r2, r2, #40 6473 0090 A06B ldr r0, [r4, #56] ARM GAS /tmp/cchwqEfL.s page 283 6474 0092 FFF7FEFF bl HAL_DMA_Start_IT 6475 .LVL430: 3066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6476 .loc 1 3066 5 is_stmt 1 view .LVU2219 3066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6477 .loc 1 3066 8 is_stmt 0 view .LVU2220 6478 0096 0546 mov r5, r0 6479 0098 48B3 cbz r0, .L431 3086:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6480 .loc 1 3086 7 is_stmt 1 view .LVU2221 3086:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6481 .loc 1 3086 23 is_stmt 0 view .LVU2222 6482 009a 2023 movs r3, #32 6483 009c 84F84130 strb r3, [r4, #65] 3087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6484 .loc 1 3087 7 is_stmt 1 view .LVU2223 3087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6485 .loc 1 3087 23 is_stmt 0 view .LVU2224 6486 00a0 0022 movs r2, #0 6487 00a2 84F84220 strb r2, [r4, #66] 3090:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6488 .loc 1 3090 7 is_stmt 1 view .LVU2225 3090:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6489 .loc 1 3090 23 is_stmt 0 view .LVU2226 6490 00a6 636C ldr r3, [r4, #68] 6491 00a8 43F01003 orr r3, r3, #16 6492 00ac 6364 str r3, [r4, #68] 3093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6493 .loc 1 3093 7 is_stmt 1 view .LVU2227 3093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6494 .loc 1 3093 7 view .LVU2228 6495 00ae 84F84020 strb r2, [r4, #64] 3093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6496 .loc 1 3093 7 view .LVU2229 3095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6497 .loc 1 3095 7 view .LVU2230 3095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6498 .loc 1 3095 14 is_stmt 0 view .LVU2231 6499 00b2 0125 movs r5, #1 6500 00b4 2DE0 b .L415 6501 .LVL431: 6502 .L429: 2984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6503 .loc 1 2984 7 is_stmt 1 view .LVU2232 2984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6504 .loc 1 2984 23 is_stmt 0 view .LVU2233 6505 00b6 4FF40073 mov r3, #512 6506 00ba 6364 str r3, [r4, #68] 2985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6507 .loc 1 2985 7 is_stmt 1 view .LVU2234 2985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6508 .loc 1 2985 15 is_stmt 0 view .LVU2235 6509 00bc 0125 movs r5, #1 6510 00be 28E0 b .L415 6511 .L417: 3013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6512 .loc 1 3013 7 is_stmt 1 view .LVU2236 ARM GAS /tmp/cchwqEfL.s page 284 3013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6513 .loc 1 3013 28 is_stmt 0 view .LVU2237 6514 00c0 638D ldrh r3, [r4, #42] 3013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6515 .loc 1 3013 22 view .LVU2238 6516 00c2 2385 strh r3, [r4, #40] @ movhi 6517 00c4 CEE7 b .L418 6518 .L430: 3020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6519 .loc 1 3020 7 is_stmt 1 view .LVU2239 3020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6520 .loc 1 3020 30 is_stmt 0 view .LVU2240 6521 00c6 D2B2 uxtb r2, r2 6522 .LVL432: 3020:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6523 .loc 1 3020 28 view .LVU2241 6524 00c8 8262 str r2, [r0, #40] 3023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6525 .loc 1 3023 7 is_stmt 1 view .LVU2242 3023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6526 .loc 1 3023 24 is_stmt 0 view .LVU2243 6527 00ca 4FF0FF33 mov r3, #-1 6528 00ce 2365 str r3, [r4, #80] 6529 00d0 CEE7 b .L420 6530 .L421: 3054:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6531 .loc 1 3054 7 is_stmt 1 view .LVU2244 3054:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6532 .loc 1 3054 23 is_stmt 0 view .LVU2245 6533 00d2 2023 movs r3, #32 6534 00d4 84F84130 strb r3, [r4, #65] 3055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6535 .loc 1 3055 7 is_stmt 1 view .LVU2246 3055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6536 .loc 1 3055 23 is_stmt 0 view .LVU2247 6537 00d8 0022 movs r2, #0 6538 00da 84F84220 strb r2, [r4, #66] 3058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6539 .loc 1 3058 7 is_stmt 1 view .LVU2248 3058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6540 .loc 1 3058 23 is_stmt 0 view .LVU2249 6541 00de 636C ldr r3, [r4, #68] 6542 00e0 43F08003 orr r3, r3, #128 6543 00e4 6364 str r3, [r4, #68] 3061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6544 .loc 1 3061 7 is_stmt 1 view .LVU2250 3061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6545 .loc 1 3061 7 view .LVU2251 6546 00e6 84F84020 strb r2, [r4, #64] 3061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6547 .loc 1 3061 7 view .LVU2252 3063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6548 .loc 1 3063 7 view .LVU2253 3063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6549 .loc 1 3063 14 is_stmt 0 view .LVU2254 6550 00ea 0125 movs r5, #1 6551 00ec 11E0 b .L415 ARM GAS /tmp/cchwqEfL.s page 285 6552 .LVL433: 6553 .L431: 3069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6554 .loc 1 3069 7 is_stmt 1 view .LVU2255 6555 00ee 104B ldr r3, .L432+16 6556 00f0 0093 str r3, [sp] 6557 00f2 4FF08073 mov r3, #16777216 6558 00f6 FAB2 uxtb r2, r7 6559 00f8 3146 mov r1, r6 6560 00fa 2046 mov r0, r4 6561 .LVL434: 3069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6562 .loc 1 3069 7 is_stmt 0 view .LVU2256 6563 00fc FFF7FEFF bl I2C_TransferConfig 6564 .LVL435: 3072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6565 .loc 1 3072 7 is_stmt 1 view .LVU2257 3072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6566 .loc 1 3072 7 view .LVU2258 6567 0100 0023 movs r3, #0 6568 0102 84F84030 strb r3, [r4, #64] 3072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6569 .loc 1 3072 7 view .LVU2259 3081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6570 .loc 1 3081 7 view .LVU2260 6571 0106 0121 movs r1, #1 6572 0108 2046 mov r0, r4 6573 010a FFF7FEFF bl I2C_Enable_IRQ 6574 .LVL436: 3098:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6575 .loc 1 3098 5 view .LVU2261 3098:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6576 .loc 1 3098 12 is_stmt 0 view .LVU2262 6577 010e 00E0 b .L415 6578 .LVL437: 6579 .L424: 3102:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6580 .loc 1 3102 12 view .LVU2263 6581 0110 0225 movs r5, #2 6582 .LVL438: 6583 .L415: 3104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6584 .loc 1 3104 1 view .LVU2264 6585 0112 2846 mov r0, r5 6586 0114 03B0 add sp, sp, #12 6587 .LCFI76: 6588 .cfi_remember_state 6589 .cfi_def_cfa_offset 20 6590 @ sp needed 6591 0116 F0BD pop {r4, r5, r6, r7, pc} 6592 .LVL439: 6593 .L425: 6594 .LCFI77: 6595 .cfi_restore_state 2990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6596 .loc 1 2990 14 view .LVU2265 6597 0118 0225 movs r5, #2 ARM GAS /tmp/cchwqEfL.s page 286 6598 011a FAE7 b .L415 6599 .L426: 2994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6600 .loc 1 2994 5 view .LVU2266 6601 011c 0225 movs r5, #2 6602 011e F8E7 b .L415 6603 .L433: 6604 .align 2 6605 .L432: 6606 0120 0000FFFF .word -65536 6607 0124 00000000 .word I2C_Mem_ISR_DMA 6608 0128 00000000 .word I2C_DMAMasterTransmitCplt 6609 012c 00000000 .word I2C_DMAError 6610 0130 00200080 .word -2147475456 6611 .cfi_endproc 6612 .LFE161: 6614 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits 6615 .align 1 6616 .global HAL_I2C_Mem_Read_DMA 6617 .syntax unified 6618 .thumb 6619 .thumb_func 6620 .fpu fpv5-d16 6622 HAL_I2C_Mem_Read_DMA: 6623 .LVL440: 6624 .LFB162: 3120:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6625 .loc 1 3120 1 is_stmt 1 view -0 6626 .cfi_startproc 6627 @ args = 8, pretend = 0, frame = 0 6628 @ frame_needed = 0, uses_anonymous_args = 0 3120:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6629 .loc 1 3120 1 is_stmt 0 view .LVU2268 6630 0000 F0B5 push {r4, r5, r6, r7, lr} 6631 .LCFI78: 6632 .cfi_def_cfa_offset 20 6633 .cfi_offset 4, -20 6634 .cfi_offset 5, -16 6635 .cfi_offset 6, -12 6636 .cfi_offset 7, -8 6637 .cfi_offset 14, -4 6638 0002 83B0 sub sp, sp, #12 6639 .LCFI79: 6640 .cfi_def_cfa_offset 32 6641 0004 0446 mov r4, r0 6642 0006 1F46 mov r7, r3 6643 0008 089D ldr r5, [sp, #32] 6644 000a BDF82430 ldrh r3, [sp, #36] 6645 .LVL441: 3121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6646 .loc 1 3121 3 is_stmt 1 view .LVU2269 3124:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6647 .loc 1 3124 3 view .LVU2270 3126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6648 .loc 1 3126 3 view .LVU2271 3126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6649 .loc 1 3126 11 is_stmt 0 view .LVU2272 ARM GAS /tmp/cchwqEfL.s page 287 6650 000e 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6651 .LVL442: 3126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6652 .loc 1 3126 11 view .LVU2273 6653 0012 C0B2 uxtb r0, r0 3126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6654 .loc 1 3126 6 view .LVU2274 6655 0014 2028 cmp r0, #32 6656 0016 7BD1 bne .L444 6657 0018 0E46 mov r6, r1 3128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6658 .loc 1 3128 5 is_stmt 1 view .LVU2275 3128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6659 .loc 1 3128 8 is_stmt 0 view .LVU2276 6660 001a 002B cmp r3, #0 6661 001c 18BF it ne 6662 001e 002D cmpne r5, #0 6663 0020 4AD0 beq .L449 3134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6664 .loc 1 3134 5 is_stmt 1 view .LVU2277 3134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6665 .loc 1 3134 9 is_stmt 0 view .LVU2278 6666 0022 2168 ldr r1, [r4] 6667 .LVL443: 3134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6668 .loc 1 3134 9 view .LVU2279 6669 0024 8869 ldr r0, [r1, #24] 3134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6670 .loc 1 3134 8 view .LVU2280 6671 0026 10F4004F tst r0, #32768 6672 002a 75D1 bne .L445 3140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6673 .loc 1 3140 5 is_stmt 1 view .LVU2281 3140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6674 .loc 1 3140 5 view .LVU2282 6675 002c 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 6676 0030 0128 cmp r0, #1 6677 0032 73D0 beq .L446 3140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6678 .loc 1 3140 5 discriminator 2 view .LVU2283 6679 0034 0120 movs r0, #1 6680 0036 84F84000 strb r0, [r4, #64] 3140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6681 .loc 1 3140 5 discriminator 2 view .LVU2284 3142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6682 .loc 1 3142 5 discriminator 2 view .LVU2285 3142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6683 .loc 1 3142 23 is_stmt 0 discriminator 2 view .LVU2286 6684 003a 2220 movs r0, #34 6685 003c 84F84100 strb r0, [r4, #65] 3143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6686 .loc 1 3143 5 is_stmt 1 discriminator 2 view .LVU2287 3143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6687 .loc 1 3143 23 is_stmt 0 discriminator 2 view .LVU2288 6688 0040 4020 movs r0, #64 6689 0042 84F84200 strb r0, [r4, #66] 3144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 288 6690 .loc 1 3144 5 is_stmt 1 discriminator 2 view .LVU2289 3144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6691 .loc 1 3144 23 is_stmt 0 discriminator 2 view .LVU2290 6692 0046 0020 movs r0, #0 6693 0048 6064 str r0, [r4, #68] 3147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6694 .loc 1 3147 5 is_stmt 1 discriminator 2 view .LVU2291 3147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 6695 .loc 1 3147 23 is_stmt 0 discriminator 2 view .LVU2292 6696 004a 6562 str r5, [r4, #36] 3148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6697 .loc 1 3148 5 is_stmt 1 discriminator 2 view .LVU2293 3148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6698 .loc 1 3148 23 is_stmt 0 discriminator 2 view .LVU2294 6699 004c 6385 strh r3, [r4, #42] @ movhi 3149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6700 .loc 1 3149 5 is_stmt 1 discriminator 2 view .LVU2295 3149:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6701 .loc 1 3149 23 is_stmt 0 discriminator 2 view .LVU2296 6702 004e 344B ldr r3, .L452 6703 0050 E362 str r3, [r4, #44] 3150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6704 .loc 1 3150 5 is_stmt 1 discriminator 2 view .LVU2297 3150:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6705 .loc 1 3150 23 is_stmt 0 discriminator 2 view .LVU2298 6706 0052 344B ldr r3, .L452+4 6707 0054 6363 str r3, [r4, #52] 3151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6708 .loc 1 3151 5 is_stmt 1 discriminator 2 view .LVU2299 3151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6709 .loc 1 3151 23 is_stmt 0 discriminator 2 view .LVU2300 6710 0056 E664 str r6, [r4, #76] 3153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6711 .loc 1 3153 5 is_stmt 1 discriminator 2 view .LVU2301 3153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6712 .loc 1 3153 13 is_stmt 0 discriminator 2 view .LVU2302 6713 0058 638D ldrh r3, [r4, #42] 6714 005a 9BB2 uxth r3, r3 3153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6715 .loc 1 3153 8 discriminator 2 view .LVU2303 6716 005c FF2B cmp r3, #255 6717 005e 30D9 bls .L437 3155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6718 .loc 1 3155 7 is_stmt 1 view .LVU2304 3155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6719 .loc 1 3155 22 is_stmt 0 view .LVU2305 6720 0060 FF23 movs r3, #255 6721 0062 2385 strh r3, [r4, #40] @ movhi 6722 .L438: 3163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6723 .loc 1 3163 5 is_stmt 1 view .LVU2306 3163:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6724 .loc 1 3163 8 is_stmt 0 view .LVU2307 6725 0064 012F cmp r7, #1 6726 0066 2FD0 beq .L450 3175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6727 .loc 1 3175 7 is_stmt 1 view .LVU2308 ARM GAS /tmp/cchwqEfL.s page 289 3175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6728 .loc 1 3175 30 is_stmt 0 view .LVU2309 6729 0068 130A lsrs r3, r2, #8 3175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6730 .loc 1 3175 28 view .LVU2310 6731 006a 8B62 str r3, [r1, #40] 3178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6732 .loc 1 3178 7 is_stmt 1 view .LVU2311 3178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6733 .loc 1 3178 26 is_stmt 0 view .LVU2312 6734 006c D2B2 uxtb r2, r2 6735 .LVL444: 3178:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6736 .loc 1 3178 24 view .LVU2313 6737 006e 2265 str r2, [r4, #80] 6738 .L440: 3181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6739 .loc 1 3181 5 is_stmt 1 view .LVU2314 3181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6740 .loc 1 3181 13 is_stmt 0 view .LVU2315 6741 0070 E36B ldr r3, [r4, #60] 3181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6742 .loc 1 3181 8 view .LVU2316 6743 0072 002B cmp r3, #0 6744 0074 2ED0 beq .L441 3184:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6745 .loc 1 3184 7 is_stmt 1 view .LVU2317 3184:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6746 .loc 1 3184 38 is_stmt 0 view .LVU2318 6747 0076 2C4A ldr r2, .L452+8 6748 0078 DA63 str r2, [r3, #60] 3187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6749 .loc 1 3187 7 is_stmt 1 view .LVU2319 3187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6750 .loc 1 3187 11 is_stmt 0 view .LVU2320 6751 007a E36B ldr r3, [r4, #60] 3187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6752 .loc 1 3187 39 view .LVU2321 6753 007c 2B4A ldr r2, .L452+12 6754 007e DA64 str r2, [r3, #76] 3190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6755 .loc 1 3190 7 is_stmt 1 view .LVU2322 3190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6756 .loc 1 3190 11 is_stmt 0 view .LVU2323 6757 0080 E26B ldr r2, [r4, #60] 3190:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6758 .loc 1 3190 42 view .LVU2324 6759 0082 0023 movs r3, #0 6760 0084 1364 str r3, [r2, #64] 3191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6761 .loc 1 3191 7 is_stmt 1 view .LVU2325 3191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6762 .loc 1 3191 11 is_stmt 0 view .LVU2326 6763 0086 E26B ldr r2, [r4, #60] 3191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6764 .loc 1 3191 39 view .LVU2327 6765 0088 1365 str r3, [r2, #80] ARM GAS /tmp/cchwqEfL.s page 290 3194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 6766 .loc 1 3194 7 is_stmt 1 view .LVU2328 3194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 6767 .loc 1 3194 69 is_stmt 0 view .LVU2329 6768 008a 2168 ldr r1, [r4] 3194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 6769 .loc 1 3194 23 view .LVU2330 6770 008c 238D ldrh r3, [r4, #40] 6771 008e 2A46 mov r2, r5 6772 0090 2431 adds r1, r1, #36 6773 0092 E06B ldr r0, [r4, #60] 6774 0094 FFF7FEFF bl HAL_DMA_Start_IT 6775 .LVL445: 3212:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6776 .loc 1 3212 5 is_stmt 1 view .LVU2331 3212:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6777 .loc 1 3212 8 is_stmt 0 view .LVU2332 6778 0098 0546 mov r5, r0 6779 009a 48B3 cbz r0, .L451 3232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6780 .loc 1 3232 7 is_stmt 1 view .LVU2333 3232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6781 .loc 1 3232 23 is_stmt 0 view .LVU2334 6782 009c 2023 movs r3, #32 6783 009e 84F84130 strb r3, [r4, #65] 3233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6784 .loc 1 3233 7 is_stmt 1 view .LVU2335 3233:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6785 .loc 1 3233 23 is_stmt 0 view .LVU2336 6786 00a2 0022 movs r2, #0 6787 00a4 84F84220 strb r2, [r4, #66] 3236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6788 .loc 1 3236 7 is_stmt 1 view .LVU2337 3236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6789 .loc 1 3236 23 is_stmt 0 view .LVU2338 6790 00a8 636C ldr r3, [r4, #68] 6791 00aa 43F01003 orr r3, r3, #16 6792 00ae 6364 str r3, [r4, #68] 3239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6793 .loc 1 3239 7 is_stmt 1 view .LVU2339 3239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6794 .loc 1 3239 7 view .LVU2340 6795 00b0 84F84020 strb r2, [r4, #64] 3239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6796 .loc 1 3239 7 view .LVU2341 3241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6797 .loc 1 3241 7 view .LVU2342 3241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6798 .loc 1 3241 14 is_stmt 0 view .LVU2343 6799 00b4 0125 movs r5, #1 6800 00b6 2CE0 b .L435 6801 .LVL446: 6802 .L449: 3130:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6803 .loc 1 3130 7 is_stmt 1 view .LVU2344 3130:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 6804 .loc 1 3130 23 is_stmt 0 view .LVU2345 ARM GAS /tmp/cchwqEfL.s page 291 6805 00b8 4FF40073 mov r3, #512 6806 00bc 6364 str r3, [r4, #68] 3131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6807 .loc 1 3131 7 is_stmt 1 view .LVU2346 3131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6808 .loc 1 3131 15 is_stmt 0 view .LVU2347 6809 00be 0125 movs r5, #1 6810 00c0 27E0 b .L435 6811 .LVL447: 6812 .L437: 3159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6813 .loc 1 3159 7 is_stmt 1 view .LVU2348 3159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6814 .loc 1 3159 28 is_stmt 0 view .LVU2349 6815 00c2 638D ldrh r3, [r4, #42] 3159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6816 .loc 1 3159 22 view .LVU2350 6817 00c4 2385 strh r3, [r4, #40] @ movhi 6818 00c6 CDE7 b .L438 6819 .L450: 3166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6820 .loc 1 3166 7 is_stmt 1 view .LVU2351 3166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6821 .loc 1 3166 30 is_stmt 0 view .LVU2352 6822 00c8 D2B2 uxtb r2, r2 6823 .LVL448: 3166:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6824 .loc 1 3166 28 view .LVU2353 6825 00ca 8A62 str r2, [r1, #40] 3169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6826 .loc 1 3169 7 is_stmt 1 view .LVU2354 3169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6827 .loc 1 3169 24 is_stmt 0 view .LVU2355 6828 00cc 4FF0FF33 mov r3, #-1 6829 00d0 2365 str r3, [r4, #80] 6830 00d2 CDE7 b .L440 6831 .L441: 3200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6832 .loc 1 3200 7 is_stmt 1 view .LVU2356 3200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6833 .loc 1 3200 23 is_stmt 0 view .LVU2357 6834 00d4 2023 movs r3, #32 6835 00d6 84F84130 strb r3, [r4, #65] 3201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6836 .loc 1 3201 7 is_stmt 1 view .LVU2358 3201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6837 .loc 1 3201 23 is_stmt 0 view .LVU2359 6838 00da 0022 movs r2, #0 6839 00dc 84F84220 strb r2, [r4, #66] 3204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6840 .loc 1 3204 7 is_stmt 1 view .LVU2360 3204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6841 .loc 1 3204 23 is_stmt 0 view .LVU2361 6842 00e0 636C ldr r3, [r4, #68] 6843 00e2 43F08003 orr r3, r3, #128 6844 00e6 6364 str r3, [r4, #68] 3207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 292 6845 .loc 1 3207 7 is_stmt 1 view .LVU2362 3207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6846 .loc 1 3207 7 view .LVU2363 6847 00e8 84F84020 strb r2, [r4, #64] 3207:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6848 .loc 1 3207 7 view .LVU2364 3209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6849 .loc 1 3209 7 view .LVU2365 3209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6850 .loc 1 3209 14 is_stmt 0 view .LVU2366 6851 00ec 0125 movs r5, #1 6852 00ee 10E0 b .L435 6853 .LVL449: 6854 .L451: 3215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6855 .loc 1 3215 7 is_stmt 1 view .LVU2367 6856 00f0 0F4B ldr r3, .L452+16 6857 00f2 0093 str r3, [sp] 6858 00f4 0023 movs r3, #0 6859 00f6 FAB2 uxtb r2, r7 6860 00f8 3146 mov r1, r6 6861 00fa 2046 mov r0, r4 6862 .LVL450: 3215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6863 .loc 1 3215 7 is_stmt 0 view .LVU2368 6864 00fc FFF7FEFF bl I2C_TransferConfig 6865 .LVL451: 3218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6866 .loc 1 3218 7 is_stmt 1 view .LVU2369 3218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6867 .loc 1 3218 7 view .LVU2370 6868 0100 0023 movs r3, #0 6869 0102 84F84030 strb r3, [r4, #64] 3218:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6870 .loc 1 3218 7 view .LVU2371 3227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6871 .loc 1 3227 7 view .LVU2372 6872 0106 0121 movs r1, #1 6873 0108 2046 mov r0, r4 6874 010a FFF7FEFF bl I2C_Enable_IRQ 6875 .LVL452: 3244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6876 .loc 1 3244 5 view .LVU2373 3244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6877 .loc 1 3244 12 is_stmt 0 view .LVU2374 6878 010e 00E0 b .L435 6879 .LVL453: 6880 .L444: 3248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6881 .loc 1 3248 12 view .LVU2375 6882 0110 0225 movs r5, #2 6883 .LVL454: 6884 .L435: 3250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6885 .loc 1 3250 1 view .LVU2376 6886 0112 2846 mov r0, r5 6887 0114 03B0 add sp, sp, #12 ARM GAS /tmp/cchwqEfL.s page 293 6888 .LCFI80: 6889 .cfi_remember_state 6890 .cfi_def_cfa_offset 20 6891 @ sp needed 6892 0116 F0BD pop {r4, r5, r6, r7, pc} 6893 .LVL455: 6894 .L445: 6895 .LCFI81: 6896 .cfi_restore_state 3136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 6897 .loc 1 3136 14 view .LVU2377 6898 0118 0225 movs r5, #2 6899 011a FAE7 b .L435 6900 .L446: 3140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6901 .loc 1 3140 5 view .LVU2378 6902 011c 0225 movs r5, #2 6903 011e F8E7 b .L435 6904 .L453: 6905 .align 2 6906 .L452: 6907 0120 0000FFFF .word -65536 6908 0124 00000000 .word I2C_Mem_ISR_DMA 6909 0128 00000000 .word I2C_DMAMasterReceiveCplt 6910 012c 00000000 .word I2C_DMAError 6911 0130 00200080 .word -2147475456 6912 .cfi_endproc 6913 .LFE162: 6915 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits 6916 .align 1 6917 .global HAL_I2C_IsDeviceReady 6918 .syntax unified 6919 .thumb 6920 .thumb_func 6921 .fpu fpv5-d16 6923 HAL_I2C_IsDeviceReady: 6924 .LVL456: 6925 .LFB163: 3265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 6926 .loc 1 3265 1 is_stmt 1 view -0 6927 .cfi_startproc 6928 @ args = 0, pretend = 0, frame = 8 6929 @ frame_needed = 0, uses_anonymous_args = 0 3265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tickstart; 6930 .loc 1 3265 1 is_stmt 0 view .LVU2380 6931 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 6932 .LCFI82: 6933 .cfi_def_cfa_offset 28 6934 .cfi_offset 4, -28 6935 .cfi_offset 5, -24 6936 .cfi_offset 6, -20 6937 .cfi_offset 7, -16 6938 .cfi_offset 8, -12 6939 .cfi_offset 9, -8 6940 .cfi_offset 14, -4 6941 0004 85B0 sub sp, sp, #20 6942 .LCFI83: ARM GAS /tmp/cchwqEfL.s page 294 6943 .cfi_def_cfa_offset 48 6944 0006 1D46 mov r5, r3 3266:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6945 .loc 1 3266 3 is_stmt 1 view .LVU2381 3268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6946 .loc 1 3268 3 view .LVU2382 3268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6947 .loc 1 3268 17 is_stmt 0 view .LVU2383 6948 0008 0023 movs r3, #0 6949 .LVL457: 3268:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6950 .loc 1 3268 17 view .LVU2384 6951 000a 0393 str r3, [sp, #12] 3270:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** FlagStatus tmp2; 6952 .loc 1 3270 3 is_stmt 1 view .LVU2385 3271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6953 .loc 1 3271 3 view .LVU2386 3273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6954 .loc 1 3273 3 view .LVU2387 3273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6955 .loc 1 3273 11 is_stmt 0 view .LVU2388 6956 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6957 0010 DBB2 uxtb r3, r3 3273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6958 .loc 1 3273 6 view .LVU2389 6959 0012 202B cmp r3, #32 6960 0014 40F08380 bne .L464 6961 0018 0646 mov r6, r0 6962 001a 8846 mov r8, r1 6963 001c 9146 mov r9, r2 3275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6964 .loc 1 3275 5 is_stmt 1 view .LVU2390 3275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6965 .loc 1 3275 9 is_stmt 0 view .LVU2391 6966 001e 0368 ldr r3, [r0] 6967 0020 9B69 ldr r3, [r3, #24] 3275:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6968 .loc 1 3275 8 view .LVU2392 6969 0022 13F4004F tst r3, #32768 6970 0026 7CD1 bne .L465 3281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6971 .loc 1 3281 5 is_stmt 1 view .LVU2393 3281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6972 .loc 1 3281 5 view .LVU2394 6973 0028 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 6974 002c 012B cmp r3, #1 6975 002e 7AD0 beq .L466 3281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6976 .loc 1 3281 5 discriminator 2 view .LVU2395 6977 0030 0123 movs r3, #1 6978 0032 80F84030 strb r3, [r0, #64] 3281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6979 .loc 1 3281 5 discriminator 2 view .LVU2396 3283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6980 .loc 1 3283 5 discriminator 2 view .LVU2397 3283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6981 .loc 1 3283 17 is_stmt 0 discriminator 2 view .LVU2398 ARM GAS /tmp/cchwqEfL.s page 295 6982 0036 2423 movs r3, #36 6983 0038 80F84130 strb r3, [r0, #65] 3284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6984 .loc 1 3284 5 is_stmt 1 discriminator 2 view .LVU2399 3284:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6985 .loc 1 3284 21 is_stmt 0 discriminator 2 view .LVU2400 6986 003c 0023 movs r3, #0 6987 003e 4364 str r3, [r0, #68] 6988 .LVL458: 6989 .L463: 3286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 6990 .loc 1 3286 5 is_stmt 1 view .LVU2401 3289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6991 .loc 1 3289 7 view .LVU2402 3289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6992 .loc 1 3289 29 is_stmt 0 view .LVU2403 6993 0040 F368 ldr r3, [r6, #12] 6994 0042 012B cmp r3, #1 6995 0044 10D0 beq .L470 3289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 6996 .loc 1 3289 29 discriminator 2 view .LVU2404 6997 0046 C8F30902 ubfx r2, r8, #0, #10 6998 004a 3A4B ldr r3, .L473 6999 004c 1343 orrs r3, r3, r2 7000 .L457: 3289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7001 .loc 1 3289 11 discriminator 4 view .LVU2405 7002 004e 3268 ldr r2, [r6] 3289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7003 .loc 1 3289 27 discriminator 4 view .LVU2406 7004 0050 5360 str r3, [r2, #4] 3293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7005 .loc 1 3293 7 is_stmt 1 discriminator 4 view .LVU2407 3293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7006 .loc 1 3293 19 is_stmt 0 discriminator 4 view .LVU2408 7007 0052 FFF7FEFF bl HAL_GetTick 7008 .LVL459: 7009 0056 0746 mov r7, r0 7010 .LVL460: 3295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7011 .loc 1 3295 7 is_stmt 1 discriminator 4 view .LVU2409 3295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7012 .loc 1 3295 14 is_stmt 0 discriminator 4 view .LVU2410 7013 0058 3268 ldr r2, [r6] 7014 005a 9369 ldr r3, [r2, #24] 7015 005c C3F34013 ubfx r3, r3, #5, #1 7016 .LVL461: 3296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7017 .loc 1 3296 7 is_stmt 1 discriminator 4 view .LVU2411 3296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7018 .loc 1 3296 14 is_stmt 0 discriminator 4 view .LVU2412 7019 0060 9469 ldr r4, [r2, #24] 7020 0062 C4F3001C ubfx ip, r4, #4, #1 7021 .LVL462: 3298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7022 .loc 1 3298 7 is_stmt 1 discriminator 4 view .LVU2413 3298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/cchwqEfL.s page 296 7023 .loc 1 3298 13 is_stmt 0 discriminator 4 view .LVU2414 7024 0066 0BE0 b .L458 7025 .LVL463: 7026 .L470: 3289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7027 .loc 1 3289 29 discriminator 1 view .LVU2415 7028 0068 C8F30902 ubfx r2, r8, #0, #10 7029 006c 324B ldr r3, .L473+4 7030 006e 1343 orrs r3, r3, r2 7031 0070 EDE7 b .L457 7032 .LVL464: 7033 .L459: 3317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7034 .loc 1 3317 9 is_stmt 1 view .LVU2416 3317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 7035 .loc 1 3317 16 is_stmt 0 view .LVU2417 7036 0072 3268 ldr r2, [r6] 7037 0074 9369 ldr r3, [r2, #24] 7038 0076 C3F34013 ubfx r3, r3, #5, #1 7039 .LVL465: 3318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7040 .loc 1 3318 9 is_stmt 1 view .LVU2418 3318:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7041 .loc 1 3318 16 is_stmt 0 view .LVU2419 7042 007a 9469 ldr r4, [r2, #24] 7043 007c C4F3001C ubfx ip, r4, #4, #1 7044 .LVL466: 7045 .L458: 3298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7046 .loc 1 3298 13 is_stmt 1 view .LVU2420 7047 0080 53EA0C03 orrs r3, r3, ip 7048 .LVL467: 3298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7049 .loc 1 3298 13 is_stmt 0 view .LVU2421 7050 0084 17D1 bne .L471 3300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7051 .loc 1 3300 9 is_stmt 1 view .LVU2422 3300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7052 .loc 1 3300 12 is_stmt 0 view .LVU2423 7053 0086 B5F1FF3F cmp r5, #-1 7054 008a F2D0 beq .L459 3302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7055 .loc 1 3302 11 is_stmt 1 view .LVU2424 3302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7056 .loc 1 3302 17 is_stmt 0 view .LVU2425 7057 008c FFF7FEFF bl HAL_GetTick 7058 .LVL468: 3302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7059 .loc 1 3302 31 view .LVU2426 7060 0090 C01B subs r0, r0, r7 3302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7061 .loc 1 3302 14 view .LVU2427 7062 0092 A842 cmp r0, r5 7063 0094 01D8 bhi .L460 3302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7064 .loc 1 3302 55 discriminator 1 view .LVU2428 7065 0096 002D cmp r5, #0 ARM GAS /tmp/cchwqEfL.s page 297 7066 0098 EBD1 bne .L459 7067 .L460: 3305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7068 .loc 1 3305 13 is_stmt 1 view .LVU2429 3305:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7069 .loc 1 3305 25 is_stmt 0 view .LVU2430 7070 009a 2023 movs r3, #32 7071 009c 86F84130 strb r3, [r6, #65] 3308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7072 .loc 1 3308 13 is_stmt 1 view .LVU2431 3308:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7073 .loc 1 3308 29 is_stmt 0 view .LVU2432 7074 00a0 736C ldr r3, [r6, #68] 7075 00a2 43F02003 orr r3, r3, #32 7076 00a6 7364 str r3, [r6, #68] 3311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7077 .loc 1 3311 13 is_stmt 1 view .LVU2433 3311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7078 .loc 1 3311 13 view .LVU2434 7079 00a8 0023 movs r3, #0 7080 00aa 86F84030 strb r3, [r6, #64] 3311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7081 .loc 1 3311 13 view .LVU2435 3313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7082 .loc 1 3313 13 view .LVU2436 3313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7083 .loc 1 3313 20 is_stmt 0 view .LVU2437 7084 00ae 0120 movs r0, #1 7085 .LVL469: 7086 .L455: 3375:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7087 .loc 1 3375 1 view .LVU2438 7088 00b0 05B0 add sp, sp, #20 7089 .LCFI84: 7090 .cfi_remember_state 7091 .cfi_def_cfa_offset 28 7092 @ sp needed 7093 00b2 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 7094 .LVL470: 7095 .L471: 7096 .LCFI85: 7097 .cfi_restore_state 3322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7098 .loc 1 3322 7 is_stmt 1 view .LVU2439 3322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7099 .loc 1 3322 11 is_stmt 0 view .LVU2440 7100 00b6 3368 ldr r3, [r6] 7101 00b8 9B69 ldr r3, [r3, #24] 3322:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7102 .loc 1 3322 10 view .LVU2441 7103 00ba 13F0100F tst r3, #16 7104 00be 1DD0 beq .L472 3344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7105 .loc 1 3344 9 is_stmt 1 view .LVU2442 3344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7106 .loc 1 3344 13 is_stmt 0 view .LVU2443 7107 00c0 0097 str r7, [sp] ARM GAS /tmp/cchwqEfL.s page 298 7108 00c2 2B46 mov r3, r5 7109 00c4 0022 movs r2, #0 7110 00c6 2021 movs r1, #32 7111 00c8 3046 mov r0, r6 7112 00ca FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7113 .LVL471: 3344:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7114 .loc 1 3344 12 view .LVU2444 7115 00ce 70BB cbnz r0, .L468 3350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7116 .loc 1 3350 9 is_stmt 1 view .LVU2445 7117 00d0 3368 ldr r3, [r6] 7118 00d2 1022 movs r2, #16 7119 00d4 DA61 str r2, [r3, #28] 3353:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7120 .loc 1 3353 9 view .LVU2446 7121 00d6 3368 ldr r3, [r6] 7122 00d8 2022 movs r2, #32 7123 00da DA61 str r2, [r3, #28] 3357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7124 .loc 1 3357 7 view .LVU2447 3357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7125 .loc 1 3357 17 is_stmt 0 view .LVU2448 7126 00dc 039B ldr r3, [sp, #12] 7127 00de 0133 adds r3, r3, #1 7128 00e0 0393 str r3, [sp, #12] 3358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7129 .loc 1 3358 13 is_stmt 1 view .LVU2449 3358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7130 .loc 1 3358 25 is_stmt 0 view .LVU2450 7131 00e2 039B ldr r3, [sp, #12] 3358:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7132 .loc 1 3358 5 view .LVU2451 7133 00e4 4B45 cmp r3, r9 7134 00e6 ABD3 bcc .L463 3361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7135 .loc 1 3361 5 is_stmt 1 view .LVU2452 3361:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7136 .loc 1 3361 17 is_stmt 0 view .LVU2453 7137 00e8 86F84120 strb r2, [r6, #65] 3364:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7138 .loc 1 3364 5 is_stmt 1 view .LVU2454 3364:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7139 .loc 1 3364 21 is_stmt 0 view .LVU2455 7140 00ec 736C ldr r3, [r6, #68] 7141 00ee 1343 orrs r3, r3, r2 7142 00f0 7364 str r3, [r6, #68] 3367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7143 .loc 1 3367 5 is_stmt 1 view .LVU2456 3367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7144 .loc 1 3367 5 view .LVU2457 7145 00f2 0023 movs r3, #0 7146 00f4 86F84030 strb r3, [r6, #64] 3367:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7147 .loc 1 3367 5 view .LVU2458 3369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7148 .loc 1 3369 5 view .LVU2459 ARM GAS /tmp/cchwqEfL.s page 299 3369:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7149 .loc 1 3369 12 is_stmt 0 view .LVU2460 7150 00f8 0120 movs r0, #1 7151 00fa D9E7 b .L455 7152 .LVL472: 7153 .L472: 3325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7154 .loc 1 3325 9 is_stmt 1 view .LVU2461 3325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7155 .loc 1 3325 13 is_stmt 0 view .LVU2462 7156 00fc 0097 str r7, [sp] 7157 00fe 2B46 mov r3, r5 7158 0100 0022 movs r2, #0 7159 0102 2021 movs r1, #32 7160 0104 3046 mov r0, r6 7161 0106 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7162 .LVL473: 3325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7163 .loc 1 3325 12 view .LVU2463 7164 010a 70B9 cbnz r0, .L467 3331:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7165 .loc 1 3331 9 is_stmt 1 view .LVU2464 7166 010c 3268 ldr r2, [r6] 7167 010e 2023 movs r3, #32 7168 0110 D361 str r3, [r2, #28] 3334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7169 .loc 1 3334 9 view .LVU2465 3334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7170 .loc 1 3334 21 is_stmt 0 view .LVU2466 7171 0112 86F84130 strb r3, [r6, #65] 3337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7172 .loc 1 3337 9 is_stmt 1 view .LVU2467 3337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7173 .loc 1 3337 9 view .LVU2468 7174 0116 0023 movs r3, #0 7175 0118 86F84030 strb r3, [r6, #64] 3337:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7176 .loc 1 3337 9 view .LVU2469 3339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7177 .loc 1 3339 9 view .LVU2470 3339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7178 .loc 1 3339 16 is_stmt 0 view .LVU2471 7179 011c C8E7 b .L455 7180 .LVL474: 7181 .L464: 3373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7182 .loc 1 3373 12 view .LVU2472 7183 011e 0220 movs r0, #2 7184 .LVL475: 3373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7185 .loc 1 3373 12 view .LVU2473 7186 0120 C6E7 b .L455 7187 .LVL476: 7188 .L465: 3277:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7189 .loc 1 3277 14 view .LVU2474 7190 0122 0220 movs r0, #2 ARM GAS /tmp/cchwqEfL.s page 300 7191 .LVL477: 3277:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7192 .loc 1 3277 14 view .LVU2475 7193 0124 C4E7 b .L455 7194 .LVL478: 7195 .L466: 3281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7196 .loc 1 3281 5 view .LVU2476 7197 0126 0220 movs r0, #2 7198 .LVL479: 3281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7199 .loc 1 3281 5 view .LVU2477 7200 0128 C2E7 b .L455 7201 .LVL480: 7202 .L467: 3327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7203 .loc 1 3327 18 view .LVU2478 7204 012a 0120 movs r0, #1 7205 012c C0E7 b .L455 7206 .L468: 3346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7207 .loc 1 3346 18 view .LVU2479 7208 012e 0120 movs r0, #1 7209 0130 BEE7 b .L455 7210 .L474: 7211 0132 00BF .align 2 7212 .L473: 7213 0134 00280002 .word 33564672 7214 0138 00200002 .word 33562624 7215 .cfi_endproc 7216 .LFE163: 7218 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits 7219 .align 1 7220 .global HAL_I2C_Master_Seq_Transmit_IT 7221 .syntax unified 7222 .thumb 7223 .thumb_func 7224 .fpu fpv5-d16 7226 HAL_I2C_Master_Seq_Transmit_IT: 7227 .LVL481: 7228 .LFB164: 3391:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 7229 .loc 1 3391 1 is_stmt 1 view -0 7230 .cfi_startproc 7231 @ args = 4, pretend = 0, frame = 0 7232 @ frame_needed = 0, uses_anonymous_args = 0 3391:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 7233 .loc 1 3391 1 is_stmt 0 view .LVU2481 7234 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 7235 .LCFI86: 7236 .cfi_def_cfa_offset 24 7237 .cfi_offset 4, -24 7238 .cfi_offset 5, -20 7239 .cfi_offset 6, -16 7240 .cfi_offset 7, -12 7241 .cfi_offset 8, -8 7242 .cfi_offset 14, -4 ARM GAS /tmp/cchwqEfL.s page 301 7243 0004 82B0 sub sp, sp, #8 7244 .LCFI87: 7245 .cfi_def_cfa_offset 32 7246 0006 0446 mov r4, r0 7247 0008 089E ldr r6, [sp, #32] 3392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7248 .loc 1 3392 3 is_stmt 1 view .LVU2482 3393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7249 .loc 1 3393 3 view .LVU2483 7250 .LVL482: 3394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7251 .loc 1 3394 3 view .LVU2484 3397:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7252 .loc 1 3397 3 view .LVU2485 3399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7253 .loc 1 3399 3 view .LVU2486 3399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7254 .loc 1 3399 11 is_stmt 0 view .LVU2487 7255 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7256 .LVL483: 3399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7257 .loc 1 3399 11 view .LVU2488 7258 000e C0B2 uxtb r0, r0 3399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7259 .loc 1 3399 6 view .LVU2489 7260 0010 2028 cmp r0, #32 7261 0012 73D1 bne .L484 7262 0014 0D46 mov r5, r1 3402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7263 .loc 1 3402 5 is_stmt 1 view .LVU2490 3402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7264 .loc 1 3402 5 view .LVU2491 7265 0016 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7266 .LVL484: 3402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7267 .loc 1 3402 5 is_stmt 0 view .LVU2492 7268 001a 0129 cmp r1, #1 7269 001c 70D0 beq .L485 3402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7270 .loc 1 3402 5 is_stmt 1 discriminator 2 view .LVU2493 7271 001e 0121 movs r1, #1 7272 0020 84F84010 strb r1, [r4, #64] 3402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7273 .loc 1 3402 5 discriminator 2 view .LVU2494 3404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7274 .loc 1 3404 5 discriminator 2 view .LVU2495 3404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7275 .loc 1 3404 21 is_stmt 0 discriminator 2 view .LVU2496 7276 0024 2121 movs r1, #33 7277 0026 84F84110 strb r1, [r4, #65] 3405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7278 .loc 1 3405 5 is_stmt 1 discriminator 2 view .LVU2497 3405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7279 .loc 1 3405 21 is_stmt 0 discriminator 2 view .LVU2498 7280 002a 1021 movs r1, #16 7281 002c 84F84210 strb r1, [r4, #66] 3406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 302 7282 .loc 1 3406 5 is_stmt 1 discriminator 2 view .LVU2499 3406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7283 .loc 1 3406 21 is_stmt 0 discriminator 2 view .LVU2500 7284 0030 0021 movs r1, #0 7285 0032 6164 str r1, [r4, #68] 3409:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 7286 .loc 1 3409 5 is_stmt 1 discriminator 2 view .LVU2501 3409:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 7287 .loc 1 3409 23 is_stmt 0 discriminator 2 view .LVU2502 7288 0034 6262 str r2, [r4, #36] 3410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7289 .loc 1 3410 5 is_stmt 1 discriminator 2 view .LVU2503 3410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7290 .loc 1 3410 23 is_stmt 0 discriminator 2 view .LVU2504 7291 0036 6385 strh r3, [r4, #42] @ movhi 3411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7292 .loc 1 3411 5 is_stmt 1 discriminator 2 view .LVU2505 3411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7293 .loc 1 3411 23 is_stmt 0 discriminator 2 view .LVU2506 7294 0038 E662 str r6, [r4, #44] 3412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7295 .loc 1 3412 5 is_stmt 1 discriminator 2 view .LVU2507 3412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7296 .loc 1 3412 23 is_stmt 0 discriminator 2 view .LVU2508 7297 003a 324B ldr r3, .L491 7298 .LVL485: 3412:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7299 .loc 1 3412 23 discriminator 2 view .LVU2509 7300 003c 6363 str r3, [r4, #52] 3415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7301 .loc 1 3415 5 is_stmt 1 discriminator 2 view .LVU2510 3415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7302 .loc 1 3415 13 is_stmt 0 discriminator 2 view .LVU2511 7303 003e 638D ldrh r3, [r4, #42] 7304 0040 9BB2 uxth r3, r3 3415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7305 .loc 1 3415 8 discriminator 2 view .LVU2512 7306 0042 FF2B cmp r3, #255 7307 0044 1BD9 bls .L477 3417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7308 .loc 1 3417 7 is_stmt 1 view .LVU2513 3417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7309 .loc 1 3417 22 is_stmt 0 view .LVU2514 7310 0046 FF23 movs r3, #255 7311 0048 2385 strh r3, [r4, #40] @ movhi 3418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7312 .loc 1 3418 7 is_stmt 1 view .LVU2515 7313 .LVL486: 3418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7314 .loc 1 3418 16 is_stmt 0 view .LVU2516 7315 004a 4FF08077 mov r7, #16777216 7316 .LVL487: 7317 .L478: 3426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7318 .loc 1 3426 5 is_stmt 1 view .LVU2517 3426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7319 .loc 1 3426 14 is_stmt 0 view .LVU2518 ARM GAS /tmp/cchwqEfL.s page 303 7320 004e 238D ldrh r3, [r4, #40] 3426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7321 .loc 1 3426 8 view .LVU2519 7322 0050 CBB1 cbz r3, .L486 3426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7323 .loc 1 3426 31 discriminator 1 view .LVU2520 7324 0052 B6F1007F cmp r6, #33554432 7325 0056 18BF it ne 7326 0058 002E cmpne r6, #0 7327 005a 3FD1 bne .L487 3431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7328 .loc 1 3431 7 is_stmt 1 view .LVU2521 3431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7329 .loc 1 3431 11 is_stmt 0 view .LVU2522 7330 005c 2368 ldr r3, [r4] 3431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7331 .loc 1 3431 30 view .LVU2523 7332 005e 1278 ldrb r2, [r2] @ zero_extendqisi2 7333 .LVL488: 3431:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7334 .loc 1 3431 28 view .LVU2524 7335 0060 9A62 str r2, [r3, #40] 7336 .LVL489: 3434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7337 .loc 1 3434 7 is_stmt 1 view .LVU2525 3434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7338 .loc 1 3434 11 is_stmt 0 view .LVU2526 7339 0062 636A ldr r3, [r4, #36] 3434:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7340 .loc 1 3434 21 view .LVU2527 7341 0064 0133 adds r3, r3, #1 7342 0066 6362 str r3, [r4, #36] 3436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 7343 .loc 1 3436 7 is_stmt 1 view .LVU2528 3436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 7344 .loc 1 3436 24 is_stmt 0 view .LVU2529 7345 0068 B4F82880 ldrh r8, [r4, #40] 7346 .LVL490: 3437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 7347 .loc 1 3437 7 is_stmt 1 view .LVU2530 3437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 7348 .loc 1 3437 11 is_stmt 0 view .LVU2531 7349 006c 638D ldrh r3, [r4, #42] 7350 006e 9BB2 uxth r3, r3 3437:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 7351 .loc 1 3437 22 view .LVU2532 7352 0070 013B subs r3, r3, #1 7353 0072 9BB2 uxth r3, r3 7354 0074 6385 strh r3, [r4, #42] @ movhi 3438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7355 .loc 1 3438 7 is_stmt 1 view .LVU2533 3438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7356 .loc 1 3438 21 is_stmt 0 view .LVU2534 7357 0076 08F1FF33 add r3, r8, #-1 7358 007a 2385 strh r3, [r4, #40] @ movhi 7359 007c 05E0 b .L479 7360 .LVL491: ARM GAS /tmp/cchwqEfL.s page 304 7361 .L477: 3422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7362 .loc 1 3422 7 is_stmt 1 view .LVU2535 3422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7363 .loc 1 3422 28 is_stmt 0 view .LVU2536 7364 007e 638D ldrh r3, [r4, #42] 3422:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7365 .loc 1 3422 22 view .LVU2537 7366 0080 2385 strh r3, [r4, #40] @ movhi 3423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7367 .loc 1 3423 7 is_stmt 1 view .LVU2538 3423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7368 .loc 1 3423 16 is_stmt 0 view .LVU2539 7369 0082 E76A ldr r7, [r4, #44] 7370 .LVL492: 3423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7371 .loc 1 3423 16 view .LVU2540 7372 0084 E3E7 b .L478 7373 .L486: 3394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7374 .loc 1 3394 12 view .LVU2541 7375 0086 4FF00008 mov r8, #0 7376 .LVL493: 7377 .L479: 3444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7378 .loc 1 3444 5 is_stmt 1 view .LVU2542 3444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7379 .loc 1 3444 14 is_stmt 0 view .LVU2543 7380 008a 236B ldr r3, [r4, #48] 3444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7381 .loc 1 3444 8 view .LVU2544 7382 008c 112B cmp r3, #17 7383 008e 04D1 bne .L480 3444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7384 .loc 1 3444 59 discriminator 1 view .LVU2545 7385 0090 B6F52A4F cmp r6, #43520 7386 0094 18BF it ne 7387 0096 AA2E cmpne r6, #170 7388 0098 23D1 bne .L488 7389 .L480: 3452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7390 .loc 1 3452 7 is_stmt 1 view .LVU2546 7391 009a 2046 mov r0, r4 7392 009c FFF7FEFF bl I2C_ConvertOtherXferOptions 7393 .LVL494: 3455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7394 .loc 1 3455 7 view .LVU2547 3455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7395 .loc 1 3455 15 is_stmt 0 view .LVU2548 7396 00a0 638D ldrh r3, [r4, #42] 7397 00a2 9BB2 uxth r3, r3 3455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7398 .loc 1 3455 10 view .LVU2549 7399 00a4 FF2B cmp r3, #255 7400 00a6 1ED8 bhi .L489 3457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7401 .loc 1 3457 9 is_stmt 1 view .LVU2550 ARM GAS /tmp/cchwqEfL.s page 305 3457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7402 .loc 1 3457 18 is_stmt 0 view .LVU2551 7403 00a8 E76A ldr r7, [r4, #44] 7404 .LVL495: 3393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7405 .loc 1 3393 12 view .LVU2552 7406 00aa 174B ldr r3, .L491+4 7407 .L481: 7408 .LVL496: 3462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7409 .loc 1 3462 5 is_stmt 1 view .LVU2553 3462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7410 .loc 1 3462 8 is_stmt 0 view .LVU2554 7411 00ac B6F1007F cmp r6, #33554432 7412 00b0 18BF it ne 7413 00b2 002E cmpne r6, #0 7414 00b4 19D1 bne .L482 3464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7415 .loc 1 3464 7 is_stmt 1 view .LVU2555 7416 00b6 0093 str r3, [sp] 7417 00b8 3B46 mov r3, r7 7418 .LVL497: 3464:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7419 .loc 1 3464 7 is_stmt 0 view .LVU2556 7420 00ba 5FFA88F2 uxtb r2, r8 7421 00be 2946 mov r1, r5 7422 00c0 2046 mov r0, r4 7423 00c2 FFF7FEFF bl I2C_TransferConfig 7424 .LVL498: 7425 .L483: 3472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7426 .loc 1 3472 5 is_stmt 1 view .LVU2557 3472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7427 .loc 1 3472 5 view .LVU2558 7428 00c6 0025 movs r5, #0 7429 00c8 84F84050 strb r5, [r4, #64] 3472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7430 .loc 1 3472 5 view .LVU2559 3481:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7431 .loc 1 3481 5 view .LVU2560 7432 00cc 0121 movs r1, #1 7433 00ce 2046 mov r0, r4 7434 00d0 FFF7FEFF bl I2C_Enable_IRQ 7435 .LVL499: 3483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7436 .loc 1 3483 5 view .LVU2561 3483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7437 .loc 1 3483 12 is_stmt 0 view .LVU2562 7438 00d4 2846 mov r0, r5 7439 .LVL500: 7440 .L476: 3489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7441 .loc 1 3489 1 view .LVU2563 7442 00d6 02B0 add sp, sp, #8 7443 .LCFI88: 7444 .cfi_remember_state 7445 .cfi_def_cfa_offset 24 ARM GAS /tmp/cchwqEfL.s page 306 7446 @ sp needed 7447 00d8 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7448 .LVL501: 7449 .L487: 7450 .LCFI89: 7451 .cfi_restore_state 3394:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7452 .loc 1 3394 12 view .LVU2564 7453 00dc 4FF00008 mov r8, #0 7454 00e0 D3E7 b .L479 7455 .LVL502: 7456 .L488: 3447:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7457 .loc 1 3447 19 view .LVU2565 7458 00e2 0023 movs r3, #0 7459 00e4 E2E7 b .L481 7460 .L489: 3393:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7461 .loc 1 3393 12 view .LVU2566 7462 00e6 084B ldr r3, .L491+4 7463 00e8 E0E7 b .L481 7464 .LVL503: 7465 .L482: 3468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7466 .loc 1 3468 7 is_stmt 1 view .LVU2567 7467 00ea 0093 str r3, [sp] 7468 00ec 3B46 mov r3, r7 7469 .LVL504: 3468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7470 .loc 1 3468 7 is_stmt 0 view .LVU2568 7471 00ee 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7472 00f2 2946 mov r1, r5 7473 00f4 2046 mov r0, r4 7474 00f6 FFF7FEFF bl I2C_TransferConfig 7475 .LVL505: 3468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7476 .loc 1 3468 7 view .LVU2569 7477 00fa E4E7 b .L483 7478 .LVL506: 7479 .L484: 3487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7480 .loc 1 3487 12 view .LVU2570 7481 00fc 0220 movs r0, #2 7482 00fe EAE7 b .L476 7483 .LVL507: 7484 .L485: 3402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7485 .loc 1 3402 5 view .LVU2571 7486 0100 0220 movs r0, #2 7487 0102 E8E7 b .L476 7488 .L492: 7489 .align 2 7490 .L491: 7491 0104 00000000 .word I2C_Master_ISR_IT 7492 0108 00200080 .word -2147475456 7493 .cfi_endproc 7494 .LFE164: ARM GAS /tmp/cchwqEfL.s page 307 7496 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits 7497 .align 1 7498 .global HAL_I2C_Master_Seq_Transmit_DMA 7499 .syntax unified 7500 .thumb 7501 .thumb_func 7502 .fpu fpv5-d16 7504 HAL_I2C_Master_Seq_Transmit_DMA: 7505 .LVL508: 7506 .LFB165: 3505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 7507 .loc 1 3505 1 is_stmt 1 view -0 7508 .cfi_startproc 7509 @ args = 4, pretend = 0, frame = 0 7510 @ frame_needed = 0, uses_anonymous_args = 0 3505:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 7511 .loc 1 3505 1 is_stmt 0 view .LVU2573 7512 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 7513 .LCFI90: 7514 .cfi_def_cfa_offset 28 7515 .cfi_offset 4, -28 7516 .cfi_offset 5, -24 7517 .cfi_offset 6, -20 7518 .cfi_offset 7, -16 7519 .cfi_offset 8, -12 7520 .cfi_offset 9, -8 7521 .cfi_offset 14, -4 7522 0004 83B0 sub sp, sp, #12 7523 .LCFI91: 7524 .cfi_def_cfa_offset 40 7525 0006 0446 mov r4, r0 7526 0008 0A9E ldr r6, [sp, #40] 3506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7527 .loc 1 3506 3 is_stmt 1 view .LVU2574 3507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7528 .loc 1 3507 3 view .LVU2575 7529 .LVL509: 3508:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7530 .loc 1 3508 3 view .LVU2576 3509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7531 .loc 1 3509 3 view .LVU2577 3512:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7532 .loc 1 3512 3 view .LVU2578 3514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7533 .loc 1 3514 3 view .LVU2579 3514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7534 .loc 1 3514 11 is_stmt 0 view .LVU2580 7535 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7536 .LVL510: 3514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7537 .loc 1 3514 11 view .LVU2581 7538 000e C0B2 uxtb r0, r0 3514:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7539 .loc 1 3514 6 view .LVU2582 7540 0010 2028 cmp r0, #32 7541 0012 40F0D780 bne .L509 7542 0016 0D46 mov r5, r1 ARM GAS /tmp/cchwqEfL.s page 308 3517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7543 .loc 1 3517 5 is_stmt 1 view .LVU2583 3517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7544 .loc 1 3517 5 view .LVU2584 7545 0018 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7546 .LVL511: 3517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7547 .loc 1 3517 5 is_stmt 0 view .LVU2585 7548 001c 0129 cmp r1, #1 7549 001e 00F0D580 beq .L510 3517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7550 .loc 1 3517 5 is_stmt 1 discriminator 2 view .LVU2586 7551 0022 0121 movs r1, #1 7552 0024 84F84010 strb r1, [r4, #64] 3517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7553 .loc 1 3517 5 discriminator 2 view .LVU2587 3519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7554 .loc 1 3519 5 discriminator 2 view .LVU2588 3519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7555 .loc 1 3519 21 is_stmt 0 discriminator 2 view .LVU2589 7556 0028 2121 movs r1, #33 7557 002a 84F84110 strb r1, [r4, #65] 3520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7558 .loc 1 3520 5 is_stmt 1 discriminator 2 view .LVU2590 3520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7559 .loc 1 3520 21 is_stmt 0 discriminator 2 view .LVU2591 7560 002e 1021 movs r1, #16 7561 0030 84F84210 strb r1, [r4, #66] 3521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7562 .loc 1 3521 5 is_stmt 1 discriminator 2 view .LVU2592 3521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7563 .loc 1 3521 21 is_stmt 0 discriminator 2 view .LVU2593 7564 0034 0021 movs r1, #0 7565 0036 6164 str r1, [r4, #68] 3524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 7566 .loc 1 3524 5 is_stmt 1 discriminator 2 view .LVU2594 3524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 7567 .loc 1 3524 23 is_stmt 0 discriminator 2 view .LVU2595 7568 0038 6262 str r2, [r4, #36] 3525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7569 .loc 1 3525 5 is_stmt 1 discriminator 2 view .LVU2596 3525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7570 .loc 1 3525 23 is_stmt 0 discriminator 2 view .LVU2597 7571 003a 6385 strh r3, [r4, #42] @ movhi 3526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7572 .loc 1 3526 5 is_stmt 1 discriminator 2 view .LVU2598 3526:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7573 .loc 1 3526 23 is_stmt 0 discriminator 2 view .LVU2599 7574 003c E662 str r6, [r4, #44] 3527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7575 .loc 1 3527 5 is_stmt 1 discriminator 2 view .LVU2600 3527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7576 .loc 1 3527 23 is_stmt 0 discriminator 2 view .LVU2601 7577 003e 644B ldr r3, .L517 7578 .LVL512: 3527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7579 .loc 1 3527 23 discriminator 2 view .LVU2602 ARM GAS /tmp/cchwqEfL.s page 309 7580 0040 6363 str r3, [r4, #52] 3530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7581 .loc 1 3530 5 is_stmt 1 discriminator 2 view .LVU2603 3530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7582 .loc 1 3530 13 is_stmt 0 discriminator 2 view .LVU2604 7583 0042 638D ldrh r3, [r4, #42] 7584 0044 9BB2 uxth r3, r3 3530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7585 .loc 1 3530 8 discriminator 2 view .LVU2605 7586 0046 FF2B cmp r3, #255 7587 0048 1BD9 bls .L495 3532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7588 .loc 1 3532 7 is_stmt 1 view .LVU2606 3532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7589 .loc 1 3532 22 is_stmt 0 view .LVU2607 7590 004a FF23 movs r3, #255 7591 004c 2385 strh r3, [r4, #40] @ movhi 3533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7592 .loc 1 3533 7 is_stmt 1 view .LVU2608 7593 .LVL513: 3533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7594 .loc 1 3533 16 is_stmt 0 view .LVU2609 7595 004e 4FF08077 mov r7, #16777216 7596 .LVL514: 7597 .L496: 3541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7598 .loc 1 3541 5 is_stmt 1 view .LVU2610 3541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7599 .loc 1 3541 14 is_stmt 0 view .LVU2611 7600 0052 238D ldrh r3, [r4, #40] 3541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7601 .loc 1 3541 8 view .LVU2612 7602 0054 CBB1 cbz r3, .L511 3541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7603 .loc 1 3541 31 discriminator 1 view .LVU2613 7604 0056 B6F1007F cmp r6, #33554432 7605 005a 18BF it ne 7606 005c 002E cmpne r6, #0 7607 005e 29D1 bne .L512 3546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7608 .loc 1 3546 7 is_stmt 1 view .LVU2614 3546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7609 .loc 1 3546 11 is_stmt 0 view .LVU2615 7610 0060 2368 ldr r3, [r4] 3546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7611 .loc 1 3546 30 view .LVU2616 7612 0062 1278 ldrb r2, [r2] @ zero_extendqisi2 7613 .LVL515: 3546:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7614 .loc 1 3546 28 view .LVU2617 7615 0064 9A62 str r2, [r3, #40] 7616 .LVL516: 3549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7617 .loc 1 3549 7 is_stmt 1 view .LVU2618 3549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7618 .loc 1 3549 11 is_stmt 0 view .LVU2619 7619 0066 636A ldr r3, [r4, #36] ARM GAS /tmp/cchwqEfL.s page 310 3549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7620 .loc 1 3549 21 view .LVU2620 7621 0068 0133 adds r3, r3, #1 7622 006a 6362 str r3, [r4, #36] 3551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 7623 .loc 1 3551 7 is_stmt 1 view .LVU2621 3551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 7624 .loc 1 3551 24 is_stmt 0 view .LVU2622 7625 006c B4F82880 ldrh r8, [r4, #40] 7626 .LVL517: 3552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 7627 .loc 1 3552 7 is_stmt 1 view .LVU2623 3552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 7628 .loc 1 3552 11 is_stmt 0 view .LVU2624 7629 0070 638D ldrh r3, [r4, #42] 7630 0072 9BB2 uxth r3, r3 3552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 7631 .loc 1 3552 22 view .LVU2625 7632 0074 013B subs r3, r3, #1 7633 0076 9BB2 uxth r3, r3 7634 0078 6385 strh r3, [r4, #42] @ movhi 3553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7635 .loc 1 3553 7 is_stmt 1 view .LVU2626 3553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7636 .loc 1 3553 21 is_stmt 0 view .LVU2627 7637 007a 08F1FF33 add r3, r8, #-1 7638 007e 2385 strh r3, [r4, #40] @ movhi 7639 0080 05E0 b .L497 7640 .LVL518: 7641 .L495: 3537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7642 .loc 1 3537 7 is_stmt 1 view .LVU2628 3537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7643 .loc 1 3537 28 is_stmt 0 view .LVU2629 7644 0082 638D ldrh r3, [r4, #42] 3537:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7645 .loc 1 3537 22 view .LVU2630 7646 0084 2385 strh r3, [r4, #40] @ movhi 3538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7647 .loc 1 3538 7 is_stmt 1 view .LVU2631 3538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7648 .loc 1 3538 16 is_stmt 0 view .LVU2632 7649 0086 E76A ldr r7, [r4, #44] 7650 .LVL519: 3538:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7651 .loc 1 3538 16 view .LVU2633 7652 0088 E3E7 b .L496 7653 .L511: 3509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7654 .loc 1 3509 12 view .LVU2634 7655 008a 4FF00008 mov r8, #0 7656 .LVL520: 7657 .L497: 3559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7658 .loc 1 3559 5 is_stmt 1 view .LVU2635 3559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7659 .loc 1 3559 14 is_stmt 0 view .LVU2636 ARM GAS /tmp/cchwqEfL.s page 311 7660 008e 236B ldr r3, [r4, #48] 3559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7661 .loc 1 3559 8 view .LVU2637 7662 0090 112B cmp r3, #17 7663 0092 04D1 bne .L498 3559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7664 .loc 1 3559 59 discriminator 1 view .LVU2638 7665 0094 B6F52A4F cmp r6, #43520 7666 0098 18BF it ne 7667 009a AA2E cmpne r6, #170 7668 009c 0DD1 bne .L513 7669 .L498: 3567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7670 .loc 1 3567 7 is_stmt 1 view .LVU2639 7671 009e 2046 mov r0, r4 7672 00a0 FFF7FEFF bl I2C_ConvertOtherXferOptions 7673 .LVL521: 3570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7674 .loc 1 3570 7 view .LVU2640 3570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7675 .loc 1 3570 15 is_stmt 0 view .LVU2641 7676 00a4 638D ldrh r3, [r4, #42] 7677 00a6 9BB2 uxth r3, r3 3570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7678 .loc 1 3570 10 view .LVU2642 7679 00a8 FF2B cmp r3, #255 7680 00aa 09D8 bhi .L514 3572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7681 .loc 1 3572 9 is_stmt 1 view .LVU2643 3572:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7682 .loc 1 3572 18 is_stmt 0 view .LVU2644 7683 00ac E76A ldr r7, [r4, #44] 7684 .LVL522: 3507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7685 .loc 1 3507 12 view .LVU2645 7686 00ae DFF83091 ldr r9, .L517+16 7687 00b2 07E0 b .L499 7688 .LVL523: 7689 .L512: 3509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7690 .loc 1 3509 12 view .LVU2646 7691 00b4 4FF00008 mov r8, #0 7692 00b8 E9E7 b .L497 7693 .LVL524: 7694 .L513: 3562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7695 .loc 1 3562 19 view .LVU2647 7696 00ba 4FF00009 mov r9, #0 7697 00be 01E0 b .L499 7698 .L514: 3507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7699 .loc 1 3507 12 view .LVU2648 7700 00c0 DFF81C91 ldr r9, .L517+16 7701 .L499: 7702 .LVL525: 3576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7703 .loc 1 3576 5 is_stmt 1 view .LVU2649 ARM GAS /tmp/cchwqEfL.s page 312 3576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7704 .loc 1 3576 13 is_stmt 0 view .LVU2650 7705 00c4 228D ldrh r2, [r4, #40] 3576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7706 .loc 1 3576 8 view .LVU2651 7707 00c6 002A cmp r2, #0 7708 00c8 5AD0 beq .L500 3578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7709 .loc 1 3578 7 is_stmt 1 view .LVU2652 3578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7710 .loc 1 3578 15 is_stmt 0 view .LVU2653 7711 00ca A36B ldr r3, [r4, #56] 3578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7712 .loc 1 3578 10 view .LVU2654 7713 00cc FBB1 cbz r3, .L501 3581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7714 .loc 1 3581 9 is_stmt 1 view .LVU2655 3581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7715 .loc 1 3581 40 is_stmt 0 view .LVU2656 7716 00ce 414A ldr r2, .L517+4 7717 00d0 DA63 str r2, [r3, #60] 3584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7718 .loc 1 3584 9 is_stmt 1 view .LVU2657 3584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7719 .loc 1 3584 13 is_stmt 0 view .LVU2658 7720 00d2 A36B ldr r3, [r4, #56] 3584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7721 .loc 1 3584 41 view .LVU2659 7722 00d4 404A ldr r2, .L517+8 7723 00d6 DA64 str r2, [r3, #76] 3587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7724 .loc 1 3587 9 is_stmt 1 view .LVU2660 3587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7725 .loc 1 3587 13 is_stmt 0 view .LVU2661 7726 00d8 A26B ldr r2, [r4, #56] 3587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7727 .loc 1 3587 44 view .LVU2662 7728 00da 0023 movs r3, #0 7729 00dc 1364 str r3, [r2, #64] 3588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7730 .loc 1 3588 9 is_stmt 1 view .LVU2663 3588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7731 .loc 1 3588 13 is_stmt 0 view .LVU2664 7732 00de A26B ldr r2, [r4, #56] 3588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7733 .loc 1 3588 41 view .LVU2665 7734 00e0 1365 str r3, [r2, #80] 3591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 7735 .loc 1 3591 9 is_stmt 1 view .LVU2666 3592:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7736 .loc 1 3592 57 is_stmt 0 view .LVU2667 7737 00e2 2268 ldr r2, [r4] 3591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 7738 .loc 1 3591 25 view .LVU2668 7739 00e4 238D ldrh r3, [r4, #40] 7740 00e6 2832 adds r2, r2, #40 7741 00e8 616A ldr r1, [r4, #36] ARM GAS /tmp/cchwqEfL.s page 313 7742 00ea A06B ldr r0, [r4, #56] 7743 00ec FFF7FEFF bl HAL_DMA_Start_IT 7744 .LVL526: 3609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7745 .loc 1 3609 7 is_stmt 1 view .LVU2669 3609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7746 .loc 1 3609 10 is_stmt 0 view .LVU2670 7747 00f0 D8B1 cbz r0, .L502 3639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7748 .loc 1 3639 9 is_stmt 1 view .LVU2671 3639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7749 .loc 1 3639 25 is_stmt 0 view .LVU2672 7750 00f2 2023 movs r3, #32 7751 00f4 84F84130 strb r3, [r4, #65] 3640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7752 .loc 1 3640 9 is_stmt 1 view .LVU2673 3640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7753 .loc 1 3640 25 is_stmt 0 view .LVU2674 7754 00f8 0022 movs r2, #0 7755 00fa 84F84220 strb r2, [r4, #66] 3643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7756 .loc 1 3643 9 is_stmt 1 view .LVU2675 3643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7757 .loc 1 3643 25 is_stmt 0 view .LVU2676 7758 00fe 636C ldr r3, [r4, #68] 7759 0100 43F01003 orr r3, r3, #16 7760 0104 6364 str r3, [r4, #68] 3646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7761 .loc 1 3646 9 is_stmt 1 view .LVU2677 3646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7762 .loc 1 3646 9 view .LVU2678 7763 0106 84F84020 strb r2, [r4, #64] 3646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7764 .loc 1 3646 9 view .LVU2679 3648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7765 .loc 1 3648 9 view .LVU2680 3648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7766 .loc 1 3648 16 is_stmt 0 view .LVU2681 7767 010a 0120 movs r0, #1 7768 .LVL527: 3648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7769 .loc 1 3648 16 view .LVU2682 7770 010c 5BE0 b .L494 7771 .L501: 3597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7772 .loc 1 3597 9 is_stmt 1 view .LVU2683 3597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7773 .loc 1 3597 25 is_stmt 0 view .LVU2684 7774 010e 2023 movs r3, #32 7775 0110 84F84130 strb r3, [r4, #65] 3598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7776 .loc 1 3598 9 is_stmt 1 view .LVU2685 3598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7777 .loc 1 3598 25 is_stmt 0 view .LVU2686 7778 0114 0022 movs r2, #0 7779 0116 84F84220 strb r2, [r4, #66] 3601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 314 7780 .loc 1 3601 9 is_stmt 1 view .LVU2687 3601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7781 .loc 1 3601 25 is_stmt 0 view .LVU2688 7782 011a 636C ldr r3, [r4, #68] 7783 011c 43F08003 orr r3, r3, #128 7784 0120 6364 str r3, [r4, #68] 3604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7785 .loc 1 3604 9 is_stmt 1 view .LVU2689 3604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7786 .loc 1 3604 9 view .LVU2690 7787 0122 84F84020 strb r2, [r4, #64] 3604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7788 .loc 1 3604 9 view .LVU2691 3606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7789 .loc 1 3606 9 view .LVU2692 3606:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7790 .loc 1 3606 16 is_stmt 0 view .LVU2693 7791 0126 0120 movs r0, #1 7792 0128 4DE0 b .L494 7793 .LVL528: 7794 .L502: 3612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7795 .loc 1 3612 9 is_stmt 1 view .LVU2694 3612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7796 .loc 1 3612 12 is_stmt 0 view .LVU2695 7797 012a B6F1007F cmp r6, #33554432 7798 012e 18BF it ne 7799 0130 002E cmpne r6, #0 7800 0132 1BD1 bne .L504 3614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7801 .loc 1 3614 11 is_stmt 1 view .LVU2696 7802 0134 CDF80090 str r9, [sp] 7803 0138 3B46 mov r3, r7 7804 013a 5FFA88F2 uxtb r2, r8 7805 013e 2946 mov r1, r5 7806 0140 2046 mov r0, r4 7807 .LVL529: 3614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7808 .loc 1 3614 11 is_stmt 0 view .LVU2697 7809 0142 FFF7FEFF bl I2C_TransferConfig 7810 .LVL530: 7811 .L505: 3622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7812 .loc 1 3622 9 is_stmt 1 view .LVU2698 3622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7813 .loc 1 3622 25 is_stmt 0 view .LVU2699 7814 0146 638D ldrh r3, [r4, #42] 7815 0148 9BB2 uxth r3, r3 3622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7816 .loc 1 3622 32 view .LVU2700 7817 014a 228D ldrh r2, [r4, #40] 3622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7818 .loc 1 3622 25 view .LVU2701 7819 014c 9B1A subs r3, r3, r2 7820 014e 9BB2 uxth r3, r3 7821 0150 6385 strh r3, [r4, #42] @ movhi 3625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 315 7822 .loc 1 3625 9 is_stmt 1 view .LVU2702 3625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7823 .loc 1 3625 9 view .LVU2703 7824 0152 0023 movs r3, #0 7825 0154 84F84030 strb r3, [r4, #64] 3625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7826 .loc 1 3625 9 view .LVU2704 3631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7827 .loc 1 3631 9 view .LVU2705 7828 0158 1021 movs r1, #16 7829 015a 2046 mov r0, r4 7830 015c FFF7FEFF bl I2C_Enable_IRQ 7831 .LVL531: 3634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7832 .loc 1 3634 9 view .LVU2706 3634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7833 .loc 1 3634 13 is_stmt 0 view .LVU2707 7834 0160 2268 ldr r2, [r4] 3634:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7835 .loc 1 3634 29 view .LVU2708 7836 0162 1368 ldr r3, [r2] 7837 0164 43F48043 orr r3, r3, #16384 7838 0168 1360 str r3, [r2] 7839 016a 20E0 b .L506 7840 .LVL532: 7841 .L504: 3618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7842 .loc 1 3618 11 is_stmt 1 view .LVU2709 7843 016c CDF80090 str r9, [sp] 7844 0170 3B46 mov r3, r7 7845 0172 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7846 0176 2946 mov r1, r5 7847 0178 2046 mov r0, r4 7848 .LVL533: 3618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7849 .loc 1 3618 11 is_stmt 0 view .LVU2710 7850 017a FFF7FEFF bl I2C_TransferConfig 7851 .LVL534: 7852 017e E2E7 b .L505 7853 .L500: 3654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7854 .loc 1 3654 7 is_stmt 1 view .LVU2711 3654:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7855 .loc 1 3654 21 is_stmt 0 view .LVU2712 7856 0180 164B ldr r3, .L517+12 7857 0182 6363 str r3, [r4, #52] 3658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7858 .loc 1 3658 7 is_stmt 1 view .LVU2713 3658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7859 .loc 1 3658 10 is_stmt 0 view .LVU2714 7860 0184 B6F1007F cmp r6, #33554432 7861 0188 18BF it ne 7862 018a 002E cmpne r6, #0 7863 018c 11D1 bne .L507 3660:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7864 .loc 1 3660 9 is_stmt 1 view .LVU2715 7865 018e CDF80090 str r9, [sp] ARM GAS /tmp/cchwqEfL.s page 316 7866 0192 3B46 mov r3, r7 7867 0194 5FFA88F2 uxtb r2, r8 7868 0198 2946 mov r1, r5 7869 019a 2046 mov r0, r4 7870 019c FFF7FEFF bl I2C_TransferConfig 7871 .LVL535: 7872 .L508: 3668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7873 .loc 1 3668 7 view .LVU2716 3668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7874 .loc 1 3668 7 view .LVU2717 7875 01a0 0023 movs r3, #0 7876 01a2 84F84030 strb r3, [r4, #64] 3668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7877 .loc 1 3668 7 view .LVU2718 3677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7878 .loc 1 3677 7 view .LVU2719 7879 01a6 0121 movs r1, #1 7880 01a8 2046 mov r0, r4 7881 01aa FFF7FEFF bl I2C_Enable_IRQ 7882 .LVL536: 7883 .L506: 3680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7884 .loc 1 3680 5 view .LVU2720 3680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7885 .loc 1 3680 12 is_stmt 0 view .LVU2721 7886 01ae 0020 movs r0, #0 7887 01b0 09E0 b .L494 7888 .L507: 3664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7889 .loc 1 3664 9 is_stmt 1 view .LVU2722 7890 01b2 CDF80090 str r9, [sp] 7891 01b6 3B46 mov r3, r7 7892 01b8 D2B2 uxtb r2, r2 7893 01ba 2946 mov r1, r5 7894 01bc 2046 mov r0, r4 7895 01be FFF7FEFF bl I2C_TransferConfig 7896 .LVL537: 7897 01c2 EDE7 b .L508 7898 .LVL538: 7899 .L509: 3684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 7900 .loc 1 3684 12 is_stmt 0 view .LVU2723 7901 01c4 0220 movs r0, #2 7902 .LVL539: 7903 .L494: 3686:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7904 .loc 1 3686 1 view .LVU2724 7905 01c6 03B0 add sp, sp, #12 7906 .LCFI92: 7907 .cfi_remember_state 7908 .cfi_def_cfa_offset 28 7909 @ sp needed 7910 01c8 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 7911 .LVL540: 7912 .L510: 7913 .LCFI93: ARM GAS /tmp/cchwqEfL.s page 317 7914 .cfi_restore_state 3517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7915 .loc 1 3517 5 view .LVU2725 7916 01cc 0220 movs r0, #2 7917 01ce FAE7 b .L494 7918 .L518: 7919 .align 2 7920 .L517: 7921 01d0 00000000 .word I2C_Master_ISR_DMA 7922 01d4 00000000 .word I2C_DMAMasterTransmitCplt 7923 01d8 00000000 .word I2C_DMAError 7924 01dc 00000000 .word I2C_Master_ISR_IT 7925 01e0 00200080 .word -2147475456 7926 .cfi_endproc 7927 .LFE165: 7929 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits 7930 .align 1 7931 .global HAL_I2C_Master_Seq_Receive_IT 7932 .syntax unified 7933 .thumb 7934 .thumb_func 7935 .fpu fpv5-d16 7937 HAL_I2C_Master_Seq_Receive_IT: 7938 .LVL541: 7939 .LFB166: 3702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 7940 .loc 1 3702 1 is_stmt 1 view -0 7941 .cfi_startproc 7942 @ args = 4, pretend = 0, frame = 0 7943 @ frame_needed = 0, uses_anonymous_args = 0 3702:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 7944 .loc 1 3702 1 is_stmt 0 view .LVU2727 7945 0000 70B5 push {r4, r5, r6, lr} 7946 .LCFI94: 7947 .cfi_def_cfa_offset 16 7948 .cfi_offset 4, -16 7949 .cfi_offset 5, -12 7950 .cfi_offset 6, -8 7951 .cfi_offset 14, -4 7952 0002 82B0 sub sp, sp, #8 7953 .LCFI95: 7954 .cfi_def_cfa_offset 24 7955 0004 0446 mov r4, r0 7956 0006 0D46 mov r5, r1 7957 0008 0699 ldr r1, [sp, #24] 7958 .LVL542: 3703:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 7959 .loc 1 3703 3 is_stmt 1 view .LVU2728 3704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7960 .loc 1 3704 3 view .LVU2729 3707:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7961 .loc 1 3707 3 view .LVU2730 3709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7962 .loc 1 3709 3 view .LVU2731 3709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7963 .loc 1 3709 11 is_stmt 0 view .LVU2732 7964 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 ARM GAS /tmp/cchwqEfL.s page 318 7965 .LVL543: 3709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7966 .loc 1 3709 11 view .LVU2733 7967 000e C0B2 uxtb r0, r0 3709:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 7968 .loc 1 3709 6 view .LVU2734 7969 0010 2028 cmp r0, #32 7970 0012 46D1 bne .L525 3712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7971 .loc 1 3712 5 is_stmt 1 view .LVU2735 3712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7972 .loc 1 3712 5 view .LVU2736 7973 0014 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 7974 0018 0128 cmp r0, #1 7975 001a 44D0 beq .L526 3712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7976 .loc 1 3712 5 discriminator 2 view .LVU2737 7977 001c 0120 movs r0, #1 7978 001e 84F84000 strb r0, [r4, #64] 3712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7979 .loc 1 3712 5 discriminator 2 view .LVU2738 3714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7980 .loc 1 3714 5 discriminator 2 view .LVU2739 3714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7981 .loc 1 3714 21 is_stmt 0 discriminator 2 view .LVU2740 7982 0022 2220 movs r0, #34 7983 0024 84F84100 strb r0, [r4, #65] 3715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7984 .loc 1 3715 5 is_stmt 1 discriminator 2 view .LVU2741 3715:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7985 .loc 1 3715 21 is_stmt 0 discriminator 2 view .LVU2742 7986 0028 1020 movs r0, #16 7987 002a 84F84200 strb r0, [r4, #66] 3716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7988 .loc 1 3716 5 is_stmt 1 discriminator 2 view .LVU2743 3716:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 7989 .loc 1 3716 21 is_stmt 0 discriminator 2 view .LVU2744 7990 002e 0020 movs r0, #0 7991 0030 6064 str r0, [r4, #68] 3719:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 7992 .loc 1 3719 5 is_stmt 1 discriminator 2 view .LVU2745 3719:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 7993 .loc 1 3719 23 is_stmt 0 discriminator 2 view .LVU2746 7994 0032 6262 str r2, [r4, #36] 3720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7995 .loc 1 3720 5 is_stmt 1 discriminator 2 view .LVU2747 3720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7996 .loc 1 3720 23 is_stmt 0 discriminator 2 view .LVU2748 7997 0034 6385 strh r3, [r4, #42] @ movhi 3721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7998 .loc 1 3721 5 is_stmt 1 discriminator 2 view .LVU2749 3721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7999 .loc 1 3721 23 is_stmt 0 discriminator 2 view .LVU2750 8000 0036 E162 str r1, [r4, #44] 3722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8001 .loc 1 3722 5 is_stmt 1 discriminator 2 view .LVU2751 3722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 319 8002 .loc 1 3722 23 is_stmt 0 discriminator 2 view .LVU2752 8003 0038 1C4B ldr r3, .L530 8004 .LVL544: 3722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8005 .loc 1 3722 23 discriminator 2 view .LVU2753 8006 003a 6363 str r3, [r4, #52] 3725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8007 .loc 1 3725 5 is_stmt 1 discriminator 2 view .LVU2754 3725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8008 .loc 1 3725 13 is_stmt 0 discriminator 2 view .LVU2755 8009 003c 638D ldrh r3, [r4, #42] 8010 003e 9BB2 uxth r3, r3 3725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8011 .loc 1 3725 8 discriminator 2 view .LVU2756 8012 0040 FF2B cmp r3, #255 8013 0042 26D9 bls .L521 3727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8014 .loc 1 3727 7 is_stmt 1 view .LVU2757 3727:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8015 .loc 1 3727 22 is_stmt 0 view .LVU2758 8016 0044 FF23 movs r3, #255 8017 0046 2385 strh r3, [r4, #40] @ movhi 3728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8018 .loc 1 3728 7 is_stmt 1 view .LVU2759 8019 .LVL545: 3728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8020 .loc 1 3728 16 is_stmt 0 view .LVU2760 8021 0048 4FF08076 mov r6, #16777216 8022 .LVL546: 8023 .L522: 3739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8024 .loc 1 3739 5 is_stmt 1 view .LVU2761 3739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8025 .loc 1 3739 14 is_stmt 0 view .LVU2762 8026 004c 236B ldr r3, [r4, #48] 3739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8027 .loc 1 3739 8 view .LVU2763 8028 004e 122B cmp r3, #18 8029 0050 04D1 bne .L523 3739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8030 .loc 1 3739 59 discriminator 1 view .LVU2764 8031 0052 B1F52A4F cmp r1, #43520 8032 0056 18BF it ne 8033 0058 AA29 cmpne r1, #170 8034 005a 1ED1 bne .L527 8035 .L523: 3747:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8036 .loc 1 3747 7 is_stmt 1 view .LVU2765 8037 005c 2046 mov r0, r4 8038 005e FFF7FEFF bl I2C_ConvertOtherXferOptions 8039 .LVL547: 3750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8040 .loc 1 3750 7 view .LVU2766 3750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8041 .loc 1 3750 15 is_stmt 0 view .LVU2767 8042 0062 638D ldrh r3, [r4, #42] 8043 0064 9BB2 uxth r3, r3 ARM GAS /tmp/cchwqEfL.s page 320 3750:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8044 .loc 1 3750 10 view .LVU2768 8045 0066 FF2B cmp r3, #255 8046 0068 19D8 bhi .L528 3752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8047 .loc 1 3752 9 is_stmt 1 view .LVU2769 3752:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8048 .loc 1 3752 18 is_stmt 0 view .LVU2770 8049 006a E66A ldr r6, [r4, #44] 8050 .LVL548: 3704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8051 .loc 1 3704 12 view .LVU2771 8052 006c 104B ldr r3, .L530+4 8053 .L524: 8054 .LVL549: 3757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8055 .loc 1 3757 5 is_stmt 1 view .LVU2772 8056 006e 0093 str r3, [sp] 8057 0070 3346 mov r3, r6 8058 .LVL550: 3757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8059 .loc 1 3757 5 is_stmt 0 view .LVU2773 8060 0072 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 8061 0076 2946 mov r1, r5 8062 0078 2046 mov r0, r4 8063 007a FFF7FEFF bl I2C_TransferConfig 8064 .LVL551: 3760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8065 .loc 1 3760 5 is_stmt 1 view .LVU2774 3760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8066 .loc 1 3760 5 view .LVU2775 8067 007e 0025 movs r5, #0 8068 0080 84F84050 strb r5, [r4, #64] 3760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8069 .loc 1 3760 5 view .LVU2776 3765:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8070 .loc 1 3765 5 view .LVU2777 8071 0084 0221 movs r1, #2 8072 0086 2046 mov r0, r4 8073 0088 FFF7FEFF bl I2C_Enable_IRQ 8074 .LVL552: 3767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8075 .loc 1 3767 5 view .LVU2778 3767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8076 .loc 1 3767 12 is_stmt 0 view .LVU2779 8077 008c 2846 mov r0, r5 8078 .LVL553: 8079 .L520: 3773:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8080 .loc 1 3773 1 view .LVU2780 8081 008e 02B0 add sp, sp, #8 8082 .LCFI96: 8083 .cfi_remember_state 8084 .cfi_def_cfa_offset 16 8085 @ sp needed 8086 0090 70BD pop {r4, r5, r6, pc} 8087 .LVL554: ARM GAS /tmp/cchwqEfL.s page 321 8088 .L521: 8089 .LCFI97: 8090 .cfi_restore_state 3732:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8091 .loc 1 3732 7 is_stmt 1 view .LVU2781 3732:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8092 .loc 1 3732 28 is_stmt 0 view .LVU2782 8093 0092 638D ldrh r3, [r4, #42] 3732:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8094 .loc 1 3732 22 view .LVU2783 8095 0094 2385 strh r3, [r4, #40] @ movhi 3733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8096 .loc 1 3733 7 is_stmt 1 view .LVU2784 3733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8097 .loc 1 3733 16 is_stmt 0 view .LVU2785 8098 0096 E66A ldr r6, [r4, #44] 8099 .LVL555: 3733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8100 .loc 1 3733 16 view .LVU2786 8101 0098 D8E7 b .L522 8102 .L527: 3742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8103 .loc 1 3742 19 view .LVU2787 8104 009a 0023 movs r3, #0 8105 009c E7E7 b .L524 8106 .LVL556: 8107 .L528: 3704:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8108 .loc 1 3704 12 view .LVU2788 8109 009e 044B ldr r3, .L530+4 8110 00a0 E5E7 b .L524 8111 .LVL557: 8112 .L525: 3771:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8113 .loc 1 3771 12 view .LVU2789 8114 00a2 0220 movs r0, #2 8115 00a4 F3E7 b .L520 8116 .L526: 3712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8117 .loc 1 3712 5 view .LVU2790 8118 00a6 0220 movs r0, #2 8119 00a8 F1E7 b .L520 8120 .L531: 8121 00aa 00BF .align 2 8122 .L530: 8123 00ac 00000000 .word I2C_Master_ISR_IT 8124 00b0 00240080 .word -2147474432 8125 .cfi_endproc 8126 .LFE166: 8128 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits 8129 .align 1 8130 .global HAL_I2C_Master_Seq_Receive_DMA 8131 .syntax unified 8132 .thumb 8133 .thumb_func 8134 .fpu fpv5-d16 8136 HAL_I2C_Master_Seq_Receive_DMA: ARM GAS /tmp/cchwqEfL.s page 322 8137 .LVL558: 8138 .LFB167: 3789:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 8139 .loc 1 3789 1 is_stmt 1 view -0 8140 .cfi_startproc 8141 @ args = 4, pretend = 0, frame = 0 8142 @ frame_needed = 0, uses_anonymous_args = 0 3789:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 8143 .loc 1 3789 1 is_stmt 0 view .LVU2792 8144 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 8145 .LCFI98: 8146 .cfi_def_cfa_offset 24 8147 .cfi_offset 4, -24 8148 .cfi_offset 5, -20 8149 .cfi_offset 6, -16 8150 .cfi_offset 7, -12 8151 .cfi_offset 8, -8 8152 .cfi_offset 14, -4 8153 0004 82B0 sub sp, sp, #8 8154 .LCFI99: 8155 .cfi_def_cfa_offset 32 8156 0006 0446 mov r4, r0 8157 0008 1546 mov r5, r2 8158 000a 089A ldr r2, [sp, #32] 8159 .LVL559: 3790:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 8160 .loc 1 3790 3 is_stmt 1 view .LVU2793 3791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8161 .loc 1 3791 3 view .LVU2794 3792:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8162 .loc 1 3792 3 view .LVU2795 3795:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8163 .loc 1 3795 3 view .LVU2796 3797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8164 .loc 1 3797 3 view .LVU2797 3797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8165 .loc 1 3797 11 is_stmt 0 view .LVU2798 8166 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8167 .LVL560: 3797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8168 .loc 1 3797 11 view .LVU2799 8169 0010 C0B2 uxtb r0, r0 3797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8170 .loc 1 3797 6 view .LVU2800 8171 0012 2028 cmp r0, #32 8172 0014 40F09D80 bne .L543 8173 0018 0E46 mov r6, r1 3800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8174 .loc 1 3800 5 is_stmt 1 view .LVU2801 3800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8175 .loc 1 3800 5 view .LVU2802 8176 001a 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 8177 .LVL561: 3800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8178 .loc 1 3800 5 is_stmt 0 view .LVU2803 8179 001e 0129 cmp r1, #1 8180 0020 00F09B80 beq .L544 ARM GAS /tmp/cchwqEfL.s page 323 3800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8181 .loc 1 3800 5 is_stmt 1 discriminator 2 view .LVU2804 8182 0024 0121 movs r1, #1 8183 0026 84F84010 strb r1, [r4, #64] 3800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8184 .loc 1 3800 5 discriminator 2 view .LVU2805 3802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8185 .loc 1 3802 5 discriminator 2 view .LVU2806 3802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8186 .loc 1 3802 21 is_stmt 0 discriminator 2 view .LVU2807 8187 002a 2221 movs r1, #34 8188 002c 84F84110 strb r1, [r4, #65] 3803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8189 .loc 1 3803 5 is_stmt 1 discriminator 2 view .LVU2808 3803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8190 .loc 1 3803 21 is_stmt 0 discriminator 2 view .LVU2809 8191 0030 1021 movs r1, #16 8192 0032 84F84210 strb r1, [r4, #66] 3804:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8193 .loc 1 3804 5 is_stmt 1 discriminator 2 view .LVU2810 3804:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8194 .loc 1 3804 21 is_stmt 0 discriminator 2 view .LVU2811 8195 0036 0021 movs r1, #0 8196 0038 6164 str r1, [r4, #68] 3807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 8197 .loc 1 3807 5 is_stmt 1 discriminator 2 view .LVU2812 3807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 8198 .loc 1 3807 23 is_stmt 0 discriminator 2 view .LVU2813 8199 003a 6562 str r5, [r4, #36] 3808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8200 .loc 1 3808 5 is_stmt 1 discriminator 2 view .LVU2814 3808:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8201 .loc 1 3808 23 is_stmt 0 discriminator 2 view .LVU2815 8202 003c 6385 strh r3, [r4, #42] @ movhi 3809:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8203 .loc 1 3809 5 is_stmt 1 discriminator 2 view .LVU2816 3809:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8204 .loc 1 3809 23 is_stmt 0 discriminator 2 view .LVU2817 8205 003e E262 str r2, [r4, #44] 3810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8206 .loc 1 3810 5 is_stmt 1 discriminator 2 view .LVU2818 3810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8207 .loc 1 3810 23 is_stmt 0 discriminator 2 view .LVU2819 8208 0040 474B ldr r3, .L550 8209 .LVL562: 3810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8210 .loc 1 3810 23 discriminator 2 view .LVU2820 8211 0042 6363 str r3, [r4, #52] 3813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8212 .loc 1 3813 5 is_stmt 1 discriminator 2 view .LVU2821 3813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8213 .loc 1 3813 13 is_stmt 0 discriminator 2 view .LVU2822 8214 0044 638D ldrh r3, [r4, #42] 8215 0046 9BB2 uxth r3, r3 3813:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8216 .loc 1 3813 8 discriminator 2 view .LVU2823 8217 0048 FF2B cmp r3, #255 ARM GAS /tmp/cchwqEfL.s page 324 8218 004a 3AD9 bls .L534 3815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8219 .loc 1 3815 7 is_stmt 1 view .LVU2824 3815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8220 .loc 1 3815 22 is_stmt 0 view .LVU2825 8221 004c FF23 movs r3, #255 8222 004e 2385 strh r3, [r4, #40] @ movhi 3816:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8223 .loc 1 3816 7 is_stmt 1 view .LVU2826 8224 .LVL563: 3816:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8225 .loc 1 3816 16 is_stmt 0 view .LVU2827 8226 0050 4FF08077 mov r7, #16777216 8227 .LVL564: 8228 .L535: 3827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8229 .loc 1 3827 5 is_stmt 1 view .LVU2828 3827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8230 .loc 1 3827 14 is_stmt 0 view .LVU2829 8231 0054 236B ldr r3, [r4, #48] 3827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8232 .loc 1 3827 8 view .LVU2830 8233 0056 122B cmp r3, #18 8234 0058 04D1 bne .L536 3827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8235 .loc 1 3827 59 discriminator 1 view .LVU2831 8236 005a B2F52A4F cmp r2, #43520 8237 005e 18BF it ne 8238 0060 AA2A cmpne r2, #170 8239 0062 32D1 bne .L545 8240 .L536: 3835:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8241 .loc 1 3835 7 is_stmt 1 view .LVU2832 8242 0064 2046 mov r0, r4 8243 0066 FFF7FEFF bl I2C_ConvertOtherXferOptions 8244 .LVL565: 3838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8245 .loc 1 3838 7 view .LVU2833 3838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8246 .loc 1 3838 15 is_stmt 0 view .LVU2834 8247 006a 638D ldrh r3, [r4, #42] 8248 006c 9BB2 uxth r3, r3 3838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8249 .loc 1 3838 10 view .LVU2835 8250 006e FF2B cmp r3, #255 8251 0070 2ED8 bhi .L546 3840:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8252 .loc 1 3840 9 is_stmt 1 view .LVU2836 3840:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8253 .loc 1 3840 18 is_stmt 0 view .LVU2837 8254 0072 E76A ldr r7, [r4, #44] 8255 .LVL566: 3791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8256 .loc 1 3791 12 view .LVU2838 8257 0074 DFF8F880 ldr r8, .L550+16 8258 .L537: 8259 .LVL567: ARM GAS /tmp/cchwqEfL.s page 325 3844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8260 .loc 1 3844 5 is_stmt 1 view .LVU2839 3844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8261 .loc 1 3844 13 is_stmt 0 view .LVU2840 8262 0078 228D ldrh r2, [r4, #40] 3844:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8263 .loc 1 3844 8 view .LVU2841 8264 007a 002A cmp r2, #0 8265 007c 55D0 beq .L538 3846:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8266 .loc 1 3846 7 is_stmt 1 view .LVU2842 3846:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8267 .loc 1 3846 15 is_stmt 0 view .LVU2843 8268 007e E36B ldr r3, [r4, #60] 3846:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8269 .loc 1 3846 10 view .LVU2844 8270 0080 4BB3 cbz r3, .L539 3849:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8271 .loc 1 3849 9 is_stmt 1 view .LVU2845 3849:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8272 .loc 1 3849 40 is_stmt 0 view .LVU2846 8273 0082 384A ldr r2, .L550+4 8274 0084 DA63 str r2, [r3, #60] 3852:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8275 .loc 1 3852 9 is_stmt 1 view .LVU2847 3852:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8276 .loc 1 3852 13 is_stmt 0 view .LVU2848 8277 0086 E36B ldr r3, [r4, #60] 3852:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8278 .loc 1 3852 41 view .LVU2849 8279 0088 374A ldr r2, .L550+8 8280 008a DA64 str r2, [r3, #76] 3855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8281 .loc 1 3855 9 is_stmt 1 view .LVU2850 3855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8282 .loc 1 3855 13 is_stmt 0 view .LVU2851 8283 008c E26B ldr r2, [r4, #60] 3855:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8284 .loc 1 3855 44 view .LVU2852 8285 008e 0023 movs r3, #0 8286 0090 1364 str r3, [r2, #64] 3856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8287 .loc 1 3856 9 is_stmt 1 view .LVU2853 3856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8288 .loc 1 3856 13 is_stmt 0 view .LVU2854 8289 0092 E26B ldr r2, [r4, #60] 3856:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8290 .loc 1 3856 41 view .LVU2855 8291 0094 1365 str r3, [r2, #80] 3859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 8292 .loc 1 3859 9 is_stmt 1 view .LVU2856 3859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 8293 .loc 1 3859 71 is_stmt 0 view .LVU2857 8294 0096 2168 ldr r1, [r4] 3859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 8295 .loc 1 3859 25 view .LVU2858 8296 0098 238D ldrh r3, [r4, #40] ARM GAS /tmp/cchwqEfL.s page 326 8297 009a 2A46 mov r2, r5 8298 009c 2431 adds r1, r1, #36 8299 009e E06B ldr r0, [r4, #60] 8300 00a0 FFF7FEFF bl HAL_DMA_Start_IT 8301 .LVL568: 3877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8302 .loc 1 3877 7 is_stmt 1 view .LVU2859 3877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8303 .loc 1 3877 10 is_stmt 0 view .LVU2860 8304 00a4 28B3 cbz r0, .L549 3900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8305 .loc 1 3900 9 is_stmt 1 view .LVU2861 3900:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8306 .loc 1 3900 25 is_stmt 0 view .LVU2862 8307 00a6 2023 movs r3, #32 8308 00a8 84F84130 strb r3, [r4, #65] 3901:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8309 .loc 1 3901 9 is_stmt 1 view .LVU2863 3901:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8310 .loc 1 3901 25 is_stmt 0 view .LVU2864 8311 00ac 0022 movs r2, #0 8312 00ae 84F84220 strb r2, [r4, #66] 3904:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8313 .loc 1 3904 9 is_stmt 1 view .LVU2865 3904:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8314 .loc 1 3904 25 is_stmt 0 view .LVU2866 8315 00b2 636C ldr r3, [r4, #68] 8316 00b4 43F01003 orr r3, r3, #16 8317 00b8 6364 str r3, [r4, #68] 3907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8318 .loc 1 3907 9 is_stmt 1 view .LVU2867 3907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8319 .loc 1 3907 9 view .LVU2868 8320 00ba 84F84020 strb r2, [r4, #64] 3907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8321 .loc 1 3907 9 view .LVU2869 3909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8322 .loc 1 3909 9 view .LVU2870 3909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8323 .loc 1 3909 16 is_stmt 0 view .LVU2871 8324 00be 0120 movs r0, #1 8325 .LVL569: 3909:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8326 .loc 1 3909 16 view .LVU2872 8327 00c0 48E0 b .L533 8328 .LVL570: 8329 .L534: 3820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8330 .loc 1 3820 7 is_stmt 1 view .LVU2873 3820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8331 .loc 1 3820 28 is_stmt 0 view .LVU2874 8332 00c2 638D ldrh r3, [r4, #42] 3820:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8333 .loc 1 3820 22 view .LVU2875 8334 00c4 2385 strh r3, [r4, #40] @ movhi 3821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8335 .loc 1 3821 7 is_stmt 1 view .LVU2876 ARM GAS /tmp/cchwqEfL.s page 327 3821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8336 .loc 1 3821 16 is_stmt 0 view .LVU2877 8337 00c6 E76A ldr r7, [r4, #44] 8338 .LVL571: 3821:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8339 .loc 1 3821 16 view .LVU2878 8340 00c8 C4E7 b .L535 8341 .L545: 3830:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8342 .loc 1 3830 19 view .LVU2879 8343 00ca 4FF00008 mov r8, #0 8344 00ce D3E7 b .L537 8345 .L546: 3791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8346 .loc 1 3791 12 view .LVU2880 8347 00d0 DFF89C80 ldr r8, .L550+16 8348 00d4 D0E7 b .L537 8349 .LVL572: 8350 .L539: 3865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8351 .loc 1 3865 9 is_stmt 1 view .LVU2881 3865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8352 .loc 1 3865 25 is_stmt 0 view .LVU2882 8353 00d6 2023 movs r3, #32 8354 00d8 84F84130 strb r3, [r4, #65] 3866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8355 .loc 1 3866 9 is_stmt 1 view .LVU2883 3866:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8356 .loc 1 3866 25 is_stmt 0 view .LVU2884 8357 00dc 0022 movs r2, #0 8358 00de 84F84220 strb r2, [r4, #66] 3869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8359 .loc 1 3869 9 is_stmt 1 view .LVU2885 3869:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8360 .loc 1 3869 25 is_stmt 0 view .LVU2886 8361 00e2 636C ldr r3, [r4, #68] 8362 00e4 43F08003 orr r3, r3, #128 8363 00e8 6364 str r3, [r4, #68] 3872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8364 .loc 1 3872 9 is_stmt 1 view .LVU2887 3872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8365 .loc 1 3872 9 view .LVU2888 8366 00ea 84F84020 strb r2, [r4, #64] 3872:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8367 .loc 1 3872 9 view .LVU2889 3874:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8368 .loc 1 3874 9 view .LVU2890 3874:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8369 .loc 1 3874 16 is_stmt 0 view .LVU2891 8370 00ee 0120 movs r0, #1 8371 00f0 30E0 b .L533 8372 .LVL573: 8373 .L549: 3880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8374 .loc 1 3880 9 is_stmt 1 view .LVU2892 8375 00f2 CDF80080 str r8, [sp] 8376 00f6 3B46 mov r3, r7 ARM GAS /tmp/cchwqEfL.s page 328 8377 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 8378 00fc 3146 mov r1, r6 8379 00fe 2046 mov r0, r4 8380 .LVL574: 3880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8381 .loc 1 3880 9 is_stmt 0 view .LVU2893 8382 0100 FFF7FEFF bl I2C_TransferConfig 8383 .LVL575: 3883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8384 .loc 1 3883 9 is_stmt 1 view .LVU2894 3883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8385 .loc 1 3883 25 is_stmt 0 view .LVU2895 8386 0104 638D ldrh r3, [r4, #42] 8387 0106 9BB2 uxth r3, r3 3883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8388 .loc 1 3883 32 view .LVU2896 8389 0108 228D ldrh r2, [r4, #40] 3883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8390 .loc 1 3883 25 view .LVU2897 8391 010a 9B1A subs r3, r3, r2 8392 010c 9BB2 uxth r3, r3 8393 010e 6385 strh r3, [r4, #42] @ movhi 3886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8394 .loc 1 3886 9 is_stmt 1 view .LVU2898 3886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8395 .loc 1 3886 9 view .LVU2899 8396 0110 0023 movs r3, #0 8397 0112 84F84030 strb r3, [r4, #64] 3886:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8398 .loc 1 3886 9 view .LVU2900 3892:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8399 .loc 1 3892 9 view .LVU2901 8400 0116 1021 movs r1, #16 8401 0118 2046 mov r0, r4 8402 011a FFF7FEFF bl I2C_Enable_IRQ 8403 .LVL576: 3895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8404 .loc 1 3895 9 view .LVU2902 3895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8405 .loc 1 3895 13 is_stmt 0 view .LVU2903 8406 011e 2268 ldr r2, [r4] 3895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8407 .loc 1 3895 29 view .LVU2904 8408 0120 1368 ldr r3, [r2] 8409 0122 43F40043 orr r3, r3, #32768 8410 0126 1360 str r3, [r2] 8411 0128 11E0 b .L542 8412 .L538: 3915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8413 .loc 1 3915 7 is_stmt 1 view .LVU2905 3915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8414 .loc 1 3915 21 is_stmt 0 view .LVU2906 8415 012a 104B ldr r3, .L550+12 8416 012c 6363 str r3, [r4, #52] 3919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 8417 .loc 1 3919 7 is_stmt 1 view .LVU2907 8418 012e 104B ldr r3, .L550+16 ARM GAS /tmp/cchwqEfL.s page 329 8419 0130 0093 str r3, [sp] 8420 0132 4FF00073 mov r3, #33554432 8421 0136 D2B2 uxtb r2, r2 8422 0138 3146 mov r1, r6 8423 013a 2046 mov r0, r4 8424 013c FFF7FEFF bl I2C_TransferConfig 8425 .LVL577: 3923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8426 .loc 1 3923 7 view .LVU2908 3923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8427 .loc 1 3923 7 view .LVU2909 8428 0140 0023 movs r3, #0 8429 0142 84F84030 strb r3, [r4, #64] 3923:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8430 .loc 1 3923 7 view .LVU2910 3932:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8431 .loc 1 3932 7 view .LVU2911 8432 0146 0221 movs r1, #2 8433 0148 2046 mov r0, r4 8434 014a FFF7FEFF bl I2C_Enable_IRQ 8435 .LVL578: 8436 .L542: 3935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8437 .loc 1 3935 5 view .LVU2912 3935:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8438 .loc 1 3935 12 is_stmt 0 view .LVU2913 8439 014e 0020 movs r0, #0 8440 0150 00E0 b .L533 8441 .LVL579: 8442 .L543: 3939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8443 .loc 1 3939 12 view .LVU2914 8444 0152 0220 movs r0, #2 8445 .LVL580: 8446 .L533: 3941:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8447 .loc 1 3941 1 view .LVU2915 8448 0154 02B0 add sp, sp, #8 8449 .LCFI100: 8450 .cfi_remember_state 8451 .cfi_def_cfa_offset 24 8452 @ sp needed 8453 0156 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 8454 .LVL581: 8455 .L544: 8456 .LCFI101: 8457 .cfi_restore_state 3800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8458 .loc 1 3800 5 view .LVU2916 8459 015a 0220 movs r0, #2 8460 015c FAE7 b .L533 8461 .L551: 8462 015e 00BF .align 2 8463 .L550: 8464 0160 00000000 .word I2C_Master_ISR_DMA 8465 0164 00000000 .word I2C_DMAMasterReceiveCplt 8466 0168 00000000 .word I2C_DMAError ARM GAS /tmp/cchwqEfL.s page 330 8467 016c 00000000 .word I2C_Master_ISR_IT 8468 0170 00240080 .word -2147474432 8469 .cfi_endproc 8470 .LFE167: 8472 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits 8473 .align 1 8474 .global HAL_I2C_Slave_Seq_Transmit_IT 8475 .syntax unified 8476 .thumb 8477 .thumb_func 8478 .fpu fpv5-d16 8480 HAL_I2C_Slave_Seq_Transmit_IT: 8481 .LVL582: 8482 .LFB168: 3955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8483 .loc 1 3955 1 is_stmt 1 view -0 8484 .cfi_startproc 8485 @ args = 0, pretend = 0, frame = 0 8486 @ 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 */ 8487 .loc 1 3955 1 is_stmt 0 view .LVU2918 8488 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8489 .LCFI102: 8490 .cfi_def_cfa_offset 24 8491 .cfi_offset 3, -24 8492 .cfi_offset 4, -20 8493 .cfi_offset 5, -16 8494 .cfi_offset 6, -12 8495 .cfi_offset 7, -8 8496 .cfi_offset 14, -4 8497 0002 0446 mov r4, r0 3957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8498 .loc 1 3957 3 is_stmt 1 view .LVU2919 3960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8499 .loc 1 3960 3 view .LVU2920 3962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8500 .loc 1 3962 3 view .LVU2921 3962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8501 .loc 1 3962 22 is_stmt 0 view .LVU2922 8502 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8503 .LVL583: 3962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8504 .loc 1 3962 6 view .LVU2923 8505 0008 00F02800 and r0, r0, #40 8506 000c 2828 cmp r0, #40 8507 000e 60D1 bne .L557 8508 0010 0F46 mov r7, r1 8509 0012 1646 mov r6, r2 8510 0014 1D46 mov r5, r3 3964:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8511 .loc 1 3964 5 is_stmt 1 view .LVU2924 3964:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8512 .loc 1 3964 8 is_stmt 0 view .LVU2925 8513 0016 002A cmp r2, #0 8514 0018 18BF it ne 8515 001a 0029 cmpne r1, #0 8516 001c 04D1 bne .L554 ARM GAS /tmp/cchwqEfL.s page 331 3966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 8517 .loc 1 3966 7 is_stmt 1 view .LVU2926 3966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 8518 .loc 1 3966 23 is_stmt 0 view .LVU2927 8519 001e 4FF40073 mov r3, #512 8520 .LVL584: 3966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 8521 .loc 1 3966 23 view .LVU2928 8522 0022 6364 str r3, [r4, #68] 3967:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8523 .loc 1 3967 7 is_stmt 1 view .LVU2929 3967:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8524 .loc 1 3967 15 is_stmt 0 view .LVU2930 8525 0024 0120 movs r0, #1 8526 0026 55E0 b .L553 8527 .LVL585: 8528 .L554: 3971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8529 .loc 1 3971 5 is_stmt 1 view .LVU2931 8530 0028 48F20101 movw r1, #32769 8531 .LVL586: 3971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8532 .loc 1 3971 5 is_stmt 0 view .LVU2932 8533 002c 2046 mov r0, r4 8534 002e FFF7FEFF bl I2C_Disable_IRQ 8535 .LVL587: 3974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8536 .loc 1 3974 5 is_stmt 1 view .LVU2933 3974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8537 .loc 1 3974 5 view .LVU2934 8538 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8539 0036 012B cmp r3, #1 8540 0038 4DD0 beq .L558 3974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8541 .loc 1 3974 5 discriminator 2 view .LVU2935 8542 003a 0123 movs r3, #1 8543 003c 84F84030 strb r3, [r4, #64] 3974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8544 .loc 1 3974 5 discriminator 2 view .LVU2936 3978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8545 .loc 1 3978 5 discriminator 2 view .LVU2937 3978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8546 .loc 1 3978 13 is_stmt 0 discriminator 2 view .LVU2938 8547 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8548 0044 DBB2 uxtb r3, r3 3978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8549 .loc 1 3978 8 discriminator 2 view .LVU2939 8550 0046 2A2B cmp r3, #42 8551 0048 28D0 beq .L560 8552 .L555: 4004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8553 .loc 1 4004 5 is_stmt 1 view .LVU2940 4004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8554 .loc 1 4004 21 is_stmt 0 view .LVU2941 8555 004a 2923 movs r3, #41 8556 004c 84F84130 strb r3, [r4, #65] 4005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS /tmp/cchwqEfL.s page 332 8557 .loc 1 4005 5 is_stmt 1 view .LVU2942 4005:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8558 .loc 1 4005 21 is_stmt 0 view .LVU2943 8559 0050 2023 movs r3, #32 8560 0052 84F84230 strb r3, [r4, #66] 4006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8561 .loc 1 4006 5 is_stmt 1 view .LVU2944 4006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8562 .loc 1 4006 21 is_stmt 0 view .LVU2945 8563 0056 0023 movs r3, #0 8564 0058 6364 str r3, [r4, #68] 4009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8565 .loc 1 4009 5 is_stmt 1 view .LVU2946 4009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8566 .loc 1 4009 9 is_stmt 0 view .LVU2947 8567 005a 2268 ldr r2, [r4] 4009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8568 .loc 1 4009 25 view .LVU2948 8569 005c 5368 ldr r3, [r2, #4] 8570 005e 23F40043 bic r3, r3, #32768 8571 0062 5360 str r3, [r2, #4] 4012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 8572 .loc 1 4012 5 is_stmt 1 view .LVU2949 4012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 8573 .loc 1 4012 23 is_stmt 0 view .LVU2950 8574 0064 6762 str r7, [r4, #36] 4013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8575 .loc 1 4013 5 is_stmt 1 view .LVU2951 4013:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8576 .loc 1 4013 23 is_stmt 0 view .LVU2952 8577 0066 6685 strh r6, [r4, #42] @ movhi 4014:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8578 .loc 1 4014 5 is_stmt 1 view .LVU2953 4014:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8579 .loc 1 4014 29 is_stmt 0 view .LVU2954 8580 0068 638D ldrh r3, [r4, #42] 4014:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8581 .loc 1 4014 23 view .LVU2955 8582 006a 2385 strh r3, [r4, #40] @ movhi 4015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8583 .loc 1 4015 5 is_stmt 1 view .LVU2956 4015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8584 .loc 1 4015 23 is_stmt 0 view .LVU2957 8585 006c E562 str r5, [r4, #44] 4016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8586 .loc 1 4016 5 is_stmt 1 view .LVU2958 4016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8587 .loc 1 4016 23 is_stmt 0 view .LVU2959 8588 006e 1B4B ldr r3, .L561 8589 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)) 8590 .loc 1 4018 5 is_stmt 1 view .LVU2960 4018:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8591 .loc 1 4018 11 is_stmt 0 view .LVU2961 8592 0072 2268 ldr r2, [r4] 8593 0074 9369 ldr r3, [r2, #24] 8594 0076 03F00803 and r3, r3, #8 ARM GAS /tmp/cchwqEfL.s page 333 8595 .LVL588: 4019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8596 .loc 1 4019 5 is_stmt 1 view .LVU2962 4019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8597 .loc 1 4019 10 is_stmt 0 view .LVU2963 8598 007a 9169 ldr r1, [r2, #24] 4019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8599 .loc 1 4019 8 view .LVU2964 8600 007c 11F4803F tst r1, #65536 8601 0080 02D0 beq .L556 4019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8602 .loc 1 4019 54 discriminator 1 view .LVU2965 8603 0082 0BB1 cbz r3, .L556 4023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8604 .loc 1 4023 7 is_stmt 1 view .LVU2966 8605 0084 0823 movs r3, #8 8606 .LVL589: 4023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8607 .loc 1 4023 7 is_stmt 0 view .LVU2967 8608 0086 D361 str r3, [r2, #28] 8609 .L556: 4027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8610 .loc 1 4027 5 is_stmt 1 view .LVU2968 4027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8611 .loc 1 4027 5 view .LVU2969 8612 0088 0025 movs r5, #0 8613 .LVL590: 4027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8614 .loc 1 4027 5 is_stmt 0 view .LVU2970 8615 008a 84F84050 strb r5, [r4, #64] 4027:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8616 .loc 1 4027 5 is_stmt 1 view .LVU2971 4033:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8617 .loc 1 4033 5 view .LVU2972 8618 008e 48F20101 movw r1, #32769 8619 0092 2046 mov r0, r4 8620 0094 FFF7FEFF bl I2C_Enable_IRQ 8621 .LVL591: 4035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8622 .loc 1 4035 5 view .LVU2973 4035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8623 .loc 1 4035 12 is_stmt 0 view .LVU2974 8624 0098 2846 mov r0, r5 8625 009a 1BE0 b .L553 8626 .LVL592: 8627 .L560: 3981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8628 .loc 1 3981 7 is_stmt 1 view .LVU2975 8629 009c 0221 movs r1, #2 8630 009e 2046 mov r0, r4 8631 00a0 FFF7FEFF bl I2C_Disable_IRQ 8632 .LVL593: 3984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8633 .loc 1 3984 7 view .LVU2976 3984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8634 .loc 1 3984 16 is_stmt 0 view .LVU2977 8635 00a4 2368 ldr r3, [r4] ARM GAS /tmp/cchwqEfL.s page 334 3984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8636 .loc 1 3984 26 view .LVU2978 8637 00a6 1A68 ldr r2, [r3] 3984:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8638 .loc 1 3984 10 view .LVU2979 8639 00a8 12F4004F tst r2, #32768 8640 00ac CDD0 beq .L555 3986:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8641 .loc 1 3986 9 is_stmt 1 view .LVU2980 3986:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8642 .loc 1 3986 29 is_stmt 0 view .LVU2981 8643 00ae 1A68 ldr r2, [r3] 8644 00b0 22F40042 bic r2, r2, #32768 8645 00b4 1A60 str r2, [r3] 3988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8646 .loc 1 3988 9 is_stmt 1 view .LVU2982 3988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8647 .loc 1 3988 17 is_stmt 0 view .LVU2983 8648 00b6 E36B ldr r3, [r4, #60] 3988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8649 .loc 1 3988 12 view .LVU2984 8650 00b8 002B cmp r3, #0 8651 00ba C6D0 beq .L555 3992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8652 .loc 1 3992 11 is_stmt 1 view .LVU2985 3992:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8653 .loc 1 3992 43 is_stmt 0 view .LVU2986 8654 00bc 084A ldr r2, .L561+4 8655 00be 1A65 str r2, [r3, #80] 3995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8656 .loc 1 3995 11 is_stmt 1 view .LVU2987 3995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8657 .loc 1 3995 15 is_stmt 0 view .LVU2988 8658 00c0 E06B ldr r0, [r4, #60] 8659 00c2 FFF7FEFF bl HAL_DMA_Abort_IT 8660 .LVL594: 3995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8661 .loc 1 3995 14 view .LVU2989 8662 00c6 0028 cmp r0, #0 8663 00c8 BFD0 beq .L555 3998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8664 .loc 1 3998 13 is_stmt 1 view .LVU2990 3998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8665 .loc 1 3998 17 is_stmt 0 view .LVU2991 8666 00ca E06B ldr r0, [r4, #60] 3998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8667 .loc 1 3998 25 view .LVU2992 8668 00cc 036D ldr r3, [r0, #80] 3998:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8669 .loc 1 3998 13 view .LVU2993 8670 00ce 9847 blx r3 8671 .LVL595: 8672 00d0 BBE7 b .L555 8673 .LVL596: 8674 .L557: 4039:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8675 .loc 1 4039 12 view .LVU2994 ARM GAS /tmp/cchwqEfL.s page 335 8676 00d2 0120 movs r0, #1 8677 .LVL597: 8678 .L553: 4041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8679 .loc 1 4041 1 view .LVU2995 8680 00d4 F8BD pop {r3, r4, r5, r6, r7, pc} 8681 .LVL598: 8682 .L558: 3974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8683 .loc 1 3974 5 view .LVU2996 8684 00d6 0220 movs r0, #2 8685 00d8 FCE7 b .L553 8686 .L562: 8687 00da 00BF .align 2 8688 .L561: 8689 00dc 00000000 .word I2C_Slave_ISR_IT 8690 00e0 00000000 .word I2C_DMAAbort 8691 .cfi_endproc 8692 .LFE168: 8694 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits 8695 .align 1 8696 .global HAL_I2C_Slave_Seq_Transmit_DMA 8697 .syntax unified 8698 .thumb 8699 .thumb_func 8700 .fpu fpv5-d16 8702 HAL_I2C_Slave_Seq_Transmit_DMA: 8703 .LVL599: 8704 .LFB169: 4055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8705 .loc 1 4055 1 is_stmt 1 view -0 8706 .cfi_startproc 8707 @ args = 0, pretend = 0, frame = 0 8708 @ 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 */ 8709 .loc 1 4055 1 is_stmt 0 view .LVU2998 8710 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8711 .LCFI103: 8712 .cfi_def_cfa_offset 24 8713 .cfi_offset 3, -24 8714 .cfi_offset 4, -20 8715 .cfi_offset 5, -16 8716 .cfi_offset 6, -12 8717 .cfi_offset 7, -8 8718 .cfi_offset 14, -4 8719 0002 0446 mov r4, r0 4057:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8720 .loc 1 4057 3 is_stmt 1 view .LVU2999 4058:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8721 .loc 1 4058 3 view .LVU3000 4061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8722 .loc 1 4061 3 view .LVU3001 4063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8723 .loc 1 4063 3 view .LVU3002 4063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8724 .loc 1 4063 22 is_stmt 0 view .LVU3003 8725 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 ARM GAS /tmp/cchwqEfL.s page 336 8726 .LVL600: 4063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8727 .loc 1 4063 6 view .LVU3004 8728 0008 00F02800 and r0, r0, #40 8729 000c 2828 cmp r0, #40 8730 000e 40F0C080 bne .L573 8731 0012 0F46 mov r7, r1 8732 0014 1646 mov r6, r2 8733 0016 1D46 mov r5, r3 4065:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8734 .loc 1 4065 5 is_stmt 1 view .LVU3005 4065:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8735 .loc 1 4065 8 is_stmt 0 view .LVU3006 8736 0018 002A cmp r2, #0 8737 001a 18BF it ne 8738 001c 0029 cmpne r1, #0 8739 001e 4FD0 beq .L577 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8740 .loc 1 4072 5 is_stmt 1 view .LVU3007 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8741 .loc 1 4072 5 view .LVU3008 8742 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8743 .LVL601: 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8744 .loc 1 4072 5 is_stmt 0 view .LVU3009 8745 0024 012B cmp r3, #1 8746 0026 00F0B780 beq .L574 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8747 .loc 1 4072 5 is_stmt 1 discriminator 2 view .LVU3010 8748 002a 0123 movs r3, #1 8749 002c 84F84030 strb r3, [r4, #64] 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8750 .loc 1 4072 5 discriminator 2 view .LVU3011 4075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8751 .loc 1 4075 5 discriminator 2 view .LVU3012 8752 0030 48F20101 movw r1, #32769 8753 .LVL602: 4075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8754 .loc 1 4075 5 is_stmt 0 discriminator 2 view .LVU3013 8755 0034 2046 mov r0, r4 8756 0036 FFF7FEFF bl I2C_Disable_IRQ 8757 .LVL603: 4079:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8758 .loc 1 4079 5 is_stmt 1 discriminator 2 view .LVU3014 4079:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8759 .loc 1 4079 13 is_stmt 0 discriminator 2 view .LVU3015 8760 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 8761 003e DBB2 uxtb r3, r3 4079:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8762 .loc 1 4079 8 discriminator 2 view .LVU3016 8763 0040 2A2B cmp r3, #42 8764 0042 42D0 beq .L578 4104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8765 .loc 1 4104 10 is_stmt 1 view .LVU3017 4104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8766 .loc 1 4104 18 is_stmt 0 view .LVU3018 8767 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 ARM GAS /tmp/cchwqEfL.s page 337 8768 0048 DBB2 uxtb r3, r3 4104:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8769 .loc 1 4104 13 view .LVU3019 8770 004a 292B cmp r3, #41 8771 004c 59D0 beq .L579 8772 .L567: 4129:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8773 .loc 1 4129 5 is_stmt 1 view .LVU3020 4131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8774 .loc 1 4131 5 view .LVU3021 4131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8775 .loc 1 4131 21 is_stmt 0 view .LVU3022 8776 004e 2923 movs r3, #41 8777 0050 84F84130 strb r3, [r4, #65] 4132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8778 .loc 1 4132 5 is_stmt 1 view .LVU3023 4132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8779 .loc 1 4132 21 is_stmt 0 view .LVU3024 8780 0054 2023 movs r3, #32 8781 0056 84F84230 strb r3, [r4, #66] 4133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8782 .loc 1 4133 5 is_stmt 1 view .LVU3025 4133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8783 .loc 1 4133 21 is_stmt 0 view .LVU3026 8784 005a 0023 movs r3, #0 8785 005c 6364 str r3, [r4, #68] 4136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8786 .loc 1 4136 5 is_stmt 1 view .LVU3027 4136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8787 .loc 1 4136 9 is_stmt 0 view .LVU3028 8788 005e 2268 ldr r2, [r4] 4136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8789 .loc 1 4136 25 view .LVU3029 8790 0060 5368 ldr r3, [r2, #4] 8791 0062 23F40043 bic r3, r3, #32768 8792 0066 5360 str r3, [r2, #4] 4139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 8793 .loc 1 4139 5 is_stmt 1 view .LVU3030 4139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 8794 .loc 1 4139 23 is_stmt 0 view .LVU3031 8795 0068 6762 str r7, [r4, #36] 4140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8796 .loc 1 4140 5 is_stmt 1 view .LVU3032 4140:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8797 .loc 1 4140 23 is_stmt 0 view .LVU3033 8798 006a 6685 strh r6, [r4, #42] @ movhi 4141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8799 .loc 1 4141 5 is_stmt 1 view .LVU3034 4141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8800 .loc 1 4141 29 is_stmt 0 view .LVU3035 8801 006c 638D ldrh r3, [r4, #42] 4141:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8802 .loc 1 4141 23 view .LVU3036 8803 006e 2385 strh r3, [r4, #40] @ movhi 4142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8804 .loc 1 4142 5 is_stmt 1 view .LVU3037 4142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; ARM GAS /tmp/cchwqEfL.s page 338 8805 .loc 1 4142 23 is_stmt 0 view .LVU3038 8806 0070 E562 str r5, [r4, #44] 4143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8807 .loc 1 4143 5 is_stmt 1 view .LVU3039 4143:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8808 .loc 1 4143 23 is_stmt 0 view .LVU3040 8809 0072 4A4B ldr r3, .L580 8810 0074 6363 str r3, [r4, #52] 4145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8811 .loc 1 4145 5 is_stmt 1 view .LVU3041 4145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8812 .loc 1 4145 13 is_stmt 0 view .LVU3042 8813 0076 A36B ldr r3, [r4, #56] 4145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8814 .loc 1 4145 8 view .LVU3043 8815 0078 002B cmp r3, #0 8816 007a 59D0 beq .L568 4148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8817 .loc 1 4148 7 is_stmt 1 view .LVU3044 4148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8818 .loc 1 4148 38 is_stmt 0 view .LVU3045 8819 007c 484A ldr r2, .L580+4 8820 007e DA63 str r2, [r3, #60] 4151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8821 .loc 1 4151 7 is_stmt 1 view .LVU3046 4151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8822 .loc 1 4151 11 is_stmt 0 view .LVU3047 8823 0080 A36B ldr r3, [r4, #56] 4151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8824 .loc 1 4151 39 view .LVU3048 8825 0082 484A ldr r2, .L580+8 8826 0084 DA64 str r2, [r3, #76] 4154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8827 .loc 1 4154 7 is_stmt 1 view .LVU3049 4154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8828 .loc 1 4154 11 is_stmt 0 view .LVU3050 8829 0086 A26B ldr r2, [r4, #56] 4154:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8830 .loc 1 4154 42 view .LVU3051 8831 0088 0023 movs r3, #0 8832 008a 1364 str r3, [r2, #64] 4155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8833 .loc 1 4155 7 is_stmt 1 view .LVU3052 4155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8834 .loc 1 4155 11 is_stmt 0 view .LVU3053 8835 008c A26B ldr r2, [r4, #56] 4155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8836 .loc 1 4155 39 view .LVU3054 8837 008e 1365 str r3, [r2, #80] 4158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 8838 .loc 1 4158 7 is_stmt 1 view .LVU3055 4158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 8839 .loc 1 4158 86 is_stmt 0 view .LVU3056 8840 0090 2268 ldr r2, [r4] 4158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize); 8841 .loc 1 4158 23 view .LVU3057 8842 0092 238D ldrh r3, [r4, #40] ARM GAS /tmp/cchwqEfL.s page 339 8843 0094 2832 adds r2, r2, #40 8844 0096 3946 mov r1, r7 8845 0098 A06B ldr r0, [r4, #56] 8846 009a FFF7FEFF bl HAL_DMA_Start_IT 8847 .LVL604: 4176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8848 .loc 1 4176 5 is_stmt 1 view .LVU3058 4176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8849 .loc 1 4176 8 is_stmt 0 view .LVU3059 8850 009e 0546 mov r5, r0 8851 .LVL605: 4176:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8852 .loc 1 4176 8 view .LVU3060 8853 00a0 0028 cmp r0, #0 8854 00a2 53D0 beq .L569 4187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8855 .loc 1 4187 7 is_stmt 1 view .LVU3061 4187:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8856 .loc 1 4187 23 is_stmt 0 view .LVU3062 8857 00a4 2823 movs r3, #40 8858 00a6 84F84130 strb r3, [r4, #65] 4188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8859 .loc 1 4188 7 is_stmt 1 view .LVU3063 4188:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8860 .loc 1 4188 23 is_stmt 0 view .LVU3064 8861 00aa 0022 movs r2, #0 8862 00ac 84F84220 strb r2, [r4, #66] 4191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8863 .loc 1 4191 7 is_stmt 1 view .LVU3065 4191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8864 .loc 1 4191 23 is_stmt 0 view .LVU3066 8865 00b0 636C ldr r3, [r4, #68] 8866 00b2 43F01003 orr r3, r3, #16 8867 00b6 6364 str r3, [r4, #68] 4194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8868 .loc 1 4194 7 is_stmt 1 view .LVU3067 4194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8869 .loc 1 4194 7 view .LVU3068 8870 00b8 84F84020 strb r2, [r4, #64] 4194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8871 .loc 1 4194 7 view .LVU3069 4196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8872 .loc 1 4196 7 view .LVU3070 4196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8873 .loc 1 4196 14 is_stmt 0 view .LVU3071 8874 00bc 0125 movs r5, #1 8875 00be 69E0 b .L564 8876 .LVL606: 8877 .L577: 4067:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 8878 .loc 1 4067 7 is_stmt 1 view .LVU3072 4067:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 8879 .loc 1 4067 23 is_stmt 0 view .LVU3073 8880 00c0 4FF40073 mov r3, #512 8881 .LVL607: 4067:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 8882 .loc 1 4067 23 view .LVU3074 ARM GAS /tmp/cchwqEfL.s page 340 8883 00c4 6364 str r3, [r4, #68] 4068:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8884 .loc 1 4068 7 is_stmt 1 view .LVU3075 4068:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8885 .loc 1 4068 15 is_stmt 0 view .LVU3076 8886 00c6 0125 movs r5, #1 8887 .LVL608: 4068:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8888 .loc 1 4068 15 view .LVU3077 8889 00c8 64E0 b .L564 8890 .LVL609: 8891 .L578: 4082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8892 .loc 1 4082 7 is_stmt 1 view .LVU3078 8893 00ca 0221 movs r1, #2 8894 00cc 2046 mov r0, r4 8895 00ce FFF7FEFF bl I2C_Disable_IRQ 8896 .LVL610: 4084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8897 .loc 1 4084 7 view .LVU3079 4084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8898 .loc 1 4084 16 is_stmt 0 view .LVU3080 8899 00d2 2368 ldr r3, [r4] 4084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8900 .loc 1 4084 26 view .LVU3081 8901 00d4 1A68 ldr r2, [r3] 4084:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8902 .loc 1 4084 10 view .LVU3082 8903 00d6 12F4004F tst r2, #32768 8904 00da B8D0 beq .L567 4087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8905 .loc 1 4087 9 is_stmt 1 view .LVU3083 4087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8906 .loc 1 4087 17 is_stmt 0 view .LVU3084 8907 00dc E26B ldr r2, [r4, #60] 4087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8908 .loc 1 4087 12 view .LVU3085 8909 00de 002A cmp r2, #0 8910 00e0 B5D0 beq .L567 4089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8911 .loc 1 4089 11 is_stmt 1 view .LVU3086 4089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8912 .loc 1 4089 31 is_stmt 0 view .LVU3087 8913 00e2 1A68 ldr r2, [r3] 8914 00e4 22F40042 bic r2, r2, #32768 8915 00e8 1A60 str r2, [r3] 4093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8916 .loc 1 4093 11 is_stmt 1 view .LVU3088 4093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8917 .loc 1 4093 15 is_stmt 0 view .LVU3089 8918 00ea E36B ldr r3, [r4, #60] 4093:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8919 .loc 1 4093 43 view .LVU3090 8920 00ec 2E4A ldr r2, .L580+12 8921 00ee 1A65 str r2, [r3, #80] 4096:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8922 .loc 1 4096 11 is_stmt 1 view .LVU3091 ARM GAS /tmp/cchwqEfL.s page 341 4096:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8923 .loc 1 4096 15 is_stmt 0 view .LVU3092 8924 00f0 E06B ldr r0, [r4, #60] 8925 00f2 FFF7FEFF bl HAL_DMA_Abort_IT 8926 .LVL611: 4096:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8927 .loc 1 4096 14 view .LVU3093 8928 00f6 0028 cmp r0, #0 8929 00f8 A9D0 beq .L567 4099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8930 .loc 1 4099 13 is_stmt 1 view .LVU3094 4099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8931 .loc 1 4099 17 is_stmt 0 view .LVU3095 8932 00fa E06B ldr r0, [r4, #60] 4099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8933 .loc 1 4099 25 view .LVU3096 8934 00fc 036D ldr r3, [r0, #80] 4099:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8935 .loc 1 4099 13 view .LVU3097 8936 00fe 9847 blx r3 8937 .LVL612: 8938 0100 A5E7 b .L567 8939 .L579: 4106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8940 .loc 1 4106 7 is_stmt 1 view .LVU3098 4106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8941 .loc 1 4106 16 is_stmt 0 view .LVU3099 8942 0102 2368 ldr r3, [r4] 4106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8943 .loc 1 4106 26 view .LVU3100 8944 0104 1A68 ldr r2, [r3] 4106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8945 .loc 1 4106 10 view .LVU3101 8946 0106 12F4804F tst r2, #16384 8947 010a A0D0 beq .L567 4108:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8948 .loc 1 4108 9 is_stmt 1 view .LVU3102 4108:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8949 .loc 1 4108 29 is_stmt 0 view .LVU3103 8950 010c 1A68 ldr r2, [r3] 8951 010e 22F48042 bic r2, r2, #16384 8952 0112 1A60 str r2, [r3] 4111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8953 .loc 1 4111 9 is_stmt 1 view .LVU3104 4111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8954 .loc 1 4111 17 is_stmt 0 view .LVU3105 8955 0114 A36B ldr r3, [r4, #56] 4111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8956 .loc 1 4111 12 view .LVU3106 8957 0116 002B cmp r3, #0 8958 0118 99D0 beq .L567 4115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8959 .loc 1 4115 11 is_stmt 1 view .LVU3107 4115:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8960 .loc 1 4115 43 is_stmt 0 view .LVU3108 8961 011a 234A ldr r2, .L580+12 8962 011c 1A65 str r2, [r3, #80] ARM GAS /tmp/cchwqEfL.s page 342 4118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8963 .loc 1 4118 11 is_stmt 1 view .LVU3109 4118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8964 .loc 1 4118 15 is_stmt 0 view .LVU3110 8965 011e A06B ldr r0, [r4, #56] 8966 0120 FFF7FEFF bl HAL_DMA_Abort_IT 8967 .LVL613: 4118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 8968 .loc 1 4118 14 view .LVU3111 8969 0124 0028 cmp r0, #0 8970 0126 92D0 beq .L567 4121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8971 .loc 1 4121 13 is_stmt 1 view .LVU3112 4121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8972 .loc 1 4121 17 is_stmt 0 view .LVU3113 8973 0128 A06B ldr r0, [r4, #56] 4121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8974 .loc 1 4121 25 view .LVU3114 8975 012a 036D ldr r3, [r0, #80] 4121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8976 .loc 1 4121 13 view .LVU3115 8977 012c 9847 blx r3 8978 .LVL614: 8979 012e 8EE7 b .L567 8980 .L568: 4164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8981 .loc 1 4164 7 is_stmt 1 view .LVU3116 4164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8982 .loc 1 4164 23 is_stmt 0 view .LVU3117 8983 0130 2823 movs r3, #40 8984 0132 84F84130 strb r3, [r4, #65] 4165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8985 .loc 1 4165 7 is_stmt 1 view .LVU3118 4165:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8986 .loc 1 4165 23 is_stmt 0 view .LVU3119 8987 0136 0022 movs r2, #0 8988 0138 84F84220 strb r2, [r4, #66] 4168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8989 .loc 1 4168 7 is_stmt 1 view .LVU3120 4168:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8990 .loc 1 4168 23 is_stmt 0 view .LVU3121 8991 013c 636C ldr r3, [r4, #68] 8992 013e 43F08003 orr r3, r3, #128 8993 0142 6364 str r3, [r4, #68] 4171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8994 .loc 1 4171 7 is_stmt 1 view .LVU3122 4171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8995 .loc 1 4171 7 view .LVU3123 8996 0144 84F84020 strb r2, [r4, #64] 4171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 8997 .loc 1 4171 7 view .LVU3124 4173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8998 .loc 1 4173 7 view .LVU3125 4173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 8999 .loc 1 4173 14 is_stmt 0 view .LVU3126 9000 0148 0125 movs r5, #1 9001 .LVL615: ARM GAS /tmp/cchwqEfL.s page 343 4173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9002 .loc 1 4173 14 view .LVU3127 9003 014a 23E0 b .L564 9004 .LVL616: 9005 .L569: 4179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9006 .loc 1 4179 7 is_stmt 1 view .LVU3128 4179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9007 .loc 1 4179 23 is_stmt 0 view .LVU3129 9008 014c 638D ldrh r3, [r4, #42] 9009 014e 9BB2 uxth r3, r3 4179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9010 .loc 1 4179 30 view .LVU3130 9011 0150 228D ldrh r2, [r4, #40] 4179:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9012 .loc 1 4179 23 view .LVU3131 9013 0152 9B1A subs r3, r3, r2 9014 0154 9BB2 uxth r3, r3 9015 0156 6385 strh r3, [r4, #42] @ movhi 4182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9016 .loc 1 4182 7 is_stmt 1 view .LVU3132 4182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9017 .loc 1 4182 22 is_stmt 0 view .LVU3133 9018 0158 0023 movs r3, #0 9019 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)) 9020 .loc 1 4199 5 is_stmt 1 view .LVU3134 4199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 9021 .loc 1 4199 11 is_stmt 0 view .LVU3135 9022 015c 2268 ldr r2, [r4] 9023 015e 9369 ldr r3, [r2, #24] 9024 0160 03F00803 and r3, r3, #8 9025 .LVL617: 4200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9026 .loc 1 4200 5 is_stmt 1 view .LVU3136 4200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9027 .loc 1 4200 10 is_stmt 0 view .LVU3137 9028 0164 9169 ldr r1, [r2, #24] 4200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9029 .loc 1 4200 8 view .LVU3138 9030 0166 11F4803F tst r1, #65536 9031 016a 0DD1 bne .L571 9032 .LVL618: 9033 .L572: 4208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9034 .loc 1 4208 5 is_stmt 1 view .LVU3139 4208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9035 .loc 1 4208 5 view .LVU3140 9036 016c 0023 movs r3, #0 9037 016e 84F84030 strb r3, [r4, #64] 4208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9038 .loc 1 4208 5 view .LVU3141 4211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9039 .loc 1 4211 5 view .LVU3142 4211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9040 .loc 1 4211 9 is_stmt 0 view .LVU3143 9041 0172 2268 ldr r2, [r4] ARM GAS /tmp/cchwqEfL.s page 344 4211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9042 .loc 1 4211 25 view .LVU3144 9043 0174 1368 ldr r3, [r2] 9044 0176 43F48043 orr r3, r3, #16384 9045 017a 1360 str r3, [r2] 4217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9046 .loc 1 4217 5 is_stmt 1 view .LVU3145 9047 017c 4FF40041 mov r1, #32768 9048 0180 2046 mov r0, r4 9049 .LVL619: 4217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9050 .loc 1 4217 5 is_stmt 0 view .LVU3146 9051 0182 FFF7FEFF bl I2C_Enable_IRQ 9052 .LVL620: 4219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9053 .loc 1 4219 5 is_stmt 1 view .LVU3147 4219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9054 .loc 1 4219 12 is_stmt 0 view .LVU3148 9055 0186 05E0 b .L564 9056 .LVL621: 9057 .L571: 4200:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9058 .loc 1 4200 54 discriminator 1 view .LVU3149 9059 0188 002B cmp r3, #0 9060 018a EFD0 beq .L572 4204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9061 .loc 1 4204 7 is_stmt 1 view .LVU3150 9062 018c 0823 movs r3, #8 9063 .LVL622: 4204:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9064 .loc 1 4204 7 is_stmt 0 view .LVU3151 9065 018e D361 str r3, [r2, #28] 9066 0190 ECE7 b .L572 9067 .LVL623: 9068 .L573: 4223:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9069 .loc 1 4223 12 view .LVU3152 9070 0192 0125 movs r5, #1 9071 .LVL624: 9072 .L564: 4225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9073 .loc 1 4225 1 view .LVU3153 9074 0194 2846 mov r0, r5 9075 0196 F8BD pop {r3, r4, r5, r6, r7, pc} 9076 .LVL625: 9077 .L574: 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9078 .loc 1 4072 5 view .LVU3154 9079 0198 0225 movs r5, #2 9080 .LVL626: 4072:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9081 .loc 1 4072 5 view .LVU3155 9082 019a FBE7 b .L564 9083 .L581: 9084 .align 2 9085 .L580: 9086 019c 00000000 .word I2C_Slave_ISR_DMA ARM GAS /tmp/cchwqEfL.s page 345 9087 01a0 00000000 .word I2C_DMASlaveTransmitCplt 9088 01a4 00000000 .word I2C_DMAError 9089 01a8 00000000 .word I2C_DMAAbort 9090 .cfi_endproc 9091 .LFE169: 9093 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits 9094 .align 1 9095 .global HAL_I2C_Slave_Seq_Receive_IT 9096 .syntax unified 9097 .thumb 9098 .thumb_func 9099 .fpu fpv5-d16 9101 HAL_I2C_Slave_Seq_Receive_IT: 9102 .LVL627: 9103 .LFB170: 4239:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9104 .loc 1 4239 1 is_stmt 1 view -0 9105 .cfi_startproc 9106 @ args = 0, pretend = 0, frame = 0 9107 @ 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 */ 9108 .loc 1 4239 1 is_stmt 0 view .LVU3157 9109 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9110 .LCFI104: 9111 .cfi_def_cfa_offset 24 9112 .cfi_offset 3, -24 9113 .cfi_offset 4, -20 9114 .cfi_offset 5, -16 9115 .cfi_offset 6, -12 9116 .cfi_offset 7, -8 9117 .cfi_offset 14, -4 9118 0002 0446 mov r4, r0 4241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9119 .loc 1 4241 3 is_stmt 1 view .LVU3158 4244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9120 .loc 1 4244 3 view .LVU3159 4246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9121 .loc 1 4246 3 view .LVU3160 4246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9122 .loc 1 4246 22 is_stmt 0 view .LVU3161 9123 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 9124 .LVL628: 4246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9125 .loc 1 4246 6 view .LVU3162 9126 0008 00F02800 and r0, r0, #40 9127 000c 2828 cmp r0, #40 9128 000e 60D1 bne .L587 9129 0010 0F46 mov r7, r1 9130 0012 1646 mov r6, r2 9131 0014 1D46 mov r5, r3 4248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9132 .loc 1 4248 5 is_stmt 1 view .LVU3163 4248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9133 .loc 1 4248 8 is_stmt 0 view .LVU3164 9134 0016 002A cmp r2, #0 9135 0018 18BF it ne 9136 001a 0029 cmpne r1, #0 ARM GAS /tmp/cchwqEfL.s page 346 9137 001c 04D1 bne .L584 4250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 9138 .loc 1 4250 7 is_stmt 1 view .LVU3165 4250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 9139 .loc 1 4250 23 is_stmt 0 view .LVU3166 9140 001e 4FF40073 mov r3, #512 9141 .LVL629: 4250:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 9142 .loc 1 4250 23 view .LVU3167 9143 0022 6364 str r3, [r4, #68] 4251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9144 .loc 1 4251 7 is_stmt 1 view .LVU3168 4251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9145 .loc 1 4251 15 is_stmt 0 view .LVU3169 9146 0024 0120 movs r0, #1 9147 0026 55E0 b .L583 9148 .LVL630: 9149 .L584: 4255:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9150 .loc 1 4255 5 is_stmt 1 view .LVU3170 9151 0028 48F20201 movw r1, #32770 9152 .LVL631: 4255:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9153 .loc 1 4255 5 is_stmt 0 view .LVU3171 9154 002c 2046 mov r0, r4 9155 002e FFF7FEFF bl I2C_Disable_IRQ 9156 .LVL632: 4258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9157 .loc 1 4258 5 is_stmt 1 view .LVU3172 4258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9158 .loc 1 4258 5 view .LVU3173 9159 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9160 0036 012B cmp r3, #1 9161 0038 4DD0 beq .L588 4258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9162 .loc 1 4258 5 discriminator 2 view .LVU3174 9163 003a 0123 movs r3, #1 9164 003c 84F84030 strb r3, [r4, #64] 4258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9165 .loc 1 4258 5 discriminator 2 view .LVU3175 4262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9166 .loc 1 4262 5 discriminator 2 view .LVU3176 4262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9167 .loc 1 4262 13 is_stmt 0 discriminator 2 view .LVU3177 9168 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9169 0044 DBB2 uxtb r3, r3 4262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9170 .loc 1 4262 8 discriminator 2 view .LVU3178 9171 0046 292B cmp r3, #41 9172 0048 28D0 beq .L590 9173 .L585: 4288:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9174 .loc 1 4288 5 is_stmt 1 view .LVU3179 4288:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9175 .loc 1 4288 21 is_stmt 0 view .LVU3180 9176 004a 2A23 movs r3, #42 9177 004c 84F84130 strb r3, [r4, #65] ARM GAS /tmp/cchwqEfL.s page 347 4289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9178 .loc 1 4289 5 is_stmt 1 view .LVU3181 4289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9179 .loc 1 4289 21 is_stmt 0 view .LVU3182 9180 0050 2023 movs r3, #32 9181 0052 84F84230 strb r3, [r4, #66] 4290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9182 .loc 1 4290 5 is_stmt 1 view .LVU3183 4290:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9183 .loc 1 4290 21 is_stmt 0 view .LVU3184 9184 0056 0023 movs r3, #0 9185 0058 6364 str r3, [r4, #68] 4293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9186 .loc 1 4293 5 is_stmt 1 view .LVU3185 4293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9187 .loc 1 4293 9 is_stmt 0 view .LVU3186 9188 005a 2268 ldr r2, [r4] 4293:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9189 .loc 1 4293 25 view .LVU3187 9190 005c 5368 ldr r3, [r2, #4] 9191 005e 23F40043 bic r3, r3, #32768 9192 0062 5360 str r3, [r2, #4] 4296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 9193 .loc 1 4296 5 is_stmt 1 view .LVU3188 4296:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 9194 .loc 1 4296 23 is_stmt 0 view .LVU3189 9195 0064 6762 str r7, [r4, #36] 4297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9196 .loc 1 4297 5 is_stmt 1 view .LVU3190 4297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9197 .loc 1 4297 23 is_stmt 0 view .LVU3191 9198 0066 6685 strh r6, [r4, #42] @ movhi 4298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9199 .loc 1 4298 5 is_stmt 1 view .LVU3192 4298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9200 .loc 1 4298 29 is_stmt 0 view .LVU3193 9201 0068 638D ldrh r3, [r4, #42] 4298:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9202 .loc 1 4298 23 view .LVU3194 9203 006a 2385 strh r3, [r4, #40] @ movhi 4299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9204 .loc 1 4299 5 is_stmt 1 view .LVU3195 4299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9205 .loc 1 4299 23 is_stmt 0 view .LVU3196 9206 006c E562 str r5, [r4, #44] 4300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9207 .loc 1 4300 5 is_stmt 1 view .LVU3197 4300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9208 .loc 1 4300 23 is_stmt 0 view .LVU3198 9209 006e 1B4B ldr r3, .L591 9210 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)) 9211 .loc 1 4302 5 is_stmt 1 view .LVU3199 4302:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9212 .loc 1 4302 11 is_stmt 0 view .LVU3200 9213 0072 2268 ldr r2, [r4] 9214 0074 9369 ldr r3, [r2, #24] ARM GAS /tmp/cchwqEfL.s page 348 9215 0076 03F00803 and r3, r3, #8 9216 .LVL633: 4303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9217 .loc 1 4303 5 is_stmt 1 view .LVU3201 4303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9218 .loc 1 4303 10 is_stmt 0 view .LVU3202 9219 007a 9169 ldr r1, [r2, #24] 4303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9220 .loc 1 4303 8 view .LVU3203 9221 007c 11F4803F tst r1, #65536 9222 0080 02D1 bne .L586 4303:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9223 .loc 1 4303 55 discriminator 1 view .LVU3204 9224 0082 0BB1 cbz r3, .L586 4307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9225 .loc 1 4307 7 is_stmt 1 view .LVU3205 9226 0084 0823 movs r3, #8 9227 .LVL634: 4307:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9228 .loc 1 4307 7 is_stmt 0 view .LVU3206 9229 0086 D361 str r3, [r2, #28] 9230 .L586: 4311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9231 .loc 1 4311 5 is_stmt 1 view .LVU3207 4311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9232 .loc 1 4311 5 view .LVU3208 9233 0088 0025 movs r5, #0 9234 .LVL635: 4311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9235 .loc 1 4311 5 is_stmt 0 view .LVU3209 9236 008a 84F84050 strb r5, [r4, #64] 4311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9237 .loc 1 4311 5 is_stmt 1 view .LVU3210 4317:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9238 .loc 1 4317 5 view .LVU3211 9239 008e 48F20201 movw r1, #32770 9240 0092 2046 mov r0, r4 9241 0094 FFF7FEFF bl I2C_Enable_IRQ 9242 .LVL636: 4319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9243 .loc 1 4319 5 view .LVU3212 4319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9244 .loc 1 4319 12 is_stmt 0 view .LVU3213 9245 0098 2846 mov r0, r5 9246 009a 1BE0 b .L583 9247 .LVL637: 9248 .L590: 4265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9249 .loc 1 4265 7 is_stmt 1 view .LVU3214 9250 009c 0121 movs r1, #1 9251 009e 2046 mov r0, r4 9252 00a0 FFF7FEFF bl I2C_Disable_IRQ 9253 .LVL638: 4267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9254 .loc 1 4267 7 view .LVU3215 4267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9255 .loc 1 4267 16 is_stmt 0 view .LVU3216 ARM GAS /tmp/cchwqEfL.s page 349 9256 00a4 2368 ldr r3, [r4] 4267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9257 .loc 1 4267 26 view .LVU3217 9258 00a6 1A68 ldr r2, [r3] 4267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9259 .loc 1 4267 10 view .LVU3218 9260 00a8 12F4804F tst r2, #16384 9261 00ac CDD0 beq .L585 4269:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9262 .loc 1 4269 9 is_stmt 1 view .LVU3219 4269:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9263 .loc 1 4269 29 is_stmt 0 view .LVU3220 9264 00ae 1A68 ldr r2, [r3] 9265 00b0 22F48042 bic r2, r2, #16384 9266 00b4 1A60 str r2, [r3] 4272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9267 .loc 1 4272 9 is_stmt 1 view .LVU3221 4272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9268 .loc 1 4272 17 is_stmt 0 view .LVU3222 9269 00b6 A36B ldr r3, [r4, #56] 4272:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9270 .loc 1 4272 12 view .LVU3223 9271 00b8 002B cmp r3, #0 9272 00ba C6D0 beq .L585 4276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9273 .loc 1 4276 11 is_stmt 1 view .LVU3224 4276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9274 .loc 1 4276 43 is_stmt 0 view .LVU3225 9275 00bc 084A ldr r2, .L591+4 9276 00be 1A65 str r2, [r3, #80] 4279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9277 .loc 1 4279 11 is_stmt 1 view .LVU3226 4279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9278 .loc 1 4279 15 is_stmt 0 view .LVU3227 9279 00c0 A06B ldr r0, [r4, #56] 9280 00c2 FFF7FEFF bl HAL_DMA_Abort_IT 9281 .LVL639: 4279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9282 .loc 1 4279 14 view .LVU3228 9283 00c6 0028 cmp r0, #0 9284 00c8 BFD0 beq .L585 4282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9285 .loc 1 4282 13 is_stmt 1 view .LVU3229 4282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9286 .loc 1 4282 17 is_stmt 0 view .LVU3230 9287 00ca A06B ldr r0, [r4, #56] 4282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9288 .loc 1 4282 25 view .LVU3231 9289 00cc 036D ldr r3, [r0, #80] 4282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9290 .loc 1 4282 13 view .LVU3232 9291 00ce 9847 blx r3 9292 .LVL640: 9293 00d0 BBE7 b .L585 9294 .LVL641: 9295 .L587: 4323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/cchwqEfL.s page 350 9296 .loc 1 4323 12 view .LVU3233 9297 00d2 0120 movs r0, #1 9298 .LVL642: 9299 .L583: 4325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9300 .loc 1 4325 1 view .LVU3234 9301 00d4 F8BD pop {r3, r4, r5, r6, r7, pc} 9302 .LVL643: 9303 .L588: 4258:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9304 .loc 1 4258 5 view .LVU3235 9305 00d6 0220 movs r0, #2 9306 00d8 FCE7 b .L583 9307 .L592: 9308 00da 00BF .align 2 9309 .L591: 9310 00dc 00000000 .word I2C_Slave_ISR_IT 9311 00e0 00000000 .word I2C_DMAAbort 9312 .cfi_endproc 9313 .LFE170: 9315 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits 9316 .align 1 9317 .global HAL_I2C_Slave_Seq_Receive_DMA 9318 .syntax unified 9319 .thumb 9320 .thumb_func 9321 .fpu fpv5-d16 9323 HAL_I2C_Slave_Seq_Receive_DMA: 9324 .LVL644: 9325 .LFB171: 4339:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9326 .loc 1 4339 1 is_stmt 1 view -0 9327 .cfi_startproc 9328 @ args = 0, pretend = 0, frame = 0 9329 @ 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 */ 9330 .loc 1 4339 1 is_stmt 0 view .LVU3237 9331 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9332 .LCFI105: 9333 .cfi_def_cfa_offset 24 9334 .cfi_offset 3, -24 9335 .cfi_offset 4, -20 9336 .cfi_offset 5, -16 9337 .cfi_offset 6, -12 9338 .cfi_offset 7, -8 9339 .cfi_offset 14, -4 9340 0002 0446 mov r4, r0 4341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 9341 .loc 1 4341 3 is_stmt 1 view .LVU3238 4342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9342 .loc 1 4342 3 view .LVU3239 4345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9343 .loc 1 4345 3 view .LVU3240 4347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9344 .loc 1 4347 3 view .LVU3241 4347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9345 .loc 1 4347 22 is_stmt 0 view .LVU3242 ARM GAS /tmp/cchwqEfL.s page 351 9346 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 9347 .LVL645: 4347:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9348 .loc 1 4347 6 view .LVU3243 9349 0008 00F02800 and r0, r0, #40 9350 000c 2828 cmp r0, #40 9351 000e 40F0C080 bne .L603 9352 0012 0F46 mov r7, r1 9353 0014 1646 mov r6, r2 9354 0016 1D46 mov r5, r3 4349:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9355 .loc 1 4349 5 is_stmt 1 view .LVU3244 4349:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9356 .loc 1 4349 8 is_stmt 0 view .LVU3245 9357 0018 002A cmp r2, #0 9358 001a 18BF it ne 9359 001c 0029 cmpne r1, #0 9360 001e 04D1 bne .L595 4351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 9361 .loc 1 4351 7 is_stmt 1 view .LVU3246 4351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 9362 .loc 1 4351 23 is_stmt 0 view .LVU3247 9363 0020 4FF40073 mov r3, #512 9364 .LVL646: 4351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return HAL_ERROR; 9365 .loc 1 4351 23 view .LVU3248 9366 0024 6364 str r3, [r4, #68] 4352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9367 .loc 1 4352 7 is_stmt 1 view .LVU3249 4352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9368 .loc 1 4352 15 is_stmt 0 view .LVU3250 9369 0026 0125 movs r5, #1 9370 .LVL647: 4352:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9371 .loc 1 4352 15 view .LVU3251 9372 0028 B4E0 b .L594 9373 .LVL648: 9374 .L595: 4356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9375 .loc 1 4356 5 is_stmt 1 view .LVU3252 9376 002a 48F20201 movw r1, #32770 9377 .LVL649: 4356:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9378 .loc 1 4356 5 is_stmt 0 view .LVU3253 9379 002e 2046 mov r0, r4 9380 0030 FFF7FEFF bl I2C_Disable_IRQ 9381 .LVL650: 4359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9382 .loc 1 4359 5 is_stmt 1 view .LVU3254 4359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9383 .loc 1 4359 5 view .LVU3255 9384 0034 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9385 0038 012B cmp r3, #1 9386 003a 00F0AD80 beq .L604 4359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9387 .loc 1 4359 5 discriminator 2 view .LVU3256 9388 003e 0123 movs r3, #1 ARM GAS /tmp/cchwqEfL.s page 352 9389 0040 84F84030 strb r3, [r4, #64] 4359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9390 .loc 1 4359 5 discriminator 2 view .LVU3257 4363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9391 .loc 1 4363 5 discriminator 2 view .LVU3258 4363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9392 .loc 1 4363 13 is_stmt 0 discriminator 2 view .LVU3259 9393 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9394 0048 DBB2 uxtb r3, r3 4363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9395 .loc 1 4363 8 discriminator 2 view .LVU3260 9396 004a 292B cmp r3, #41 9397 004c 3DD0 beq .L607 4388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9398 .loc 1 4388 10 is_stmt 1 view .LVU3261 4388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9399 .loc 1 4388 18 is_stmt 0 view .LVU3262 9400 004e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 9401 0052 DBB2 uxtb r3, r3 4388:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9402 .loc 1 4388 13 view .LVU3263 9403 0054 2A2B cmp r3, #42 9404 0056 54D0 beq .L608 9405 .L597: 4413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9406 .loc 1 4413 5 is_stmt 1 view .LVU3264 4415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9407 .loc 1 4415 5 view .LVU3265 4415:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9408 .loc 1 4415 21 is_stmt 0 view .LVU3266 9409 0058 2A23 movs r3, #42 9410 005a 84F84130 strb r3, [r4, #65] 4416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9411 .loc 1 4416 5 is_stmt 1 view .LVU3267 4416:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9412 .loc 1 4416 21 is_stmt 0 view .LVU3268 9413 005e 2023 movs r3, #32 9414 0060 84F84230 strb r3, [r4, #66] 4417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9415 .loc 1 4417 5 is_stmt 1 view .LVU3269 4417:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9416 .loc 1 4417 21 is_stmt 0 view .LVU3270 9417 0064 0023 movs r3, #0 9418 0066 6364 str r3, [r4, #68] 4420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9419 .loc 1 4420 5 is_stmt 1 view .LVU3271 4420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9420 .loc 1 4420 9 is_stmt 0 view .LVU3272 9421 0068 2268 ldr r2, [r4] 4420:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9422 .loc 1 4420 25 view .LVU3273 9423 006a 5368 ldr r3, [r2, #4] 9424 006c 23F40043 bic r3, r3, #32768 9425 0070 5360 str r3, [r2, #4] 4423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; 9426 .loc 1 4423 5 is_stmt 1 view .LVU3274 4423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS /tmp/cchwqEfL.s page 353 9427 .loc 1 4423 23 is_stmt 0 view .LVU3275 9428 0072 6762 str r7, [r4, #36] 4424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9429 .loc 1 4424 5 is_stmt 1 view .LVU3276 4424:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9430 .loc 1 4424 23 is_stmt 0 view .LVU3277 9431 0074 6685 strh r6, [r4, #42] @ movhi 4425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9432 .loc 1 4425 5 is_stmt 1 view .LVU3278 4425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9433 .loc 1 4425 29 is_stmt 0 view .LVU3279 9434 0076 638D ldrh r3, [r4, #42] 4425:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9435 .loc 1 4425 23 view .LVU3280 9436 0078 2385 strh r3, [r4, #40] @ movhi 4426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9437 .loc 1 4426 5 is_stmt 1 view .LVU3281 4426:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9438 .loc 1 4426 23 is_stmt 0 view .LVU3282 9439 007a E562 str r5, [r4, #44] 4427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9440 .loc 1 4427 5 is_stmt 1 view .LVU3283 4427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9441 .loc 1 4427 23 is_stmt 0 view .LVU3284 9442 007c 474B ldr r3, .L609 9443 007e 6363 str r3, [r4, #52] 4429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9444 .loc 1 4429 5 is_stmt 1 view .LVU3285 4429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9445 .loc 1 4429 13 is_stmt 0 view .LVU3286 9446 0080 E36B ldr r3, [r4, #60] 4429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9447 .loc 1 4429 8 view .LVU3287 9448 0082 002B cmp r3, #0 9449 0084 54D0 beq .L598 4432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9450 .loc 1 4432 7 is_stmt 1 view .LVU3288 4432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9451 .loc 1 4432 38 is_stmt 0 view .LVU3289 9452 0086 464A ldr r2, .L609+4 9453 0088 DA63 str r2, [r3, #60] 4435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9454 .loc 1 4435 7 is_stmt 1 view .LVU3290 4435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9455 .loc 1 4435 11 is_stmt 0 view .LVU3291 9456 008a E36B ldr r3, [r4, #60] 4435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9457 .loc 1 4435 39 view .LVU3292 9458 008c 454A ldr r2, .L609+8 9459 008e DA64 str r2, [r3, #76] 4438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9460 .loc 1 4438 7 is_stmt 1 view .LVU3293 4438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9461 .loc 1 4438 11 is_stmt 0 view .LVU3294 9462 0090 E26B ldr r2, [r4, #60] 4438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9463 .loc 1 4438 42 view .LVU3295 ARM GAS /tmp/cchwqEfL.s page 354 9464 0092 0023 movs r3, #0 9465 0094 1364 str r3, [r2, #64] 4439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9466 .loc 1 4439 7 is_stmt 1 view .LVU3296 4439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9467 .loc 1 4439 11 is_stmt 0 view .LVU3297 9468 0096 E26B ldr r2, [r4, #60] 4439:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9469 .loc 1 4439 39 view .LVU3298 9470 0098 1365 str r3, [r2, #80] 4442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9471 .loc 1 4442 7 is_stmt 1 view .LVU3299 4442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9472 .loc 1 4442 69 is_stmt 0 view .LVU3300 9473 009a 2168 ldr r1, [r4] 4442:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9474 .loc 1 4442 23 view .LVU3301 9475 009c 238D ldrh r3, [r4, #40] 9476 009e 3A46 mov r2, r7 9477 00a0 2431 adds r1, r1, #36 9478 00a2 E06B ldr r0, [r4, #60] 9479 00a4 FFF7FEFF bl HAL_DMA_Start_IT 9480 .LVL651: 4460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9481 .loc 1 4460 5 is_stmt 1 view .LVU3302 4460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9482 .loc 1 4460 8 is_stmt 0 view .LVU3303 9483 00a8 0546 mov r5, r0 9484 .LVL652: 4460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9485 .loc 1 4460 8 view .LVU3304 9486 00aa 0028 cmp r0, #0 9487 00ac 4ED0 beq .L599 4471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9488 .loc 1 4471 7 is_stmt 1 view .LVU3305 4471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9489 .loc 1 4471 23 is_stmt 0 view .LVU3306 9490 00ae 2823 movs r3, #40 9491 00b0 84F84130 strb r3, [r4, #65] 4472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9492 .loc 1 4472 7 is_stmt 1 view .LVU3307 4472:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9493 .loc 1 4472 23 is_stmt 0 view .LVU3308 9494 00b4 0022 movs r2, #0 9495 00b6 84F84220 strb r2, [r4, #66] 4475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9496 .loc 1 4475 7 is_stmt 1 view .LVU3309 4475:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9497 .loc 1 4475 23 is_stmt 0 view .LVU3310 9498 00ba 636C ldr r3, [r4, #68] 9499 00bc 43F01003 orr r3, r3, #16 9500 00c0 6364 str r3, [r4, #68] 4478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9501 .loc 1 4478 7 is_stmt 1 view .LVU3311 4478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9502 .loc 1 4478 7 view .LVU3312 9503 00c2 84F84020 strb r2, [r4, #64] ARM GAS /tmp/cchwqEfL.s page 355 4478:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9504 .loc 1 4478 7 view .LVU3313 4480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9505 .loc 1 4480 7 view .LVU3314 4480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9506 .loc 1 4480 14 is_stmt 0 view .LVU3315 9507 00c6 0125 movs r5, #1 9508 00c8 64E0 b .L594 9509 .LVL653: 9510 .L607: 4366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9511 .loc 1 4366 7 is_stmt 1 view .LVU3316 9512 00ca 0121 movs r1, #1 9513 00cc 2046 mov r0, r4 9514 00ce FFF7FEFF bl I2C_Disable_IRQ 9515 .LVL654: 4368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9516 .loc 1 4368 7 view .LVU3317 4368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9517 .loc 1 4368 16 is_stmt 0 view .LVU3318 9518 00d2 2368 ldr r3, [r4] 4368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9519 .loc 1 4368 26 view .LVU3319 9520 00d4 1A68 ldr r2, [r3] 4368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9521 .loc 1 4368 10 view .LVU3320 9522 00d6 12F4804F tst r2, #16384 9523 00da BDD0 beq .L597 4371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9524 .loc 1 4371 9 is_stmt 1 view .LVU3321 4371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9525 .loc 1 4371 17 is_stmt 0 view .LVU3322 9526 00dc A26B ldr r2, [r4, #56] 4371:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9527 .loc 1 4371 12 view .LVU3323 9528 00de 002A cmp r2, #0 9529 00e0 BAD0 beq .L597 4373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9530 .loc 1 4373 11 is_stmt 1 view .LVU3324 4373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9531 .loc 1 4373 31 is_stmt 0 view .LVU3325 9532 00e2 1A68 ldr r2, [r3] 9533 00e4 22F48042 bic r2, r2, #16384 9534 00e8 1A60 str r2, [r3] 4377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9535 .loc 1 4377 11 is_stmt 1 view .LVU3326 4377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9536 .loc 1 4377 15 is_stmt 0 view .LVU3327 9537 00ea A36B ldr r3, [r4, #56] 4377:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9538 .loc 1 4377 43 view .LVU3328 9539 00ec 2E4A ldr r2, .L609+12 9540 00ee 1A65 str r2, [r3, #80] 4380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9541 .loc 1 4380 11 is_stmt 1 view .LVU3329 4380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9542 .loc 1 4380 15 is_stmt 0 view .LVU3330 ARM GAS /tmp/cchwqEfL.s page 356 9543 00f0 A06B ldr r0, [r4, #56] 9544 00f2 FFF7FEFF bl HAL_DMA_Abort_IT 9545 .LVL655: 4380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9546 .loc 1 4380 14 view .LVU3331 9547 00f6 0028 cmp r0, #0 9548 00f8 AED0 beq .L597 4383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9549 .loc 1 4383 13 is_stmt 1 view .LVU3332 4383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9550 .loc 1 4383 17 is_stmt 0 view .LVU3333 9551 00fa A06B ldr r0, [r4, #56] 4383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9552 .loc 1 4383 25 view .LVU3334 9553 00fc 036D ldr r3, [r0, #80] 4383:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9554 .loc 1 4383 13 view .LVU3335 9555 00fe 9847 blx r3 9556 .LVL656: 9557 0100 AAE7 b .L597 9558 .L608: 4390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9559 .loc 1 4390 7 is_stmt 1 view .LVU3336 4390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9560 .loc 1 4390 16 is_stmt 0 view .LVU3337 9561 0102 2368 ldr r3, [r4] 4390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9562 .loc 1 4390 26 view .LVU3338 9563 0104 1A68 ldr r2, [r3] 4390:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9564 .loc 1 4390 10 view .LVU3339 9565 0106 12F4004F tst r2, #32768 9566 010a A5D0 beq .L597 4392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9567 .loc 1 4392 9 is_stmt 1 view .LVU3340 4392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9568 .loc 1 4392 29 is_stmt 0 view .LVU3341 9569 010c 1A68 ldr r2, [r3] 9570 010e 22F40042 bic r2, r2, #32768 9571 0112 1A60 str r2, [r3] 4395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9572 .loc 1 4395 9 is_stmt 1 view .LVU3342 4395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9573 .loc 1 4395 17 is_stmt 0 view .LVU3343 9574 0114 E36B ldr r3, [r4, #60] 4395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9575 .loc 1 4395 12 view .LVU3344 9576 0116 002B cmp r3, #0 9577 0118 9ED0 beq .L597 4399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9578 .loc 1 4399 11 is_stmt 1 view .LVU3345 4399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9579 .loc 1 4399 43 is_stmt 0 view .LVU3346 9580 011a 234A ldr r2, .L609+12 9581 011c 1A65 str r2, [r3, #80] 4402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9582 .loc 1 4402 11 is_stmt 1 view .LVU3347 ARM GAS /tmp/cchwqEfL.s page 357 4402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9583 .loc 1 4402 15 is_stmt 0 view .LVU3348 9584 011e E06B ldr r0, [r4, #60] 9585 0120 FFF7FEFF bl HAL_DMA_Abort_IT 9586 .LVL657: 4402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9587 .loc 1 4402 14 view .LVU3349 9588 0124 0028 cmp r0, #0 9589 0126 97D0 beq .L597 4405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9590 .loc 1 4405 13 is_stmt 1 view .LVU3350 4405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9591 .loc 1 4405 17 is_stmt 0 view .LVU3351 9592 0128 E06B ldr r0, [r4, #60] 4405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9593 .loc 1 4405 25 view .LVU3352 9594 012a 036D ldr r3, [r0, #80] 4405:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9595 .loc 1 4405 13 view .LVU3353 9596 012c 9847 blx r3 9597 .LVL658: 9598 012e 93E7 b .L597 9599 .L598: 4448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9600 .loc 1 4448 7 is_stmt 1 view .LVU3354 4448:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9601 .loc 1 4448 23 is_stmt 0 view .LVU3355 9602 0130 2823 movs r3, #40 9603 0132 84F84130 strb r3, [r4, #65] 4449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9604 .loc 1 4449 7 is_stmt 1 view .LVU3356 4449:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9605 .loc 1 4449 23 is_stmt 0 view .LVU3357 9606 0136 0022 movs r2, #0 9607 0138 84F84220 strb r2, [r4, #66] 4452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9608 .loc 1 4452 7 is_stmt 1 view .LVU3358 4452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9609 .loc 1 4452 23 is_stmt 0 view .LVU3359 9610 013c 636C ldr r3, [r4, #68] 9611 013e 43F08003 orr r3, r3, #128 9612 0142 6364 str r3, [r4, #68] 4455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9613 .loc 1 4455 7 is_stmt 1 view .LVU3360 4455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9614 .loc 1 4455 7 view .LVU3361 9615 0144 84F84020 strb r2, [r4, #64] 4455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9616 .loc 1 4455 7 view .LVU3362 4457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9617 .loc 1 4457 7 view .LVU3363 4457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9618 .loc 1 4457 14 is_stmt 0 view .LVU3364 9619 0148 0125 movs r5, #1 9620 .LVL659: 4457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9621 .loc 1 4457 14 view .LVU3365 ARM GAS /tmp/cchwqEfL.s page 358 9622 014a 23E0 b .L594 9623 .LVL660: 9624 .L599: 4463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9625 .loc 1 4463 7 is_stmt 1 view .LVU3366 4463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9626 .loc 1 4463 23 is_stmt 0 view .LVU3367 9627 014c 638D ldrh r3, [r4, #42] 9628 014e 9BB2 uxth r3, r3 4463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9629 .loc 1 4463 30 view .LVU3368 9630 0150 228D ldrh r2, [r4, #40] 4463:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9631 .loc 1 4463 23 view .LVU3369 9632 0152 9B1A subs r3, r3, r2 9633 0154 9BB2 uxth r3, r3 9634 0156 6385 strh r3, [r4, #42] @ movhi 4466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9635 .loc 1 4466 7 is_stmt 1 view .LVU3370 4466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9636 .loc 1 4466 22 is_stmt 0 view .LVU3371 9637 0158 0023 movs r3, #0 9638 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)) 9639 .loc 1 4483 5 is_stmt 1 view .LVU3372 4483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9640 .loc 1 4483 11 is_stmt 0 view .LVU3373 9641 015c 2268 ldr r2, [r4] 9642 015e 9369 ldr r3, [r2, #24] 9643 0160 03F00803 and r3, r3, #8 9644 .LVL661: 4484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9645 .loc 1 4484 5 is_stmt 1 view .LVU3374 4484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9646 .loc 1 4484 10 is_stmt 0 view .LVU3375 9647 0164 9169 ldr r1, [r2, #24] 4484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9648 .loc 1 4484 8 view .LVU3376 9649 0166 11F4803F tst r1, #65536 9650 016a 0DD0 beq .L601 9651 .LVL662: 9652 .L602: 4492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9653 .loc 1 4492 5 is_stmt 1 view .LVU3377 4492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9654 .loc 1 4492 5 view .LVU3378 9655 016c 0023 movs r3, #0 9656 016e 84F84030 strb r3, [r4, #64] 4492:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9657 .loc 1 4492 5 view .LVU3379 4495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9658 .loc 1 4495 5 view .LVU3380 4495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9659 .loc 1 4495 9 is_stmt 0 view .LVU3381 9660 0172 2268 ldr r2, [r4] 4495:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9661 .loc 1 4495 25 view .LVU3382 ARM GAS /tmp/cchwqEfL.s page 359 9662 0174 1368 ldr r3, [r2] 9663 0176 43F40043 orr r3, r3, #32768 9664 017a 1360 str r3, [r2] 4501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9665 .loc 1 4501 5 is_stmt 1 view .LVU3383 9666 017c 48F20201 movw r1, #32770 9667 0180 2046 mov r0, r4 9668 .LVL663: 4501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9669 .loc 1 4501 5 is_stmt 0 view .LVU3384 9670 0182 FFF7FEFF bl I2C_Enable_IRQ 9671 .LVL664: 4503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9672 .loc 1 4503 5 is_stmt 1 view .LVU3385 4503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9673 .loc 1 4503 12 is_stmt 0 view .LVU3386 9674 0186 05E0 b .L594 9675 .LVL665: 9676 .L601: 4484:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9677 .loc 1 4484 55 discriminator 1 view .LVU3387 9678 0188 002B cmp r3, #0 9679 018a EFD0 beq .L602 4488:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9680 .loc 1 4488 7 is_stmt 1 view .LVU3388 9681 018c 0823 movs r3, #8 9682 .LVL666: 4488:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9683 .loc 1 4488 7 is_stmt 0 view .LVU3389 9684 018e D361 str r3, [r2, #28] 9685 0190 ECE7 b .L602 9686 .LVL667: 9687 .L603: 4507:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9688 .loc 1 4507 12 view .LVU3390 9689 0192 0125 movs r5, #1 9690 .LVL668: 9691 .L594: 4509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9692 .loc 1 4509 1 view .LVU3391 9693 0194 2846 mov r0, r5 9694 0196 F8BD pop {r3, r4, r5, r6, r7, pc} 9695 .LVL669: 9696 .L604: 4359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9697 .loc 1 4359 5 view .LVU3392 9698 0198 0225 movs r5, #2 9699 .LVL670: 4359:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9700 .loc 1 4359 5 view .LVU3393 9701 019a FBE7 b .L594 9702 .L610: 9703 .align 2 9704 .L609: 9705 019c 00000000 .word I2C_Slave_ISR_DMA 9706 01a0 00000000 .word I2C_DMASlaveReceiveCplt 9707 01a4 00000000 .word I2C_DMAError ARM GAS /tmp/cchwqEfL.s page 360 9708 01a8 00000000 .word I2C_DMAAbort 9709 .cfi_endproc 9710 .LFE171: 9712 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits 9713 .align 1 9714 .global HAL_I2C_EnableListen_IT 9715 .syntax unified 9716 .thumb 9717 .thumb_func 9718 .fpu fpv5-d16 9720 HAL_I2C_EnableListen_IT: 9721 .LVL671: 9722 .LFB172: 4518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9723 .loc 1 4518 1 is_stmt 1 view -0 9724 .cfi_startproc 9725 @ args = 0, pretend = 0, frame = 0 9726 @ frame_needed = 0, uses_anonymous_args = 0 4518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9727 .loc 1 4518 1 is_stmt 0 view .LVU3395 9728 0000 08B5 push {r3, lr} 9729 .LCFI106: 9730 .cfi_def_cfa_offset 8 9731 .cfi_offset 3, -8 9732 .cfi_offset 14, -4 4519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9733 .loc 1 4519 3 is_stmt 1 view .LVU3396 4519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9734 .loc 1 4519 11 is_stmt 0 view .LVU3397 9735 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9736 0006 DBB2 uxtb r3, r3 4519:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9737 .loc 1 4519 6 view .LVU3398 9738 0008 202B cmp r3, #32 9739 000a 01D0 beq .L615 4531:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9740 .loc 1 4531 12 view .LVU3399 9741 000c 0220 movs r0, #2 9742 .LVL672: 9743 .L612: 4533:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9744 .loc 1 4533 1 view .LVU3400 9745 000e 08BD pop {r3, pc} 9746 .LVL673: 9747 .L615: 4521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9748 .loc 1 4521 5 is_stmt 1 view .LVU3401 4521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9749 .loc 1 4521 17 is_stmt 0 view .LVU3402 9750 0010 2823 movs r3, #40 9751 0012 80F84130 strb r3, [r0, #65] 4522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9752 .loc 1 4522 5 is_stmt 1 view .LVU3403 4522:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9753 .loc 1 4522 19 is_stmt 0 view .LVU3404 9754 0016 044B ldr r3, .L616 9755 0018 4363 str r3, [r0, #52] ARM GAS /tmp/cchwqEfL.s page 361 4525:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9756 .loc 1 4525 5 is_stmt 1 view .LVU3405 9757 001a 4FF40041 mov r1, #32768 9758 001e FFF7FEFF bl I2C_Enable_IRQ 9759 .LVL674: 4527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9760 .loc 1 4527 5 view .LVU3406 4527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9761 .loc 1 4527 12 is_stmt 0 view .LVU3407 9762 0022 0020 movs r0, #0 9763 0024 F3E7 b .L612 9764 .L617: 9765 0026 00BF .align 2 9766 .L616: 9767 0028 00000000 .word I2C_Slave_ISR_IT 9768 .cfi_endproc 9769 .LFE172: 9771 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits 9772 .align 1 9773 .global HAL_I2C_DisableListen_IT 9774 .syntax unified 9775 .thumb 9776 .thumb_func 9777 .fpu fpv5-d16 9779 HAL_I2C_DisableListen_IT: 9780 .LVL675: 9781 .LFB173: 4542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9782 .loc 1 4542 1 is_stmt 1 view -0 9783 .cfi_startproc 9784 @ args = 0, pretend = 0, frame = 0 9785 @ frame_needed = 0, uses_anonymous_args = 0 4544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9786 .loc 1 4544 3 view .LVU3409 4547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9787 .loc 1 4547 3 view .LVU3410 4547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9788 .loc 1 4547 11 is_stmt 0 view .LVU3411 9789 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9790 0004 DBB2 uxtb r3, r3 4547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9791 .loc 1 4547 6 view .LVU3412 9792 0006 282B cmp r3, #40 9793 0008 01D0 beq .L625 4562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9794 .loc 1 4562 12 view .LVU3413 9795 000a 0220 movs r0, #2 9796 .LVL676: 4564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9797 .loc 1 4564 1 view .LVU3414 9798 000c 7047 bx lr 9799 .LVL677: 9800 .L625: 4542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9801 .loc 1 4542 1 view .LVU3415 9802 000e 10B5 push {r4, lr} 9803 .LCFI107: ARM GAS /tmp/cchwqEfL.s page 362 9804 .cfi_def_cfa_offset 8 9805 .cfi_offset 4, -8 9806 .cfi_offset 14, -4 4549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9807 .loc 1 4549 5 is_stmt 1 view .LVU3416 4549:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9808 .loc 1 4549 26 is_stmt 0 view .LVU3417 9809 0010 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 9810 .LVL678: 4550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9811 .loc 1 4550 5 is_stmt 1 view .LVU3418 4550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9812 .loc 1 4550 48 is_stmt 0 view .LVU3419 9813 0014 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 4550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9814 .loc 1 4550 31 view .LVU3420 9815 0018 02F00302 and r2, r2, #3 9816 .LVL679: 4550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9817 .loc 1 4550 31 view .LVU3421 9818 001c 1343 orrs r3, r3, r2 4550:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9819 .loc 1 4550 25 view .LVU3422 9820 001e 0363 str r3, [r0, #48] 4551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9821 .loc 1 4551 5 is_stmt 1 view .LVU3423 4551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9822 .loc 1 4551 17 is_stmt 0 view .LVU3424 9823 0020 2023 movs r3, #32 9824 0022 80F84130 strb r3, [r0, #65] 4552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9825 .loc 1 4552 5 is_stmt 1 view .LVU3425 4552:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9826 .loc 1 4552 16 is_stmt 0 view .LVU3426 9827 0026 0024 movs r4, #0 9828 0028 80F84240 strb r4, [r0, #66] 4553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9829 .loc 1 4553 5 is_stmt 1 view .LVU3427 4553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9830 .loc 1 4553 19 is_stmt 0 view .LVU3428 9831 002c 4463 str r4, [r0, #52] 4556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9832 .loc 1 4556 5 is_stmt 1 view .LVU3429 9833 002e 4FF40041 mov r1, #32768 9834 0032 FFF7FEFF bl I2C_Disable_IRQ 9835 .LVL680: 4558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9836 .loc 1 4558 5 view .LVU3430 4558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9837 .loc 1 4558 12 is_stmt 0 view .LVU3431 9838 0036 2046 mov r0, r4 4564:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9839 .loc 1 4564 1 view .LVU3432 9840 0038 10BD pop {r4, pc} 9841 .cfi_endproc 9842 .LFE173: 9844 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits ARM GAS /tmp/cchwqEfL.s page 363 9845 .align 1 9846 .global HAL_I2C_Master_Abort_IT 9847 .syntax unified 9848 .thumb 9849 .thumb_func 9850 .fpu fpv5-d16 9852 HAL_I2C_Master_Abort_IT: 9853 .LVL681: 9854 .LFB174: 4575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 9855 .loc 1 4575 1 is_stmt 1 view -0 9856 .cfi_startproc 9857 @ args = 0, pretend = 0, frame = 0 9858 @ frame_needed = 0, uses_anonymous_args = 0 4576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9859 .loc 1 4576 3 view .LVU3434 4576:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9860 .loc 1 4576 23 is_stmt 0 view .LVU3435 9861 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 9862 0004 DBB2 uxtb r3, r3 9863 .LVL682: 4578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9864 .loc 1 4578 3 is_stmt 1 view .LVU3436 4578:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9865 .loc 1 4578 6 is_stmt 0 view .LVU3437 9866 0006 402B cmp r3, #64 9867 0008 18BF it ne 9868 000a 102B cmpne r3, #16 9869 000c 36D1 bne .L630 4575:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp_mode = hi2c->Mode; 9870 .loc 1 4575 1 view .LVU3438 9871 000e 30B5 push {r4, r5, lr} 9872 .LCFI108: 9873 .cfi_def_cfa_offset 12 9874 .cfi_offset 4, -12 9875 .cfi_offset 5, -8 9876 .cfi_offset 14, -4 9877 0010 83B0 sub sp, sp, #12 9878 .LCFI109: 9879 .cfi_def_cfa_offset 24 9880 0012 0446 mov r4, r0 9881 0014 0D46 mov r5, r1 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9882 .loc 1 4581 5 is_stmt 1 view .LVU3439 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9883 .loc 1 4581 5 view .LVU3440 9884 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 9885 .LVL683: 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9886 .loc 1 4581 5 is_stmt 0 view .LVU3441 9887 001a 012B cmp r3, #1 9888 001c 30D0 beq .L631 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9889 .loc 1 4581 5 is_stmt 1 discriminator 2 view .LVU3442 9890 001e 0123 movs r3, #1 9891 0020 80F84030 strb r3, [r0, #64] 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 364 9892 .loc 1 4581 5 discriminator 2 view .LVU3443 4584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9893 .loc 1 4584 5 discriminator 2 view .LVU3444 4584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9894 .loc 1 4584 13 is_stmt 0 discriminator 2 view .LVU3445 9895 0024 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9896 0028 DBB2 uxtb r3, r3 4584:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9897 .loc 1 4584 8 discriminator 2 view .LVU3446 9898 002a 212B cmp r3, #33 9899 002c 1AD0 beq .L636 4589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9900 .loc 1 4589 10 is_stmt 1 view .LVU3447 4589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9901 .loc 1 4589 18 is_stmt 0 view .LVU3448 9902 002e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 9903 0032 DBB2 uxtb r3, r3 4589:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 9904 .loc 1 4589 13 view .LVU3449 9905 0034 222B cmp r3, #34 9906 0036 1BD0 beq .L637 9907 .LVL684: 9908 .L629: 4597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9909 .loc 1 4597 5 is_stmt 1 view .LVU3450 4600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9910 .loc 1 4600 5 view .LVU3451 4600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9911 .loc 1 4600 17 is_stmt 0 view .LVU3452 9912 0038 6023 movs r3, #96 9913 003a 84F84130 strb r3, [r4, #65] 4604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9914 .loc 1 4604 5 is_stmt 1 view .LVU3453 9915 003e 114B ldr r3, .L638 9916 0040 0093 str r3, [sp] 9917 0042 4FF00073 mov r3, #33554432 9918 0046 0122 movs r2, #1 9919 0048 2946 mov r1, r5 9920 004a 2046 mov r0, r4 9921 004c FFF7FEFF bl I2C_TransferConfig 9922 .LVL685: 4607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9923 .loc 1 4607 5 view .LVU3454 4607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9924 .loc 1 4607 5 view .LVU3455 9925 0050 0025 movs r5, #0 9926 0052 84F84050 strb r5, [r4, #64] 4607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9927 .loc 1 4607 5 view .LVU3456 4612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9928 .loc 1 4612 5 view .LVU3457 9929 0056 2021 movs r1, #32 9930 0058 2046 mov r0, r4 9931 005a FFF7FEFF bl I2C_Enable_IRQ 9932 .LVL686: 4614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9933 .loc 1 4614 5 view .LVU3458 ARM GAS /tmp/cchwqEfL.s page 365 4614:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9934 .loc 1 4614 12 is_stmt 0 view .LVU3459 9935 005e 2846 mov r0, r5 9936 .L627: 4622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9937 .loc 1 4622 1 view .LVU3460 9938 0060 03B0 add sp, sp, #12 9939 .LCFI110: 9940 .cfi_remember_state 9941 .cfi_def_cfa_offset 12 9942 @ sp needed 9943 0062 30BD pop {r4, r5, pc} 9944 .LVL687: 9945 .L636: 9946 .LCFI111: 9947 .cfi_restore_state 4586:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9948 .loc 1 4586 7 is_stmt 1 view .LVU3461 9949 0064 0121 movs r1, #1 9950 .LVL688: 4586:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9951 .loc 1 4586 7 is_stmt 0 view .LVU3462 9952 0066 FFF7FEFF bl I2C_Disable_IRQ 9953 .LVL689: 4587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9954 .loc 1 4587 7 is_stmt 1 view .LVU3463 4587:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9955 .loc 1 4587 27 is_stmt 0 view .LVU3464 9956 006a 1123 movs r3, #17 9957 006c 2363 str r3, [r4, #48] 9958 006e E3E7 b .L629 9959 .LVL690: 9960 .L637: 4591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9961 .loc 1 4591 7 is_stmt 1 view .LVU3465 9962 0070 0221 movs r1, #2 9963 .LVL691: 4591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9964 .loc 1 4591 7 is_stmt 0 view .LVU3466 9965 0072 FFF7FEFF bl I2C_Disable_IRQ 9966 .LVL692: 4592:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9967 .loc 1 4592 7 is_stmt 1 view .LVU3467 4592:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9968 .loc 1 4592 27 is_stmt 0 view .LVU3468 9969 0076 1223 movs r3, #18 9970 0078 2363 str r3, [r4, #48] 9971 007a DDE7 b .L629 9972 .LVL693: 9973 .L630: 9974 .LCFI112: 9975 .cfi_def_cfa_offset 0 9976 .cfi_restore 4 9977 .cfi_restore 5 9978 .cfi_restore 14 4620:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 9979 .loc 1 4620 12 view .LVU3469 ARM GAS /tmp/cchwqEfL.s page 366 9980 007c 0120 movs r0, #1 9981 .LVL694: 4622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9982 .loc 1 4622 1 view .LVU3470 9983 007e 7047 bx lr 9984 .LVL695: 9985 .L631: 9986 .LCFI113: 9987 .cfi_def_cfa_offset 24 9988 .cfi_offset 4, -12 9989 .cfi_offset 5, -8 9990 .cfi_offset 14, -4 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9991 .loc 1 4581 5 view .LVU3471 9992 0080 0220 movs r0, #2 9993 .LVL696: 4581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 9994 .loc 1 4581 5 view .LVU3472 9995 0082 EDE7 b .L627 9996 .L639: 9997 .align 2 9998 .L638: 9999 0084 00400080 .word -2147467264 10000 .cfi_endproc 10001 .LFE174: 10003 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits 10004 .align 1 10005 .global HAL_I2C_EV_IRQHandler 10006 .syntax unified 10007 .thumb 10008 .thumb_func 10009 .fpu fpv5-d16 10011 HAL_I2C_EV_IRQHandler: 10012 .LVL697: 10013 .LFB175: 4639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 10014 .loc 1 4639 1 is_stmt 1 view -0 10015 .cfi_startproc 10016 @ args = 0, pretend = 0, frame = 0 10017 @ 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 */ 10018 .loc 1 4639 1 is_stmt 0 view .LVU3474 10019 0000 08B5 push {r3, lr} 10020 .LCFI114: 10021 .cfi_def_cfa_offset 8 10022 .cfi_offset 3, -8 10023 .cfi_offset 14, -4 4641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10024 .loc 1 4641 3 is_stmt 1 view .LVU3475 4641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10025 .loc 1 4641 24 is_stmt 0 view .LVU3476 10026 0002 0368 ldr r3, [r0] 4641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 10027 .loc 1 4641 12 view .LVU3477 10028 0004 9969 ldr r1, [r3, #24] 10029 .LVL698: 4642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 367 10030 .loc 1 4642 3 is_stmt 1 view .LVU3478 4642:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10031 .loc 1 4642 12 is_stmt 0 view .LVU3479 10032 0006 1A68 ldr r2, [r3] 10033 .LVL699: 4645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10034 .loc 1 4645 3 is_stmt 1 view .LVU3480 4645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10035 .loc 1 4645 11 is_stmt 0 view .LVU3481 10036 0008 436B ldr r3, [r0, #52] 4645:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10037 .loc 1 4645 6 view .LVU3482 10038 000a 03B1 cbz r3, .L640 4647:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10039 .loc 1 4647 5 is_stmt 1 view .LVU3483 10040 000c 9847 blx r3 10041 .LVL700: 10042 .L640: 4649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10043 .loc 1 4649 1 is_stmt 0 view .LVU3484 10044 000e 08BD pop {r3, pc} 10045 .cfi_endproc 10046 .LFE175: 10048 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits 10049 .align 1 10050 .weak HAL_I2C_MasterTxCpltCallback 10051 .syntax unified 10052 .thumb 10053 .thumb_func 10054 .fpu fpv5-d16 10056 HAL_I2C_MasterTxCpltCallback: 10057 .LVL701: 10058 .LFB177: 4710:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10059 .loc 1 4710 1 is_stmt 1 view -0 10060 .cfi_startproc 10061 @ args = 0, pretend = 0, frame = 0 10062 @ frame_needed = 0, uses_anonymous_args = 0 10063 @ link register save eliminated. 4712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10064 .loc 1 4712 3 view .LVU3486 4717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10065 .loc 1 4717 1 is_stmt 0 view .LVU3487 10066 0000 7047 bx lr 10067 .cfi_endproc 10068 .LFE177: 10070 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits 10071 .align 1 10072 .weak HAL_I2C_MasterRxCpltCallback 10073 .syntax unified 10074 .thumb 10075 .thumb_func 10076 .fpu fpv5-d16 10078 HAL_I2C_MasterRxCpltCallback: 10079 .LVL702: 10080 .LFB178: 4726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ ARM GAS /tmp/cchwqEfL.s page 368 10081 .loc 1 4726 1 is_stmt 1 view -0 10082 .cfi_startproc 10083 @ args = 0, pretend = 0, frame = 0 10084 @ frame_needed = 0, uses_anonymous_args = 0 10085 @ link register save eliminated. 4728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10086 .loc 1 4728 3 view .LVU3489 4733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10087 .loc 1 4733 1 is_stmt 0 view .LVU3490 10088 0000 7047 bx lr 10089 .cfi_endproc 10090 .LFE178: 10092 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits 10093 .align 1 10094 .syntax unified 10095 .thumb 10096 .thumb_func 10097 .fpu fpv5-d16 10099 I2C_ITMasterSeqCplt: 10100 .LVL703: 10101 .LFB199: 6053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset I2C handle mode */ 10102 .loc 1 6053 1 is_stmt 1 view -0 10103 .cfi_startproc 10104 @ args = 0, pretend = 0, frame = 0 10105 @ frame_needed = 0, uses_anonymous_args = 0 6053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset I2C handle mode */ 10106 .loc 1 6053 1 is_stmt 0 view .LVU3492 10107 0000 38B5 push {r3, r4, r5, lr} 10108 .LCFI115: 10109 .cfi_def_cfa_offset 16 10110 .cfi_offset 3, -16 10111 .cfi_offset 4, -12 10112 .cfi_offset 5, -8 10113 .cfi_offset 14, -4 10114 0002 0446 mov r4, r0 6055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10115 .loc 1 6055 3 is_stmt 1 view .LVU3493 6055:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10116 .loc 1 6055 14 is_stmt 0 view .LVU3494 10117 0004 0023 movs r3, #0 10118 0006 80F84230 strb r3, [r0, #66] 6059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10119 .loc 1 6059 3 is_stmt 1 view .LVU3495 6059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10120 .loc 1 6059 11 is_stmt 0 view .LVU3496 10121 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10122 000e DBB2 uxtb r3, r3 6059:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10123 .loc 1 6059 6 view .LVU3497 10124 0010 212B cmp r3, #33 10125 0012 0FD0 beq .L649 6081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10126 .loc 1 6081 5 is_stmt 1 view .LVU3498 6081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 10127 .loc 1 6081 25 is_stmt 0 view .LVU3499 10128 0014 2023 movs r3, #32 ARM GAS /tmp/cchwqEfL.s page 369 10129 0016 80F84130 strb r3, [r0, #65] 6082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10130 .loc 1 6082 5 is_stmt 1 view .LVU3500 6082:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10131 .loc 1 6082 25 is_stmt 0 view .LVU3501 10132 001a 1223 movs r3, #18 10133 001c 0363 str r3, [r0, #48] 6083:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10134 .loc 1 6083 5 is_stmt 1 view .LVU3502 6083:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10135 .loc 1 6083 25 is_stmt 0 view .LVU3503 10136 001e 0025 movs r5, #0 10137 0020 4563 str r5, [r0, #52] 6086:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10138 .loc 1 6086 5 is_stmt 1 view .LVU3504 10139 0022 0221 movs r1, #2 10140 0024 FFF7FEFF bl I2C_Disable_IRQ 10141 .LVL704: 6089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10142 .loc 1 6089 5 view .LVU3505 6089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10143 .loc 1 6089 5 view .LVU3506 10144 0028 84F84050 strb r5, [r4, #64] 6089:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10145 .loc 1 6089 5 view .LVU3507 6095:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10146 .loc 1 6095 5 view .LVU3508 10147 002c 2046 mov r0, r4 10148 002e FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 10149 .LVL705: 10150 .L645: 6098:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10151 .loc 1 6098 1 is_stmt 0 view .LVU3509 10152 0032 38BD pop {r3, r4, r5, pc} 10153 .LVL706: 10154 .L649: 6061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10155 .loc 1 6061 5 is_stmt 1 view .LVU3510 6061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10156 .loc 1 6061 25 is_stmt 0 view .LVU3511 10157 0034 2023 movs r3, #32 10158 0036 80F84130 strb r3, [r0, #65] 6062:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10159 .loc 1 6062 5 is_stmt 1 view .LVU3512 6062:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10160 .loc 1 6062 25 is_stmt 0 view .LVU3513 10161 003a 1123 movs r3, #17 10162 003c 0363 str r3, [r0, #48] 6063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10163 .loc 1 6063 5 is_stmt 1 view .LVU3514 6063:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10164 .loc 1 6063 25 is_stmt 0 view .LVU3515 10165 003e 0025 movs r5, #0 10166 0040 4563 str r5, [r0, #52] 6066:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10167 .loc 1 6066 5 is_stmt 1 view .LVU3516 10168 0042 0121 movs r1, #1 ARM GAS /tmp/cchwqEfL.s page 370 10169 0044 FFF7FEFF bl I2C_Disable_IRQ 10170 .LVL707: 6069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10171 .loc 1 6069 5 view .LVU3517 6069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10172 .loc 1 6069 5 view .LVU3518 10173 0048 84F84050 strb r5, [r4, #64] 6069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10174 .loc 1 6069 5 view .LVU3519 6075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10175 .loc 1 6075 5 view .LVU3520 10176 004c 2046 mov r0, r4 10177 004e FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 10178 .LVL708: 10179 0052 EEE7 b .L645 10180 .cfi_endproc 10181 .LFE199: 10183 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits 10184 .align 1 10185 .weak HAL_I2C_SlaveTxCpltCallback 10186 .syntax unified 10187 .thumb 10188 .thumb_func 10189 .fpu fpv5-d16 10191 HAL_I2C_SlaveTxCpltCallback: 10192 .LVL709: 10193 .LFB179: 4741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10194 .loc 1 4741 1 view -0 10195 .cfi_startproc 10196 @ args = 0, pretend = 0, frame = 0 10197 @ frame_needed = 0, uses_anonymous_args = 0 10198 @ link register save eliminated. 4743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10199 .loc 1 4743 3 view .LVU3522 4748:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10200 .loc 1 4748 1 is_stmt 0 view .LVU3523 10201 0000 7047 bx lr 10202 .cfi_endproc 10203 .LFE179: 10205 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits 10206 .align 1 10207 .weak HAL_I2C_SlaveRxCpltCallback 10208 .syntax unified 10209 .thumb 10210 .thumb_func 10211 .fpu fpv5-d16 10213 HAL_I2C_SlaveRxCpltCallback: 10214 .LVL710: 10215 .LFB180: 4757:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10216 .loc 1 4757 1 is_stmt 1 view -0 10217 .cfi_startproc 10218 @ args = 0, pretend = 0, frame = 0 10219 @ frame_needed = 0, uses_anonymous_args = 0 10220 @ link register save eliminated. 4759:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 371 10221 .loc 1 4759 3 view .LVU3525 4764:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10222 .loc 1 4764 1 is_stmt 0 view .LVU3526 10223 0000 7047 bx lr 10224 .cfi_endproc 10225 .LFE180: 10227 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits 10228 .align 1 10229 .syntax unified 10230 .thumb 10231 .thumb_func 10232 .fpu fpv5-d16 10234 I2C_ITSlaveSeqCplt: 10235 .LVL711: 10236 .LFB200: 6106:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10237 .loc 1 6106 1 is_stmt 1 view -0 10238 .cfi_startproc 10239 @ args = 0, pretend = 0, frame = 0 10240 @ 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); 10241 .loc 1 6106 1 is_stmt 0 view .LVU3528 10242 0000 10B5 push {r4, lr} 10243 .LCFI116: 10244 .cfi_def_cfa_offset 8 10245 .cfi_offset 4, -8 10246 .cfi_offset 14, -4 10247 0002 0446 mov r4, r0 6107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10248 .loc 1 6107 3 is_stmt 1 view .LVU3529 6107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10249 .loc 1 6107 26 is_stmt 0 view .LVU3530 10250 0004 0368 ldr r3, [r0] 6107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10251 .loc 1 6107 12 view .LVU3531 10252 0006 1A68 ldr r2, [r3] 10253 .LVL712: 6110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10254 .loc 1 6110 3 is_stmt 1 view .LVU3532 6110:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10255 .loc 1 6110 14 is_stmt 0 view .LVU3533 10256 0008 0021 movs r1, #0 10257 000a 80F84210 strb r1, [r0, #66] 6113:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10258 .loc 1 6113 3 is_stmt 1 view .LVU3534 6113:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10259 .loc 1 6113 6 is_stmt 0 view .LVU3535 10260 000e 12F4804F tst r2, #16384 10261 0012 0ED0 beq .L653 6116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10262 .loc 1 6116 5 is_stmt 1 view .LVU3536 6116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10263 .loc 1 6116 25 is_stmt 0 view .LVU3537 10264 0014 1A68 ldr r2, [r3] 10265 .LVL713: 6116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10266 .loc 1 6116 25 view .LVU3538 ARM GAS /tmp/cchwqEfL.s page 372 10267 0016 22F48042 bic r2, r2, #16384 10268 001a 1A60 str r2, [r3] 10269 .L654: 6126:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10270 .loc 1 6126 3 is_stmt 1 view .LVU3539 6128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10271 .loc 1 6128 3 view .LVU3540 6128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10272 .loc 1 6128 11 is_stmt 0 view .LVU3541 10273 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10274 0020 DBB2 uxtb r3, r3 6128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10275 .loc 1 6128 6 view .LVU3542 10276 0022 292B cmp r3, #41 10277 0024 0DD0 beq .L658 6148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10278 .loc 1 6148 8 is_stmt 1 view .LVU3543 6148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10279 .loc 1 6148 16 is_stmt 0 view .LVU3544 10280 0026 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 10281 002a DBB2 uxtb r3, r3 6148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10282 .loc 1 6148 11 view .LVU3545 10283 002c 2A2B cmp r3, #42 10284 002e 18D0 beq .L659 10285 .LVL714: 10286 .L652: 6171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10287 .loc 1 6171 1 view .LVU3546 10288 0030 10BD pop {r4, pc} 10289 .LVL715: 10290 .L653: 6118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10291 .loc 1 6118 8 is_stmt 1 view .LVU3547 6118:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10292 .loc 1 6118 11 is_stmt 0 view .LVU3548 10293 0032 12F4004F tst r2, #32768 10294 0036 F1D0 beq .L654 6121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10295 .loc 1 6121 5 is_stmt 1 view .LVU3549 6121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10296 .loc 1 6121 25 is_stmt 0 view .LVU3550 10297 0038 1A68 ldr r2, [r3] 10298 .LVL716: 6121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10299 .loc 1 6121 25 view .LVU3551 10300 003a 22F40042 bic r2, r2, #32768 10301 003e 1A60 str r2, [r3] 10302 0040 ECE7 b .L654 10303 .L658: 6131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10304 .loc 1 6131 5 is_stmt 1 view .LVU3552 6131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10305 .loc 1 6131 25 is_stmt 0 view .LVU3553 10306 0042 2823 movs r3, #40 10307 0044 84F84130 strb r3, [r4, #65] 6132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 373 10308 .loc 1 6132 5 is_stmt 1 view .LVU3554 6132:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10309 .loc 1 6132 25 is_stmt 0 view .LVU3555 10310 0048 2123 movs r3, #33 10311 004a 2363 str r3, [r4, #48] 6135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10312 .loc 1 6135 5 is_stmt 1 view .LVU3556 10313 004c 0121 movs r1, #1 10314 004e 2046 mov r0, r4 10315 .LVL717: 6135:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10316 .loc 1 6135 5 is_stmt 0 view .LVU3557 10317 0050 FFF7FEFF bl I2C_Disable_IRQ 10318 .LVL718: 6138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10319 .loc 1 6138 5 is_stmt 1 view .LVU3558 6138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10320 .loc 1 6138 5 view .LVU3559 10321 0054 0023 movs r3, #0 10322 0056 84F84030 strb r3, [r4, #64] 6138:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10323 .loc 1 6138 5 view .LVU3560 6144:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10324 .loc 1 6144 5 view .LVU3561 10325 005a 2046 mov r0, r4 10326 005c FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 10327 .LVL719: 10328 0060 E6E7 b .L652 10329 .LVL720: 10330 .L659: 6151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10331 .loc 1 6151 5 view .LVU3562 6151:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10332 .loc 1 6151 25 is_stmt 0 view .LVU3563 10333 0062 2823 movs r3, #40 10334 0064 84F84130 strb r3, [r4, #65] 6152:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10335 .loc 1 6152 5 is_stmt 1 view .LVU3564 6152:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10336 .loc 1 6152 25 is_stmt 0 view .LVU3565 10337 0068 2223 movs r3, #34 10338 006a 2363 str r3, [r4, #48] 6155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10339 .loc 1 6155 5 is_stmt 1 view .LVU3566 10340 006c 0221 movs r1, #2 10341 006e 2046 mov r0, r4 10342 .LVL721: 6155:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10343 .loc 1 6155 5 is_stmt 0 view .LVU3567 10344 0070 FFF7FEFF bl I2C_Disable_IRQ 10345 .LVL722: 6158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10346 .loc 1 6158 5 is_stmt 1 view .LVU3568 6158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10347 .loc 1 6158 5 view .LVU3569 10348 0074 0023 movs r3, #0 10349 0076 84F84030 strb r3, [r4, #64] ARM GAS /tmp/cchwqEfL.s page 374 6158:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10350 .loc 1 6158 5 view .LVU3570 6164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10351 .loc 1 6164 5 view .LVU3571 10352 007a 2046 mov r0, r4 10353 007c FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 10354 .LVL723: 6170:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10355 .loc 1 6170 3 view .LVU3572 6171:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10356 .loc 1 6171 1 is_stmt 0 view .LVU3573 10357 0080 D6E7 b .L652 10358 .cfi_endproc 10359 .LFE200: 10361 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits 10362 .align 1 10363 .syntax unified 10364 .thumb 10365 .thumb_func 10366 .fpu fpv5-d16 10368 I2C_DMASlaveTransmitCplt: 10369 .LVL724: 10370 .LFB208: 6831:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10371 .loc 1 6831 1 is_stmt 1 view -0 10372 .cfi_startproc 10373 @ args = 0, pretend = 0, frame = 0 10374 @ frame_needed = 0, uses_anonymous_args = 0 6831:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10375 .loc 1 6831 1 is_stmt 0 view .LVU3575 10376 0000 08B5 push {r3, lr} 10377 .LCFI117: 10378 .cfi_def_cfa_offset 8 10379 .cfi_offset 3, -8 10380 .cfi_offset 14, -4 6833:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10381 .loc 1 6833 3 is_stmt 1 view .LVU3576 6833:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10382 .loc 1 6833 22 is_stmt 0 view .LVU3577 10383 0002 806B ldr r0, [r0, #56] 10384 .LVL725: 6834:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10385 .loc 1 6834 3 is_stmt 1 view .LVU3578 6834:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10386 .loc 1 6834 12 is_stmt 0 view .LVU3579 10387 0004 C36A ldr r3, [r0, #44] 10388 .LVL726: 6836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10389 .loc 1 6836 3 is_stmt 1 view .LVU3580 6836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10390 .loc 1 6836 6 is_stmt 0 view .LVU3581 10391 0006 002B cmp r3, #0 10392 0008 18BF it ne 10393 000a B3F1807F cmpne r3, #16777216 10394 000e 00D0 beq .L663 10395 .LVL727: 10396 .L660: ARM GAS /tmp/cchwqEfL.s page 375 6851:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10397 .loc 1 6851 1 view .LVU3582 10398 0010 08BD pop {r3, pc} 10399 .LVL728: 10400 .L663: 6839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10401 .loc 1 6839 5 is_stmt 1 view .LVU3583 6839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10402 .loc 1 6839 9 is_stmt 0 view .LVU3584 10403 0012 0268 ldr r2, [r0] 6839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10404 .loc 1 6839 25 view .LVU3585 10405 0014 1368 ldr r3, [r2] 10406 .LVL729: 6839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10407 .loc 1 6839 25 view .LVU3586 10408 0016 23F48043 bic r3, r3, #16384 10409 001a 1360 str r3, [r2] 6843:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10410 .loc 1 6843 5 is_stmt 1 view .LVU3587 10411 001c FFF7FEFF bl I2C_ITSlaveSeqCplt 10412 .LVL730: 6850:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10413 .loc 1 6850 3 view .LVU3588 6851:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10414 .loc 1 6851 1 is_stmt 0 view .LVU3589 10415 0020 F6E7 b .L660 10416 .cfi_endproc 10417 .LFE208: 10419 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits 10420 .align 1 10421 .syntax unified 10422 .thumb 10423 .thumb_func 10424 .fpu fpv5-d16 10426 I2C_DMASlaveReceiveCplt: 10427 .LVL731: 10428 .LFB210: 6919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10429 .loc 1 6919 1 is_stmt 1 view -0 10430 .cfi_startproc 10431 @ args = 0, pretend = 0, frame = 0 10432 @ frame_needed = 0, uses_anonymous_args = 0 6919:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10433 .loc 1 6919 1 is_stmt 0 view .LVU3591 10434 0000 08B5 push {r3, lr} 10435 .LCFI118: 10436 .cfi_def_cfa_offset 8 10437 .cfi_offset 3, -8 10438 .cfi_offset 14, -4 6921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10439 .loc 1 6921 3 is_stmt 1 view .LVU3592 6921:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10440 .loc 1 6921 22 is_stmt 0 view .LVU3593 10441 0002 806B ldr r0, [r0, #56] 10442 .LVL732: 6922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 376 10443 .loc 1 6922 3 is_stmt 1 view .LVU3594 6922:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10444 .loc 1 6922 12 is_stmt 0 view .LVU3595 10445 0004 C26A ldr r2, [r0, #44] 10446 .LVL733: 6924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10447 .loc 1 6924 3 is_stmt 1 view .LVU3596 6924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10448 .loc 1 6924 8 is_stmt 0 view .LVU3597 10449 0006 C36B ldr r3, [r0, #60] 10450 0008 1B68 ldr r3, [r3] 10451 000a 5B68 ldr r3, [r3, #4] 6924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10452 .loc 1 6924 6 view .LVU3598 10453 000c 13B9 cbnz r3, .L664 6924:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10454 .loc 1 6924 53 discriminator 1 view .LVU3599 10455 000e 12F5803F cmn r2, #65536 10456 0012 00D1 bne .L667 10457 .LVL734: 10458 .L664: 6939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10459 .loc 1 6939 1 view .LVU3600 10460 0014 08BD pop {r3, pc} 10461 .LVL735: 10462 .L667: 6928:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10463 .loc 1 6928 5 is_stmt 1 view .LVU3601 6928:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10464 .loc 1 6928 9 is_stmt 0 view .LVU3602 10465 0016 0268 ldr r2, [r0] 10466 .LVL736: 6928:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10467 .loc 1 6928 25 view .LVU3603 10468 0018 1368 ldr r3, [r2] 10469 001a 23F40043 bic r3, r3, #32768 10470 001e 1360 str r3, [r2] 6931:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10471 .loc 1 6931 5 is_stmt 1 view .LVU3604 10472 0020 FFF7FEFF bl I2C_ITSlaveSeqCplt 10473 .LVL737: 6938:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10474 .loc 1 6938 3 view .LVU3605 6939:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10475 .loc 1 6939 1 is_stmt 0 view .LVU3606 10476 0024 F6E7 b .L664 10477 .cfi_endproc 10478 .LFE210: 10480 .section .text.HAL_I2C_AddrCallback,"ax",%progbits 10481 .align 1 10482 .weak HAL_I2C_AddrCallback 10483 .syntax unified 10484 .thumb 10485 .thumb_func 10486 .fpu fpv5-d16 10488 HAL_I2C_AddrCallback: 10489 .LVL738: ARM GAS /tmp/cchwqEfL.s page 377 10490 .LFB181: 4775:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10491 .loc 1 4775 1 is_stmt 1 view -0 10492 .cfi_startproc 10493 @ args = 0, pretend = 0, frame = 0 10494 @ frame_needed = 0, uses_anonymous_args = 0 10495 @ link register save eliminated. 4777:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(TransferDirection); 10496 .loc 1 4777 3 view .LVU3608 4778:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(AddrMatchCode); 10497 .loc 1 4778 3 view .LVU3609 4779:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10498 .loc 1 4779 3 view .LVU3610 4784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10499 .loc 1 4784 1 is_stmt 0 view .LVU3611 10500 0000 7047 bx lr 10501 .cfi_endproc 10502 .LFE181: 10504 .section .text.I2C_ITAddrCplt,"ax",%progbits 10505 .align 1 10506 .syntax unified 10507 .thumb 10508 .thumb_func 10509 .fpu fpv5-d16 10511 I2C_ITAddrCplt: 10512 .LVL739: 10513 .LFB198: 5958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint8_t transferdirection; 10514 .loc 1 5958 1 is_stmt 1 view -0 10515 .cfi_startproc 10516 @ args = 0, pretend = 0, frame = 0 10517 @ frame_needed = 0, uses_anonymous_args = 0 5958:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint8_t transferdirection; 10518 .loc 1 5958 1 is_stmt 0 view .LVU3613 10519 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 10520 .LCFI119: 10521 .cfi_def_cfa_offset 24 10522 .cfi_offset 3, -24 10523 .cfi_offset 4, -20 10524 .cfi_offset 5, -16 10525 .cfi_offset 6, -12 10526 .cfi_offset 7, -8 10527 .cfi_offset 14, -4 10528 0002 0446 mov r4, r0 5959:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t slaveaddrcode; 10529 .loc 1 5959 3 is_stmt 1 view .LVU3614 5960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t ownadd1code; 10530 .loc 1 5960 3 view .LVU3615 5961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t ownadd2code; 10531 .loc 1 5961 3 view .LVU3616 5962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10532 .loc 1 5962 3 view .LVU3617 5965:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10533 .loc 1 5965 3 view .LVU3618 5968:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10534 .loc 1 5968 3 view .LVU3619 5968:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/cchwqEfL.s page 378 10535 .loc 1 5968 22 is_stmt 0 view .LVU3620 10536 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 5968:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10537 .loc 1 5968 6 view .LVU3621 10538 0008 03F02803 and r3, r3, #40 10539 000c 282B cmp r3, #40 10540 000e 06D0 beq .L675 6040:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10541 .loc 1 6040 5 is_stmt 1 view .LVU3622 10542 0010 0368 ldr r3, [r0] 10543 0012 0822 movs r2, #8 10544 0014 DA61 str r2, [r3, #28] 6043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10545 .loc 1 6043 5 view .LVU3623 6043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10546 .loc 1 6043 5 view .LVU3624 10547 0016 0023 movs r3, #0 10548 0018 80F84030 strb r3, [r0, #64] 6043:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10549 .loc 1 6043 5 view .LVU3625 10550 .LVL740: 10551 .L669: 6045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10552 .loc 1 6045 1 is_stmt 0 view .LVU3626 10553 001c F8BD pop {r3, r4, r5, r6, r7, pc} 10554 .LVL741: 10555 .L675: 5970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10556 .loc 1 5970 5 is_stmt 1 view .LVU3627 5970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10557 .loc 1 5970 25 is_stmt 0 view .LVU3628 10558 001e 0368 ldr r3, [r0] 10559 0020 9E69 ldr r6, [r3, #24] 5970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10560 .loc 1 5970 23 view .LVU3629 10561 0022 C6F30046 ubfx r6, r6, #16, #1 10562 .LVL742: 5971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10563 .loc 1 5971 5 is_stmt 1 view .LVU3630 5971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10564 .loc 1 5971 25 is_stmt 0 view .LVU3631 10565 0026 9A69 ldr r2, [r3, #24] 10566 0028 120C lsrs r2, r2, #16 5971:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10567 .loc 1 5971 23 view .LVU3632 10568 002a 02F0FE05 and r5, r2, #254 10569 .LVL743: 5972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10570 .loc 1 5972 5 is_stmt 1 view .LVU3633 5972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10571 .loc 1 5972 25 is_stmt 0 view .LVU3634 10572 002e 9A68 ldr r2, [r3, #8] 5972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10573 .loc 1 5972 23 view .LVU3635 10574 0030 C2F30902 ubfx r2, r2, #0, #10 10575 .LVL744: 5973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 379 10576 .loc 1 5973 5 is_stmt 1 view .LVU3636 5973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10577 .loc 1 5973 25 is_stmt 0 view .LVU3637 10578 0034 DF68 ldr r7, [r3, #12] 5973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10579 .loc 1 5973 23 view .LVU3638 10580 0036 07F0FE07 and r7, r7, #254 10581 .LVL745: 5976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10582 .loc 1 5976 5 is_stmt 1 view .LVU3639 5976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10583 .loc 1 5976 19 is_stmt 0 view .LVU3640 10584 003a C168 ldr r1, [r0, #12] 10585 .LVL746: 5976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10586 .loc 1 5976 8 view .LVU3641 10587 003c 0229 cmp r1, #2 10588 003e 22D1 bne .L671 5978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10589 .loc 1 5978 7 is_stmt 1 view .LVU3642 5978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10590 .loc 1 5978 44 is_stmt 0 view .LVU3643 10591 0040 85EAD215 eor r5, r5, r2, lsr #7 10592 .LVL747: 5978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10593 .loc 1 5978 10 view .LVU3644 10594 0044 15F0060F tst r5, #6 10595 0048 10D1 bne .L672 5980:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->AddrEventCount++; 10596 .loc 1 5980 9 is_stmt 1 view .LVU3645 10597 .LVL748: 5981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10598 .loc 1 5981 9 view .LVU3646 5981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10599 .loc 1 5981 13 is_stmt 0 view .LVU3647 10600 004a 816C ldr r1, [r0, #72] 5981:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10601 .loc 1 5981 29 view .LVU3648 10602 004c 0131 adds r1, r1, #1 10603 004e 8164 str r1, [r0, #72] 5982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10604 .loc 1 5982 9 is_stmt 1 view .LVU3649 5982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10605 .loc 1 5982 17 is_stmt 0 view .LVU3650 10606 0050 816C ldr r1, [r0, #72] 5982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10607 .loc 1 5982 12 view .LVU3651 10608 0052 0229 cmp r1, #2 10609 0054 E2D1 bne .L669 5985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10610 .loc 1 5985 11 is_stmt 1 view .LVU3652 5985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10611 .loc 1 5985 32 is_stmt 0 view .LVU3653 10612 0056 0021 movs r1, #0 10613 0058 8164 str r1, [r0, #72] 5988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10614 .loc 1 5988 11 is_stmt 1 view .LVU3654 ARM GAS /tmp/cchwqEfL.s page 380 10615 005a 0820 movs r0, #8 10616 .LVL749: 5988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10617 .loc 1 5988 11 is_stmt 0 view .LVU3655 10618 005c D861 str r0, [r3, #28] 5991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10619 .loc 1 5991 11 is_stmt 1 view .LVU3656 5991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10620 .loc 1 5991 11 view .LVU3657 10621 005e 84F84010 strb r1, [r4, #64] 5991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10622 .loc 1 5991 11 view .LVU3658 5997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10623 .loc 1 5997 11 view .LVU3659 10624 0062 3146 mov r1, r6 10625 0064 2046 mov r0, r4 10626 0066 FFF7FEFF bl HAL_I2C_AddrCallback 10627 .LVL750: 5997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10628 .loc 1 5997 11 is_stmt 0 view .LVU3660 10629 006a D7E7 b .L669 10630 .LVL751: 10631 .L672: 6003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10632 .loc 1 6003 9 is_stmt 1 view .LVU3661 6006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10633 .loc 1 6006 9 view .LVU3662 10634 006c 4FF40041 mov r1, #32768 10635 0070 FFF7FEFF bl I2C_Disable_IRQ 10636 .LVL752: 6009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10637 .loc 1 6009 9 view .LVU3663 6009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10638 .loc 1 6009 9 view .LVU3664 10639 0074 0023 movs r3, #0 10640 0076 84F84030 strb r3, [r4, #64] 6009:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10641 .loc 1 6009 9 view .LVU3665 6015:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10642 .loc 1 6015 9 view .LVU3666 10643 007a 3A46 mov r2, r7 10644 007c 3146 mov r1, r6 10645 007e 2046 mov r0, r4 10646 0080 FFF7FEFF bl HAL_I2C_AddrCallback 10647 .LVL753: 10648 0084 CAE7 b .L669 10649 .LVL754: 10650 .L671: 6023:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10651 .loc 1 6023 7 view .LVU3667 10652 0086 4FF40041 mov r1, #32768 10653 008a FFF7FEFF bl I2C_Disable_IRQ 10654 .LVL755: 6026:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10655 .loc 1 6026 7 view .LVU3668 6026:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10656 .loc 1 6026 7 view .LVU3669 ARM GAS /tmp/cchwqEfL.s page 381 10657 008e 0023 movs r3, #0 10658 0090 84F84030 strb r3, [r4, #64] 6026:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10659 .loc 1 6026 7 view .LVU3670 6032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10660 .loc 1 6032 7 view .LVU3671 10661 0094 2A46 mov r2, r5 10662 0096 3146 mov r1, r6 10663 0098 2046 mov r0, r4 10664 009a FFF7FEFF bl HAL_I2C_AddrCallback 10665 .LVL756: 10666 009e BDE7 b .L669 10667 .cfi_endproc 10668 .LFE198: 10670 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits 10671 .align 1 10672 .weak HAL_I2C_ListenCpltCallback 10673 .syntax unified 10674 .thumb 10675 .thumb_func 10676 .fpu fpv5-d16 10678 HAL_I2C_ListenCpltCallback: 10679 .LVL757: 10680 .LFB182: 4793:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10681 .loc 1 4793 1 view -0 10682 .cfi_startproc 10683 @ args = 0, pretend = 0, frame = 0 10684 @ frame_needed = 0, uses_anonymous_args = 0 10685 @ link register save eliminated. 4795:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10686 .loc 1 4795 3 view .LVU3673 4800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10687 .loc 1 4800 1 is_stmt 0 view .LVU3674 10688 0000 7047 bx lr 10689 .cfi_endproc 10690 .LFE182: 10692 .section .text.I2C_ITListenCplt,"ax",%progbits 10693 .align 1 10694 .syntax unified 10695 .thumb 10696 .thumb_func 10697 .fpu fpv5-d16 10699 I2C_ITListenCplt: 10700 .LVL758: 10701 .LFB203: 6539:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset handle parameters */ 10702 .loc 1 6539 1 is_stmt 1 view -0 10703 .cfi_startproc 10704 @ args = 0, pretend = 0, frame = 0 10705 @ frame_needed = 0, uses_anonymous_args = 0 6539:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Reset handle parameters */ 10706 .loc 1 6539 1 is_stmt 0 view .LVU3676 10707 0000 10B5 push {r4, lr} 10708 .LCFI120: 10709 .cfi_def_cfa_offset 8 10710 .cfi_offset 4, -8 ARM GAS /tmp/cchwqEfL.s page 382 10711 .cfi_offset 14, -4 10712 0002 0446 mov r4, r0 6541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10713 .loc 1 6541 3 is_stmt 1 view .LVU3677 6541:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10714 .loc 1 6541 21 is_stmt 0 view .LVU3678 10715 0004 174B ldr r3, .L680 10716 0006 C362 str r3, [r0, #44] 6542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10717 .loc 1 6542 3 is_stmt 1 view .LVU3679 6542:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10718 .loc 1 6542 23 is_stmt 0 view .LVU3680 10719 0008 0023 movs r3, #0 10720 000a 0363 str r3, [r0, #48] 6543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10721 .loc 1 6543 3 is_stmt 1 view .LVU3681 6543:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10722 .loc 1 6543 15 is_stmt 0 view .LVU3682 10723 000c 2022 movs r2, #32 10724 000e 80F84120 strb r2, [r0, #65] 6544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10725 .loc 1 6544 3 is_stmt 1 view .LVU3683 6544:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10726 .loc 1 6544 14 is_stmt 0 view .LVU3684 10727 0012 80F84230 strb r3, [r0, #66] 6545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10728 .loc 1 6545 3 is_stmt 1 view .LVU3685 6545:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10729 .loc 1 6545 17 is_stmt 0 view .LVU3686 10730 0016 4363 str r3, [r0, #52] 6548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10731 .loc 1 6548 3 is_stmt 1 view .LVU3687 6548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10732 .loc 1 6548 6 is_stmt 0 view .LVU3688 10733 0018 11F0040F tst r1, #4 10734 001c 13D0 beq .L678 6551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10735 .loc 1 6551 5 is_stmt 1 view .LVU3689 6551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10736 .loc 1 6551 36 is_stmt 0 view .LVU3690 10737 001e 0368 ldr r3, [r0] 6551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10738 .loc 1 6551 46 view .LVU3691 10739 0020 5A6A ldr r2, [r3, #36] 6551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10740 .loc 1 6551 10 view .LVU3692 10741 0022 436A ldr r3, [r0, #36] 6551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10742 .loc 1 6551 21 view .LVU3693 10743 0024 1A70 strb r2, [r3] 6554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10744 .loc 1 6554 5 is_stmt 1 view .LVU3694 6554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10745 .loc 1 6554 9 is_stmt 0 view .LVU3695 10746 0026 436A ldr r3, [r0, #36] 6554:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10747 .loc 1 6554 19 view .LVU3696 ARM GAS /tmp/cchwqEfL.s page 383 10748 0028 0133 adds r3, r3, #1 10749 002a 4362 str r3, [r0, #36] 6556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10750 .loc 1 6556 5 is_stmt 1 view .LVU3697 6556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10751 .loc 1 6556 14 is_stmt 0 view .LVU3698 10752 002c 038D ldrh r3, [r0, #40] 6556:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10753 .loc 1 6556 8 view .LVU3699 10754 002e 53B1 cbz r3, .L678 6558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 10755 .loc 1 6558 7 is_stmt 1 view .LVU3700 6558:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 10756 .loc 1 6558 21 is_stmt 0 view .LVU3701 10757 0030 013B subs r3, r3, #1 10758 0032 0385 strh r3, [r0, #40] @ movhi 6559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10759 .loc 1 6559 7 is_stmt 1 view .LVU3702 6559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10760 .loc 1 6559 11 is_stmt 0 view .LVU3703 10761 0034 438D ldrh r3, [r0, #42] 10762 0036 9BB2 uxth r3, r3 6559:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10763 .loc 1 6559 22 view .LVU3704 10764 0038 013B subs r3, r3, #1 10765 003a 9BB2 uxth r3, r3 10766 003c 4385 strh r3, [r0, #42] @ movhi 6562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10767 .loc 1 6562 7 is_stmt 1 view .LVU3705 6562:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 10768 .loc 1 6562 23 is_stmt 0 view .LVU3706 10769 003e 436C ldr r3, [r0, #68] 10770 0040 43F00403 orr r3, r3, #4 10771 0044 4364 str r3, [r0, #68] 10772 .L678: 6567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10773 .loc 1 6567 3 is_stmt 1 view .LVU3707 10774 0046 48F20301 movw r1, #32771 10775 .LVL759: 6567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10776 .loc 1 6567 3 is_stmt 0 view .LVU3708 10777 004a 2046 mov r0, r4 10778 .LVL760: 6567:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10779 .loc 1 6567 3 view .LVU3709 10780 004c FFF7FEFF bl I2C_Disable_IRQ 10781 .LVL761: 6570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10782 .loc 1 6570 3 is_stmt 1 view .LVU3710 10783 0050 2368 ldr r3, [r4] 10784 0052 1022 movs r2, #16 10785 0054 DA61 str r2, [r3, #28] 6573:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10786 .loc 1 6573 3 view .LVU3711 6573:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10787 .loc 1 6573 3 view .LVU3712 10788 0056 0023 movs r3, #0 ARM GAS /tmp/cchwqEfL.s page 384 10789 0058 84F84030 strb r3, [r4, #64] 6573:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10790 .loc 1 6573 3 view .LVU3713 6579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10791 .loc 1 6579 3 view .LVU3714 10792 005c 2046 mov r0, r4 10793 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback 10794 .LVL762: 6581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10795 .loc 1 6581 1 is_stmt 0 view .LVU3715 10796 0062 10BD pop {r4, pc} 10797 .LVL763: 10798 .L681: 6581:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10799 .loc 1 6581 1 view .LVU3716 10800 .align 2 10801 .L680: 10802 0064 0000FFFF .word -65536 10803 .cfi_endproc 10804 .LFE203: 10806 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits 10807 .align 1 10808 .weak HAL_I2C_MemTxCpltCallback 10809 .syntax unified 10810 .thumb 10811 .thumb_func 10812 .fpu fpv5-d16 10814 HAL_I2C_MemTxCpltCallback: 10815 .LVL764: 10816 .LFB183: 4809:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10817 .loc 1 4809 1 is_stmt 1 view -0 10818 .cfi_startproc 10819 @ args = 0, pretend = 0, frame = 0 10820 @ frame_needed = 0, uses_anonymous_args = 0 10821 @ link register save eliminated. 4811:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10822 .loc 1 4811 3 view .LVU3718 4816:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10823 .loc 1 4816 1 is_stmt 0 view .LVU3719 10824 0000 7047 bx lr 10825 .cfi_endproc 10826 .LFE183: 10828 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits 10829 .align 1 10830 .weak HAL_I2C_MemRxCpltCallback 10831 .syntax unified 10832 .thumb 10833 .thumb_func 10834 .fpu fpv5-d16 10836 HAL_I2C_MemRxCpltCallback: 10837 .LVL765: 10838 .LFB184: 4825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10839 .loc 1 4825 1 is_stmt 1 view -0 10840 .cfi_startproc 10841 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/cchwqEfL.s page 385 10842 @ frame_needed = 0, uses_anonymous_args = 0 10843 @ link register save eliminated. 4827:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10844 .loc 1 4827 3 view .LVU3721 4832:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10845 .loc 1 4832 1 is_stmt 0 view .LVU3722 10846 0000 7047 bx lr 10847 .cfi_endproc 10848 .LFE184: 10850 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits 10851 .align 1 10852 .weak HAL_I2C_ErrorCallback 10853 .syntax unified 10854 .thumb 10855 .thumb_func 10856 .fpu fpv5-d16 10858 HAL_I2C_ErrorCallback: 10859 .LVL766: 10860 .LFB185: 4841:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10861 .loc 1 4841 1 is_stmt 1 view -0 10862 .cfi_startproc 10863 @ args = 0, pretend = 0, frame = 0 10864 @ frame_needed = 0, uses_anonymous_args = 0 10865 @ link register save eliminated. 4843:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10866 .loc 1 4843 3 view .LVU3724 4848:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10867 .loc 1 4848 1 is_stmt 0 view .LVU3725 10868 0000 7047 bx lr 10869 .cfi_endproc 10870 .LFE185: 10872 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits 10873 .align 1 10874 .weak HAL_I2C_AbortCpltCallback 10875 .syntax unified 10876 .thumb 10877 .thumb_func 10878 .fpu fpv5-d16 10880 HAL_I2C_AbortCpltCallback: 10881 .LVL767: 10882 .LFB186: 4857:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10883 .loc 1 4857 1 is_stmt 1 view -0 10884 .cfi_startproc 10885 @ args = 0, pretend = 0, frame = 0 10886 @ frame_needed = 0, uses_anonymous_args = 0 10887 @ link register save eliminated. 4859:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10888 .loc 1 4859 3 view .LVU3727 4864:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10889 .loc 1 4864 1 is_stmt 0 view .LVU3728 10890 0000 7047 bx lr 10891 .cfi_endproc 10892 .LFE186: 10894 .section .text.I2C_TreatErrorCallback,"ax",%progbits 10895 .align 1 ARM GAS /tmp/cchwqEfL.s page 386 10896 .syntax unified 10897 .thumb 10898 .thumb_func 10899 .fpu fpv5-d16 10901 I2C_TreatErrorCallback: 10902 .LVL768: 10903 .LFB205: 6721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10904 .loc 1 6721 1 is_stmt 1 view -0 10905 .cfi_startproc 10906 @ args = 0, pretend = 0, frame = 0 10907 @ frame_needed = 0, uses_anonymous_args = 0 6721:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10908 .loc 1 6721 1 is_stmt 0 view .LVU3730 10909 0000 08B5 push {r3, lr} 10910 .LCFI121: 10911 .cfi_def_cfa_offset 8 10912 .cfi_offset 3, -8 10913 .cfi_offset 14, -4 6722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10914 .loc 1 6722 3 is_stmt 1 view .LVU3731 6722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10915 .loc 1 6722 11 is_stmt 0 view .LVU3732 10916 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10917 0006 DBB2 uxtb r3, r3 6722:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 10918 .loc 1 6722 6 view .LVU3733 10919 0008 602B cmp r3, #96 10920 000a 06D0 beq .L690 6739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10921 .loc 1 6739 5 is_stmt 1 view .LVU3734 6739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10922 .loc 1 6739 25 is_stmt 0 view .LVU3735 10923 000c 0023 movs r3, #0 10924 000e 0363 str r3, [r0, #48] 6742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10925 .loc 1 6742 5 is_stmt 1 view .LVU3736 6742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10926 .loc 1 6742 5 view .LVU3737 10927 0010 80F84030 strb r3, [r0, #64] 6742:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10928 .loc 1 6742 5 view .LVU3738 6748:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10929 .loc 1 6748 5 view .LVU3739 10930 0014 FFF7FEFF bl HAL_I2C_ErrorCallback 10931 .LVL769: 10932 .L686: 6751:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10933 .loc 1 6751 1 is_stmt 0 view .LVU3740 10934 0018 08BD pop {r3, pc} 10935 .LVL770: 10936 .L690: 6724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10937 .loc 1 6724 5 is_stmt 1 view .LVU3741 6724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10938 .loc 1 6724 17 is_stmt 0 view .LVU3742 10939 001a 2023 movs r3, #32 ARM GAS /tmp/cchwqEfL.s page 387 10940 001c 80F84130 strb r3, [r0, #65] 6725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10941 .loc 1 6725 5 is_stmt 1 view .LVU3743 6725:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10942 .loc 1 6725 25 is_stmt 0 view .LVU3744 10943 0020 0023 movs r3, #0 10944 0022 0363 str r3, [r0, #48] 6728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10945 .loc 1 6728 5 is_stmt 1 view .LVU3745 6728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10946 .loc 1 6728 5 view .LVU3746 10947 0024 80F84030 strb r3, [r0, #64] 6728:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10948 .loc 1 6728 5 view .LVU3747 6734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10949 .loc 1 6734 5 view .LVU3748 10950 0028 FFF7FEFF bl HAL_I2C_AbortCpltCallback 10951 .LVL771: 6734:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10952 .loc 1 6734 5 is_stmt 0 view .LVU3749 10953 002c F4E7 b .L686 10954 .cfi_endproc 10955 .LFE205: 10957 .section .text.I2C_ITError,"ax",%progbits 10958 .align 1 10959 .syntax unified 10960 .thumb 10961 .thumb_func 10962 .fpu fpv5-d16 10964 I2C_ITError: 10965 .LVL772: 10966 .LFB204: 6590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10967 .loc 1 6590 1 is_stmt 1 view -0 10968 .cfi_startproc 10969 @ args = 0, pretend = 0, frame = 0 10970 @ frame_needed = 0, uses_anonymous_args = 0 6590:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10971 .loc 1 6590 1 is_stmt 0 view .LVU3751 10972 0000 10B5 push {r4, lr} 10973 .LCFI122: 10974 .cfi_def_cfa_offset 8 10975 .cfi_offset 4, -8 10976 .cfi_offset 14, -4 10977 0002 0446 mov r4, r0 6591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10978 .loc 1 6591 3 is_stmt 1 view .LVU3752 6591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10979 .loc 1 6591 24 is_stmt 0 view .LVU3753 10980 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10981 .LVL773: 6593:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10982 .loc 1 6593 3 is_stmt 1 view .LVU3754 6596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10983 .loc 1 6596 3 view .LVU3755 6596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10984 .loc 1 6596 23 is_stmt 0 view .LVU3756 ARM GAS /tmp/cchwqEfL.s page 388 10985 0008 0020 movs r0, #0 10986 .LVL774: 6596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10987 .loc 1 6596 23 view .LVU3757 10988 000a 84F84200 strb r0, [r4, #66] 6597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = 0U; 10989 .loc 1 6597 3 is_stmt 1 view .LVU3758 6597:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount = 0U; 10990 .loc 1 6597 23 is_stmt 0 view .LVU3759 10991 000e 454A ldr r2, .L704 10992 0010 E262 str r2, [r4, #44] 6598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10993 .loc 1 6598 3 is_stmt 1 view .LVU3760 6598:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10994 .loc 1 6598 23 is_stmt 0 view .LVU3761 10995 0012 6085 strh r0, [r4, #42] @ movhi 6601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10996 .loc 1 6601 3 is_stmt 1 view .LVU3762 6601:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 10997 .loc 1 6601 19 is_stmt 0 view .LVU3763 10998 0014 626C ldr r2, [r4, #68] 10999 0016 0A43 orrs r2, r2, r1 11000 0018 6264 str r2, [r4, #68] 6604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 11001 .loc 1 6604 3 is_stmt 1 view .LVU3764 6605:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 11002 .loc 1 6605 50 is_stmt 0 view .LVU3765 11003 001a 283B subs r3, r3, #40 11004 .LVL775: 6605:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 11005 .loc 1 6605 50 view .LVU3766 11006 001c DBB2 uxtb r3, r3 6604:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 11007 .loc 1 6604 6 view .LVU3767 11008 001e 022B cmp r3, #2 11009 0020 2DD8 bhi .L692 6609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11010 .loc 1 6609 5 is_stmt 1 view .LVU3768 11011 0022 0321 movs r1, #3 11012 .LVL776: 6609:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11013 .loc 1 6609 5 is_stmt 0 view .LVU3769 11014 0024 2046 mov r0, r4 11015 0026 FFF7FEFF bl I2C_Disable_IRQ 11016 .LVL777: 6612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 11017 .loc 1 6612 5 is_stmt 1 view .LVU3770 6612:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 11018 .loc 1 6612 25 is_stmt 0 view .LVU3771 11019 002a 2823 movs r3, #40 11020 002c 84F84130 strb r3, [r4, #65] 6613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11021 .loc 1 6613 5 is_stmt 1 view .LVU3772 6613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11022 .loc 1 6613 25 is_stmt 0 view .LVU3773 11023 0030 3D4B ldr r3, .L704+4 11024 0032 6363 str r3, [r4, #52] ARM GAS /tmp/cchwqEfL.s page 389 11025 .L693: 6648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11026 .loc 1 6648 3 is_stmt 1 view .LVU3774 6648:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11027 .loc 1 6648 20 is_stmt 0 view .LVU3775 11028 0034 236B ldr r3, [r4, #48] 11029 .LVL778: 6650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11030 .loc 1 6650 3 is_stmt 1 view .LVU3776 6650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11031 .loc 1 6650 12 is_stmt 0 view .LVU3777 11032 0036 A26B ldr r2, [r4, #56] 6650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11033 .loc 1 6650 6 view .LVU3778 11034 0038 002A cmp r2, #0 11035 003a 49D0 beq .L696 6650:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 11036 .loc 1 6650 30 discriminator 1 view .LVU3779 11037 003c 212B cmp r3, #33 11038 003e 18BF it ne 11039 0040 112B cmpne r3, #17 11040 0042 45D1 bne .L696 6653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11041 .loc 1 6653 5 is_stmt 1 view .LVU3780 6653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11042 .loc 1 6653 14 is_stmt 0 view .LVU3781 11043 0044 2368 ldr r3, [r4] 11044 .LVL779: 6653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11045 .loc 1 6653 24 view .LVU3782 11046 0046 1A68 ldr r2, [r3] 6653:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11047 .loc 1 6653 8 view .LVU3783 11048 0048 12F4804F tst r2, #16384 11049 004c 03D0 beq .L697 6655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11050 .loc 1 6655 7 is_stmt 1 view .LVU3784 6655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11051 .loc 1 6655 27 is_stmt 0 view .LVU3785 11052 004e 1A68 ldr r2, [r3] 11053 0050 22F48042 bic r2, r2, #16384 11054 0054 1A60 str r2, [r3] 11055 .L697: 6658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11056 .loc 1 6658 5 is_stmt 1 view .LVU3786 6658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11057 .loc 1 6658 9 is_stmt 0 view .LVU3787 11058 0056 A06B ldr r0, [r4, #56] 11059 0058 FFF7FEFF bl HAL_DMA_GetState 11060 .LVL780: 6658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11061 .loc 1 6658 8 view .LVU3788 11062 005c 0128 cmp r0, #1 11063 005e 33D0 beq .L698 6662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11064 .loc 1 6662 7 is_stmt 1 view .LVU3789 6662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 390 11065 .loc 1 6662 11 is_stmt 0 view .LVU3790 11066 0060 A36B ldr r3, [r4, #56] 6662:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11067 .loc 1 6662 39 view .LVU3791 11068 0062 324A ldr r2, .L704+8 11069 0064 1A65 str r2, [r3, #80] 6665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11070 .loc 1 6665 7 is_stmt 1 view .LVU3792 6665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11071 .loc 1 6665 7 view .LVU3793 11072 0066 0023 movs r3, #0 11073 0068 84F84030 strb r3, [r4, #64] 6665:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11074 .loc 1 6665 7 view .LVU3794 6668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11075 .loc 1 6668 7 view .LVU3795 6668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11076 .loc 1 6668 11 is_stmt 0 view .LVU3796 11077 006c A06B ldr r0, [r4, #56] 11078 006e FFF7FEFF bl HAL_DMA_Abort_IT 11079 .LVL781: 6668:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11080 .loc 1 6668 10 view .LVU3797 11081 0072 0028 cmp r0, #0 11082 0074 55D0 beq .L691 6671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11083 .loc 1 6671 9 is_stmt 1 view .LVU3798 6671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11084 .loc 1 6671 13 is_stmt 0 view .LVU3799 11085 0076 A06B ldr r0, [r4, #56] 6671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11086 .loc 1 6671 21 view .LVU3800 11087 0078 036D ldr r3, [r0, #80] 6671:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11088 .loc 1 6671 9 view .LVU3801 11089 007a 9847 blx r3 11090 .LVL782: 11091 007c 51E0 b .L691 11092 .LVL783: 11093 .L692: 6618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11094 .loc 1 6618 5 is_stmt 1 view .LVU3802 11095 007e 48F20301 movw r1, #32771 11096 .LVL784: 6618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11097 .loc 1 6618 5 is_stmt 0 view .LVU3803 11098 0082 2046 mov r0, r4 11099 0084 FFF7FEFF bl I2C_Disable_IRQ 11100 .LVL785: 6621:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11101 .loc 1 6621 5 is_stmt 1 view .LVU3804 11102 0088 2046 mov r0, r4 11103 008a FFF7FEFF bl I2C_Flush_TXDR 11104 .LVL786: 6625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11105 .loc 1 6625 5 view .LVU3805 6625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/cchwqEfL.s page 391 11106 .loc 1 6625 13 is_stmt 0 view .LVU3806 11107 008e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11108 0092 DBB2 uxtb r3, r3 6625:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11109 .loc 1 6625 8 view .LVU3807 11110 0094 602B cmp r3, #96 11111 0096 14D0 beq .L694 6628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11112 .loc 1 6628 7 is_stmt 1 view .LVU3808 6628:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11113 .loc 1 6628 27 is_stmt 0 view .LVU3809 11114 0098 2023 movs r3, #32 11115 009a 84F84130 strb r3, [r4, #65] 6631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11116 .loc 1 6631 7 is_stmt 1 view .LVU3810 6631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11117 .loc 1 6631 11 is_stmt 0 view .LVU3811 11118 009e 2368 ldr r3, [r4] 11119 00a0 9A69 ldr r2, [r3, #24] 6631:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11120 .loc 1 6631 10 view .LVU3812 11121 00a2 12F0200F tst r2, #32 11122 00a6 0CD0 beq .L694 6633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11123 .loc 1 6633 9 is_stmt 1 view .LVU3813 6633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11124 .loc 1 6633 13 is_stmt 0 view .LVU3814 11125 00a8 9A69 ldr r2, [r3, #24] 6633:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11126 .loc 1 6633 12 view .LVU3815 11127 00aa 12F0100F tst r2, #16 11128 00ae 05D0 beq .L695 6635:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 11129 .loc 1 6635 11 is_stmt 1 view .LVU3816 11130 00b0 1022 movs r2, #16 11131 00b2 DA61 str r2, [r3, #28] 6636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11132 .loc 1 6636 11 view .LVU3817 6636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11133 .loc 1 6636 27 is_stmt 0 view .LVU3818 11134 00b4 636C ldr r3, [r4, #68] 11135 00b6 43F00403 orr r3, r3, #4 11136 00ba 6364 str r3, [r4, #68] 11137 .L695: 6640:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11138 .loc 1 6640 9 is_stmt 1 view .LVU3819 11139 00bc 2368 ldr r3, [r4] 11140 00be 2022 movs r2, #32 11141 00c0 DA61 str r2, [r3, #28] 11142 .L694: 6644:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11143 .loc 1 6644 5 view .LVU3820 6644:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11144 .loc 1 6644 25 is_stmt 0 view .LVU3821 11145 00c2 0023 movs r3, #0 11146 00c4 6363 str r3, [r4, #52] 11147 00c6 B5E7 b .L693 ARM GAS /tmp/cchwqEfL.s page 392 11148 .L698: 6676:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11149 .loc 1 6676 7 is_stmt 1 view .LVU3822 11150 00c8 2046 mov r0, r4 11151 00ca FFF7FEFF bl I2C_TreatErrorCallback 11152 .LVL787: 11153 00ce 28E0 b .L691 11154 .LVL788: 11155 .L696: 6680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11156 .loc 1 6680 8 view .LVU3823 6680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11157 .loc 1 6680 17 is_stmt 0 view .LVU3824 11158 00d0 E26B ldr r2, [r4, #60] 6680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11159 .loc 1 6680 11 view .LVU3825 11160 00d2 1AB3 cbz r2, .L700 6680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11161 .loc 1 6680 35 discriminator 1 view .LVU3826 11162 00d4 222B cmp r3, #34 11163 00d6 18BF it ne 11164 00d8 122B cmpne r3, #18 11165 00da 1FD1 bne .L700 6683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11166 .loc 1 6683 5 is_stmt 1 view .LVU3827 6683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11167 .loc 1 6683 14 is_stmt 0 view .LVU3828 11168 00dc 2368 ldr r3, [r4] 11169 .LVL789: 6683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11170 .loc 1 6683 24 view .LVU3829 11171 00de 1A68 ldr r2, [r3] 6683:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11172 .loc 1 6683 8 view .LVU3830 11173 00e0 12F4004F tst r2, #32768 11174 00e4 03D0 beq .L701 6685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11175 .loc 1 6685 7 is_stmt 1 view .LVU3831 6685:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11176 .loc 1 6685 27 is_stmt 0 view .LVU3832 11177 00e6 1A68 ldr r2, [r3] 11178 00e8 22F40042 bic r2, r2, #32768 11179 00ec 1A60 str r2, [r3] 11180 .L701: 6688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11181 .loc 1 6688 5 is_stmt 1 view .LVU3833 6688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11182 .loc 1 6688 9 is_stmt 0 view .LVU3834 11183 00ee E06B ldr r0, [r4, #60] 11184 00f0 FFF7FEFF bl HAL_DMA_GetState 11185 .LVL790: 6688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11186 .loc 1 6688 8 view .LVU3835 11187 00f4 0128 cmp r0, #1 11188 00f6 0DD0 beq .L702 6692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11189 .loc 1 6692 7 is_stmt 1 view .LVU3836 ARM GAS /tmp/cchwqEfL.s page 393 6692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11190 .loc 1 6692 11 is_stmt 0 view .LVU3837 11191 00f8 E36B ldr r3, [r4, #60] 6692:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11192 .loc 1 6692 39 view .LVU3838 11193 00fa 0C4A ldr r2, .L704+8 11194 00fc 1A65 str r2, [r3, #80] 6695:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11195 .loc 1 6695 7 is_stmt 1 view .LVU3839 6695:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11196 .loc 1 6695 7 view .LVU3840 11197 00fe 0023 movs r3, #0 11198 0100 84F84030 strb r3, [r4, #64] 6695:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11199 .loc 1 6695 7 view .LVU3841 6698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11200 .loc 1 6698 7 view .LVU3842 6698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11201 .loc 1 6698 11 is_stmt 0 view .LVU3843 11202 0104 E06B ldr r0, [r4, #60] 11203 0106 FFF7FEFF bl HAL_DMA_Abort_IT 11204 .LVL791: 6698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11205 .loc 1 6698 10 view .LVU3844 11206 010a 50B1 cbz r0, .L691 6701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11207 .loc 1 6701 9 is_stmt 1 view .LVU3845 6701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11208 .loc 1 6701 13 is_stmt 0 view .LVU3846 11209 010c E06B ldr r0, [r4, #60] 6701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11210 .loc 1 6701 21 view .LVU3847 11211 010e 036D ldr r3, [r0, #80] 6701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11212 .loc 1 6701 9 view .LVU3848 11213 0110 9847 blx r3 11214 .LVL792: 11215 0112 06E0 b .L691 11216 .L702: 6706:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11217 .loc 1 6706 7 is_stmt 1 view .LVU3849 11218 0114 2046 mov r0, r4 11219 0116 FFF7FEFF bl I2C_TreatErrorCallback 11220 .LVL793: 11221 011a 02E0 b .L691 11222 .LVL794: 11223 .L700: 6711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11224 .loc 1 6711 5 view .LVU3850 11225 011c 2046 mov r0, r4 11226 011e FFF7FEFF bl I2C_TreatErrorCallback 11227 .LVL795: 11228 .L691: 6713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11229 .loc 1 6713 1 is_stmt 0 view .LVU3851 11230 0122 10BD pop {r4, pc} 11231 .LVL796: ARM GAS /tmp/cchwqEfL.s page 394 11232 .L705: 6713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11233 .loc 1 6713 1 view .LVU3852 11234 .align 2 11235 .L704: 11236 0124 0000FFFF .word -65536 11237 0128 00000000 .word I2C_Slave_ISR_IT 11238 012c 00000000 .word I2C_DMAAbort 11239 .cfi_endproc 11240 .LFE204: 11242 .section .text.I2C_ITSlaveCplt,"ax",%progbits 11243 .align 1 11244 .syntax unified 11245 .thumb 11246 .thumb_func 11247 .fpu fpv5-d16 11249 I2C_ITSlaveCplt: 11250 .LVL797: 11251 .LFB202: 6323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11252 .loc 1 6323 1 is_stmt 1 view -0 11253 .cfi_startproc 11254 @ args = 0, pretend = 0, frame = 0 11255 @ 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); 11256 .loc 1 6323 1 is_stmt 0 view .LVU3854 11257 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 11258 .LCFI123: 11259 .cfi_def_cfa_offset 24 11260 .cfi_offset 3, -24 11261 .cfi_offset 4, -20 11262 .cfi_offset 5, -16 11263 .cfi_offset 6, -12 11264 .cfi_offset 7, -8 11265 .cfi_offset 14, -4 11266 0002 0446 mov r4, r0 11267 0004 0D46 mov r5, r1 6324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11268 .loc 1 6324 3 is_stmt 1 view .LVU3855 6324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11269 .loc 1 6324 26 is_stmt 0 view .LVU3856 11270 0006 0268 ldr r2, [r0] 6324:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11271 .loc 1 6324 12 view .LVU3857 11272 0008 1668 ldr r6, [r2] 11273 .LVL798: 6325:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11274 .loc 1 6325 3 is_stmt 1 view .LVU3858 6326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11275 .loc 1 6326 3 view .LVU3859 6326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11276 .loc 1 6326 12 is_stmt 0 view .LVU3860 11277 000a C76A ldr r7, [r0, #44] 11278 .LVL799: 6327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11279 .loc 1 6327 3 is_stmt 1 view .LVU3861 6327:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 395 11280 .loc 1 6327 24 is_stmt 0 view .LVU3862 11281 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11282 0010 DBB2 uxtb r3, r3 11283 .LVL800: 6330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11284 .loc 1 6330 3 is_stmt 1 view .LVU3863 11285 0012 2021 movs r1, #32 11286 .LVL801: 6330:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11287 .loc 1 6330 3 is_stmt 0 view .LVU3864 11288 0014 D161 str r1, [r2, #28] 6333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11289 .loc 1 6333 3 is_stmt 1 view .LVU3865 6333:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11290 .loc 1 6333 6 is_stmt 0 view .LVU3866 11291 0016 292B cmp r3, #41 11292 0018 18BF it ne 11293 001a 212B cmpne r3, #33 11294 001c 74D0 beq .L723 6338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11295 .loc 1 6338 8 is_stmt 1 view .LVU3867 6338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11296 .loc 1 6338 11 is_stmt 0 view .LVU3868 11297 001e 2A2B cmp r3, #42 11298 0020 18BF it ne 11299 0022 222B cmpne r3, #34 11300 0024 77D0 beq .L724 6343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11301 .loc 1 6343 8 is_stmt 1 view .LVU3869 6343:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11302 .loc 1 6343 11 is_stmt 0 view .LVU3870 11303 0026 282B cmp r3, #40 11304 0028 7CD0 beq .L725 11305 .LVL802: 11306 .L708: 6351:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11307 .loc 1 6351 3 is_stmt 1 view .LVU3871 6354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11308 .loc 1 6354 3 view .LVU3872 6354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11309 .loc 1 6354 7 is_stmt 0 view .LVU3873 11310 002a 2268 ldr r2, [r4] 6354:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11311 .loc 1 6354 23 view .LVU3874 11312 002c 5368 ldr r3, [r2, #4] 11313 002e 43F40043 orr r3, r3, #32768 11314 0032 5360 str r3, [r2, #4] 6357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11315 .loc 1 6357 3 is_stmt 1 view .LVU3875 11316 0034 2268 ldr r2, [r4] 11317 0036 5368 ldr r3, [r2, #4] 11318 0038 23F0FF73 bic r3, r3, #33423360 11319 003c 23F48B33 bic r3, r3, #71168 11320 0040 23F4FF73 bic r3, r3, #510 11321 0044 23F00103 bic r3, r3, #1 11322 0048 5360 str r3, [r2, #4] 6360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 396 11323 .loc 1 6360 3 view .LVU3876 11324 004a 2046 mov r0, r4 11325 004c FFF7FEFF bl I2C_Flush_TXDR 11326 .LVL803: 6363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11327 .loc 1 6363 3 view .LVU3877 6363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11328 .loc 1 6363 6 is_stmt 0 view .LVU3878 11329 0050 16F4804F tst r6, #16384 11330 0054 6DD0 beq .L710 6366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11331 .loc 1 6366 5 is_stmt 1 view .LVU3879 6366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11332 .loc 1 6366 9 is_stmt 0 view .LVU3880 11333 0056 2268 ldr r2, [r4] 6366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11334 .loc 1 6366 25 view .LVU3881 11335 0058 1368 ldr r3, [r2] 11336 005a 23F48043 bic r3, r3, #16384 11337 005e 1360 str r3, [r2] 6368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11338 .loc 1 6368 5 is_stmt 1 view .LVU3882 6368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11339 .loc 1 6368 13 is_stmt 0 view .LVU3883 11340 0060 A36B ldr r3, [r4, #56] 6368:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11341 .loc 1 6368 8 view .LVU3884 11342 0062 1BB1 cbz r3, .L711 6370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11343 .loc 1 6370 7 is_stmt 1 view .LVU3885 6370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11344 .loc 1 6370 35 is_stmt 0 view .LVU3886 11345 0064 1B68 ldr r3, [r3] 11346 0066 5B68 ldr r3, [r3, #4] 6370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11347 .loc 1 6370 25 view .LVU3887 11348 0068 9BB2 uxth r3, r3 6370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11349 .loc 1 6370 23 view .LVU3888 11350 006a 6385 strh r3, [r4, #42] @ movhi 11351 .L711: 6386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11352 .loc 1 6386 3 is_stmt 1 view .LVU3889 6389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11353 .loc 1 6389 3 view .LVU3890 6389:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11354 .loc 1 6389 6 is_stmt 0 view .LVU3891 11355 006c 15F0040F tst r5, #4 11356 0070 11D0 beq .L712 6392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11357 .loc 1 6392 5 is_stmt 1 view .LVU3892 6392:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11358 .loc 1 6392 16 is_stmt 0 view .LVU3893 11359 0072 25F00405 bic r5, r5, #4 11360 .LVL804: 6395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11361 .loc 1 6395 5 is_stmt 1 view .LVU3894 ARM GAS /tmp/cchwqEfL.s page 397 6395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11362 .loc 1 6395 36 is_stmt 0 view .LVU3895 11363 0076 2368 ldr r3, [r4] 6395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11364 .loc 1 6395 46 view .LVU3896 11365 0078 5A6A ldr r2, [r3, #36] 6395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11366 .loc 1 6395 10 view .LVU3897 11367 007a 636A ldr r3, [r4, #36] 6395:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11368 .loc 1 6395 21 view .LVU3898 11369 007c 1A70 strb r2, [r3] 6398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11370 .loc 1 6398 5 is_stmt 1 view .LVU3899 6398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11371 .loc 1 6398 9 is_stmt 0 view .LVU3900 11372 007e 636A ldr r3, [r4, #36] 6398:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11373 .loc 1 6398 19 view .LVU3901 11374 0080 0133 adds r3, r3, #1 11375 0082 6362 str r3, [r4, #36] 6400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11376 .loc 1 6400 5 is_stmt 1 view .LVU3902 6400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11377 .loc 1 6400 14 is_stmt 0 view .LVU3903 11378 0084 238D ldrh r3, [r4, #40] 6400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11379 .loc 1 6400 8 view .LVU3904 11380 0086 33B1 cbz r3, .L712 6402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 11381 .loc 1 6402 7 is_stmt 1 view .LVU3905 6402:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 11382 .loc 1 6402 21 is_stmt 0 view .LVU3906 11383 0088 013B subs r3, r3, #1 11384 008a 2385 strh r3, [r4, #40] @ movhi 6403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11385 .loc 1 6403 7 is_stmt 1 view .LVU3907 6403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11386 .loc 1 6403 11 is_stmt 0 view .LVU3908 11387 008c 638D ldrh r3, [r4, #42] 11388 008e 9BB2 uxth r3, r3 6403:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11389 .loc 1 6403 22 view .LVU3909 11390 0090 013B subs r3, r3, #1 11391 0092 9BB2 uxth r3, r3 11392 0094 6385 strh r3, [r4, #42] @ movhi 11393 .L712: 6408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11394 .loc 1 6408 3 is_stmt 1 view .LVU3910 6408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11395 .loc 1 6408 11 is_stmt 0 view .LVU3911 11396 0096 638D ldrh r3, [r4, #42] 11397 0098 9BB2 uxth r3, r3 6408:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11398 .loc 1 6408 6 view .LVU3912 11399 009a 1BB1 cbz r3, .L713 6411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/cchwqEfL.s page 398 11400 .loc 1 6411 5 is_stmt 1 view .LVU3913 6411:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11401 .loc 1 6411 21 is_stmt 0 view .LVU3914 11402 009c 636C ldr r3, [r4, #68] 11403 009e 43F00403 orr r3, r3, #4 11404 00a2 6364 str r3, [r4, #68] 11405 .L713: 6414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11406 .loc 1 6414 3 is_stmt 1 view .LVU3915 6414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11407 .loc 1 6414 6 is_stmt 0 view .LVU3916 11408 00a4 15F0100F tst r5, #16 11409 00a8 13D0 beq .L714 6414:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11410 .loc 1 6414 58 discriminator 1 view .LVU3917 11411 00aa 16F0100F tst r6, #16 11412 00ae 10D0 beq .L714 6421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11413 .loc 1 6421 5 is_stmt 1 view .LVU3918 6421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11414 .loc 1 6421 13 is_stmt 0 view .LVU3919 11415 00b0 638D ldrh r3, [r4, #42] 11416 00b2 9BB2 uxth r3, r3 6421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11417 .loc 1 6421 8 view .LVU3920 11418 00b4 002B cmp r3, #0 11419 00b6 61D1 bne .L715 6423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11420 .loc 1 6423 7 is_stmt 1 view .LVU3921 6423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11421 .loc 1 6423 16 is_stmt 0 view .LVU3922 11422 00b8 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11423 00bc 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 11424 .loc 1 6423 10 view .LVU3923 11425 00be 282B cmp r3, #40 11426 00c0 47D0 beq .L726 11427 .L716: 6430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11428 .loc 1 6430 12 is_stmt 1 view .LVU3924 6430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11429 .loc 1 6430 21 is_stmt 0 view .LVU3925 11430 00c2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11431 00c6 DBB2 uxtb r3, r3 6430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11432 .loc 1 6430 15 view .LVU3926 11433 00c8 292B cmp r3, #41 11434 00ca 4AD0 beq .L727 11435 .L717: 6445:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11436 .loc 1 6445 9 is_stmt 1 view .LVU3927 11437 00cc 2368 ldr r3, [r4] 11438 00ce 1022 movs r2, #16 11439 00d0 DA61 str r2, [r3, #28] 11440 .L714: 6465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 11441 .loc 1 6465 3 view .LVU3928 ARM GAS /tmp/cchwqEfL.s page 399 6465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferISR = NULL; 11442 .loc 1 6465 14 is_stmt 0 view .LVU3929 11443 00d2 0023 movs r3, #0 11444 00d4 84F84230 strb r3, [r4, #66] 6466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11445 .loc 1 6466 3 is_stmt 1 view .LVU3930 6466:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11446 .loc 1 6466 17 is_stmt 0 view .LVU3931 11447 00d8 6363 str r3, [r4, #52] 6468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11448 .loc 1 6468 3 is_stmt 1 view .LVU3932 6468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11449 .loc 1 6468 11 is_stmt 0 view .LVU3933 11450 00da 636C ldr r3, [r4, #68] 6468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11451 .loc 1 6468 6 view .LVU3934 11452 00dc 002B cmp r3, #0 11453 00de 5ED1 bne .L728 6480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11454 .loc 1 6480 8 is_stmt 1 view .LVU3935 6480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11455 .loc 1 6480 16 is_stmt 0 view .LVU3936 11456 00e0 E36A ldr r3, [r4, #44] 6480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11457 .loc 1 6480 11 view .LVU3937 11458 00e2 13F5803F cmn r3, #65536 11459 00e6 68D1 bne .L729 6500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11460 .loc 1 6500 8 is_stmt 1 view .LVU3938 6500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11461 .loc 1 6500 16 is_stmt 0 view .LVU3939 11462 00e8 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11463 00ec DBB2 uxtb r3, r3 6500:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11464 .loc 1 6500 11 view .LVU3940 11465 00ee 222B cmp r3, #34 11466 00f0 73D0 beq .L730 6517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11467 .loc 1 6517 5 is_stmt 1 view .LVU3941 6517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11468 .loc 1 6517 17 is_stmt 0 view .LVU3942 11469 00f2 2023 movs r3, #32 11470 00f4 84F84130 strb r3, [r4, #65] 6518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11471 .loc 1 6518 5 is_stmt 1 view .LVU3943 6518:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11472 .loc 1 6518 25 is_stmt 0 view .LVU3944 11473 00f8 0023 movs r3, #0 11474 00fa 2363 str r3, [r4, #48] 6521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11475 .loc 1 6521 5 is_stmt 1 view .LVU3945 6521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11476 .loc 1 6521 5 view .LVU3946 11477 00fc 84F84030 strb r3, [r4, #64] 6521:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11478 .loc 1 6521 5 view .LVU3947 6527:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ ARM GAS /tmp/cchwqEfL.s page 400 11479 .loc 1 6527 5 view .LVU3948 11480 0100 2046 mov r0, r4 11481 0102 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 11482 .LVL805: 6530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11483 .loc 1 6530 1 is_stmt 0 view .LVU3949 11484 0106 67E0 b .L706 11485 .LVL806: 11486 .L723: 6335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 11487 .loc 1 6335 5 is_stmt 1 view .LVU3950 11488 0108 48F20101 movw r1, #32769 11489 010c FFF7FEFF bl I2C_Disable_IRQ 11490 .LVL807: 6336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11491 .loc 1 6336 5 view .LVU3951 6336:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11492 .loc 1 6336 25 is_stmt 0 view .LVU3952 11493 0110 2123 movs r3, #33 11494 0112 2363 str r3, [r4, #48] 11495 0114 89E7 b .L708 11496 .LVL808: 11497 .L724: 6340:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 11498 .loc 1 6340 5 is_stmt 1 view .LVU3953 11499 0116 48F20201 movw r1, #32770 11500 011a FFF7FEFF bl I2C_Disable_IRQ 11501 .LVL809: 6341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11502 .loc 1 6341 5 view .LVU3954 6341:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11503 .loc 1 6341 25 is_stmt 0 view .LVU3955 11504 011e 2223 movs r3, #34 11505 0120 2363 str r3, [r4, #48] 11506 0122 82E7 b .L708 11507 .LVL810: 11508 .L725: 6345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11509 .loc 1 6345 5 is_stmt 1 view .LVU3956 11510 0124 48F20301 movw r1, #32771 11511 0128 FFF7FEFF bl I2C_Disable_IRQ 11512 .LVL811: 6346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11513 .loc 1 6346 5 view .LVU3957 6346:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11514 .loc 1 6346 25 is_stmt 0 view .LVU3958 11515 012c 0023 movs r3, #0 11516 012e 2363 str r3, [r4, #48] 11517 0130 7BE7 b .L708 11518 .L710: 6373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11519 .loc 1 6373 8 is_stmt 1 view .LVU3959 6373:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11520 .loc 1 6373 11 is_stmt 0 view .LVU3960 11521 0132 16F4004F tst r6, #32768 11522 0136 99D0 beq .L711 6376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 401 11523 .loc 1 6376 5 is_stmt 1 view .LVU3961 6376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11524 .loc 1 6376 9 is_stmt 0 view .LVU3962 11525 0138 2268 ldr r2, [r4] 6376:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11526 .loc 1 6376 25 view .LVU3963 11527 013a 1368 ldr r3, [r2] 11528 013c 23F40043 bic r3, r3, #32768 11529 0140 1360 str r3, [r2] 6378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11530 .loc 1 6378 5 is_stmt 1 view .LVU3964 6378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11531 .loc 1 6378 13 is_stmt 0 view .LVU3965 11532 0142 E36B ldr r3, [r4, #60] 6378:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11533 .loc 1 6378 8 view .LVU3966 11534 0144 002B cmp r3, #0 11535 0146 91D0 beq .L711 6380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11536 .loc 1 6380 7 is_stmt 1 view .LVU3967 6380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11537 .loc 1 6380 35 is_stmt 0 view .LVU3968 11538 0148 1B68 ldr r3, [r3] 11539 014a 5B68 ldr r3, [r3, #4] 6380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11540 .loc 1 6380 25 view .LVU3969 11541 014c 9BB2 uxth r3, r3 6380:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11542 .loc 1 6380 23 view .LVU3970 11543 014e 6385 strh r3, [r4, #42] @ movhi 11544 0150 8CE7 b .L711 11545 .LVL812: 11546 .L726: 6423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11547 .loc 1 6423 49 discriminator 1 view .LVU3971 11548 0152 B7F1007F cmp r7, #33554432 11549 0156 B4D1 bne .L716 6428:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11550 .loc 1 6428 9 is_stmt 1 view .LVU3972 11551 0158 2946 mov r1, r5 11552 015a 2046 mov r0, r4 11553 015c FFF7FEFF bl I2C_ITListenCplt 11554 .LVL813: 11555 0160 B7E7 b .L714 11556 .L727: 6430:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11557 .loc 1 6430 62 is_stmt 0 discriminator 1 view .LVU3973 11558 0162 17F5803F cmn r7, #65536 11559 0166 B1D0 beq .L717 6433:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11560 .loc 1 6433 9 is_stmt 1 view .LVU3974 11561 0168 2368 ldr r3, [r4] 11562 016a 1022 movs r2, #16 11563 016c DA61 str r2, [r3, #28] 6436:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11564 .loc 1 6436 9 view .LVU3975 11565 016e 2046 mov r0, r4 ARM GAS /tmp/cchwqEfL.s page 402 11566 0170 FFF7FEFF bl I2C_Flush_TXDR 11567 .LVL814: 6440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11568 .loc 1 6440 9 view .LVU3976 11569 0174 2046 mov r0, r4 11570 0176 FFF7FEFF bl I2C_ITSlaveSeqCplt 11571 .LVL815: 11572 017a AAE7 b .L714 11573 .L715: 6452:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11574 .loc 1 6452 7 view .LVU3977 11575 017c 2368 ldr r3, [r4] 11576 017e 1022 movs r2, #16 11577 0180 DA61 str r2, [r3, #28] 6455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11578 .loc 1 6455 7 view .LVU3978 6455:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11579 .loc 1 6455 23 is_stmt 0 view .LVU3979 11580 0182 636C ldr r3, [r4, #68] 11581 0184 43F00403 orr r3, r3, #4 11582 0188 6364 str r3, [r4, #68] 6457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11583 .loc 1 6457 7 is_stmt 1 view .LVU3980 6457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11584 .loc 1 6457 10 is_stmt 0 view .LVU3981 11585 018a B7F1807F cmp r7, #16777216 11586 018e 18BF it ne 11587 0190 002F cmpne r7, #0 11588 0192 9ED1 bne .L714 6460:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11589 .loc 1 6460 9 is_stmt 1 view .LVU3982 11590 0194 616C ldr r1, [r4, #68] 11591 0196 2046 mov r0, r4 11592 0198 FFF7FEFF bl I2C_ITError 11593 .LVL816: 11594 019c 99E7 b .L714 11595 .L728: 6471:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11596 .loc 1 6471 5 view .LVU3983 11597 019e 616C ldr r1, [r4, #68] 11598 01a0 2046 mov r0, r4 11599 01a2 FFF7FEFF bl I2C_ITError 11600 .LVL817: 6474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11601 .loc 1 6474 5 view .LVU3984 6474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11602 .loc 1 6474 13 is_stmt 0 view .LVU3985 11603 01a6 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11604 01aa DBB2 uxtb r3, r3 6474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11605 .loc 1 6474 8 view .LVU3986 11606 01ac 282B cmp r3, #40 11607 01ae 13D1 bne .L706 6477:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11608 .loc 1 6477 7 is_stmt 1 view .LVU3987 11609 01b0 2946 mov r1, r5 11610 01b2 2046 mov r0, r4 ARM GAS /tmp/cchwqEfL.s page 403 11611 01b4 FFF7FEFF bl I2C_ITListenCplt 11612 .LVL818: 11613 01b8 0EE0 b .L706 11614 .L729: 6483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11615 .loc 1 6483 5 view .LVU3988 11616 01ba 2046 mov r0, r4 11617 01bc FFF7FEFF bl I2C_ITSlaveSeqCplt 11618 .LVL819: 6485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11619 .loc 1 6485 5 view .LVU3989 6485:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11620 .loc 1 6485 23 is_stmt 0 view .LVU3990 11621 01c0 0B4B ldr r3, .L731 11622 01c2 E362 str r3, [r4, #44] 6486:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11623 .loc 1 6486 5 is_stmt 1 view .LVU3991 6486:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11624 .loc 1 6486 17 is_stmt 0 view .LVU3992 11625 01c4 2023 movs r3, #32 11626 01c6 84F84130 strb r3, [r4, #65] 6487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11627 .loc 1 6487 5 is_stmt 1 view .LVU3993 6487:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11628 .loc 1 6487 25 is_stmt 0 view .LVU3994 11629 01ca 0023 movs r3, #0 11630 01cc 2363 str r3, [r4, #48] 6490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11631 .loc 1 6490 5 is_stmt 1 view .LVU3995 6490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11632 .loc 1 6490 5 view .LVU3996 11633 01ce 84F84030 strb r3, [r4, #64] 6490:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11634 .loc 1 6490 5 view .LVU3997 6496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11635 .loc 1 6496 5 view .LVU3998 11636 01d2 2046 mov r0, r4 11637 01d4 FFF7FEFF bl HAL_I2C_ListenCpltCallback 11638 .LVL820: 11639 .L706: 6530:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11640 .loc 1 6530 1 is_stmt 0 view .LVU3999 11641 01d8 F8BD pop {r3, r4, r5, r6, r7, pc} 11642 .LVL821: 11643 .L730: 6502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11644 .loc 1 6502 5 is_stmt 1 view .LVU4000 6502:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11645 .loc 1 6502 17 is_stmt 0 view .LVU4001 11646 01da 2023 movs r3, #32 11647 01dc 84F84130 strb r3, [r4, #65] 6503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11648 .loc 1 6503 5 is_stmt 1 view .LVU4002 6503:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11649 .loc 1 6503 25 is_stmt 0 view .LVU4003 11650 01e0 0023 movs r3, #0 11651 01e2 2363 str r3, [r4, #48] ARM GAS /tmp/cchwqEfL.s page 404 6506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11652 .loc 1 6506 5 is_stmt 1 view .LVU4004 6506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11653 .loc 1 6506 5 view .LVU4005 11654 01e4 84F84030 strb r3, [r4, #64] 6506:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11655 .loc 1 6506 5 view .LVU4006 6512:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11656 .loc 1 6512 5 view .LVU4007 11657 01e8 2046 mov r0, r4 11658 01ea FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 11659 .LVL822: 11660 01ee F3E7 b .L706 11661 .L732: 11662 .align 2 11663 .L731: 11664 01f0 0000FFFF .word -65536 11665 .cfi_endproc 11666 .LFE202: 11668 .section .text.I2C_Slave_ISR_IT,"ax",%progbits 11669 .align 1 11670 .syntax unified 11671 .thumb 11672 .thumb_func 11673 .fpu fpv5-d16 11675 I2C_Slave_ISR_IT: 11676 .LVL823: 11677 .LFB192: 5259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11678 .loc 1 5259 1 view -0 11679 .cfi_startproc 11680 @ args = 0, pretend = 0, frame = 0 11681 @ frame_needed = 0, uses_anonymous_args = 0 5259:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11682 .loc 1 5259 1 is_stmt 0 view .LVU4009 11683 0000 10B5 push {r4, lr} 11684 .LCFI124: 11685 .cfi_def_cfa_offset 8 11686 .cfi_offset 4, -8 11687 .cfi_offset 14, -4 11688 0002 0446 mov r4, r0 5260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11689 .loc 1 5260 3 is_stmt 1 view .LVU4010 5260:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11690 .loc 1 5260 12 is_stmt 0 view .LVU4011 11691 0004 C06A ldr r0, [r0, #44] 11692 .LVL824: 5261:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11693 .loc 1 5261 3 is_stmt 1 view .LVU4012 5264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11694 .loc 1 5264 3 view .LVU4013 5264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11695 .loc 1 5264 3 view .LVU4014 11696 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 11697 000a 012B cmp r3, #1 11698 000c 00F09B80 beq .L745 5264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ARM GAS /tmp/cchwqEfL.s page 405 11699 .loc 1 5264 3 discriminator 2 view .LVU4015 11700 0010 0123 movs r3, #1 11701 0012 84F84030 strb r3, [r4, #64] 5264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11702 .loc 1 5264 3 discriminator 2 view .LVU4016 5267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11703 .loc 1 5267 3 discriminator 2 view .LVU4017 5267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11704 .loc 1 5267 6 is_stmt 0 discriminator 2 view .LVU4018 11705 0016 11F0200F tst r1, #32 11706 001a 02D0 beq .L735 5267:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11707 .loc 1 5267 61 discriminator 1 view .LVU4019 11708 001c 12F0200F tst r2, #32 11709 0020 16D1 bne .L747 11710 .L735: 5273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11711 .loc 1 5273 8 is_stmt 1 view .LVU4020 5273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11712 .loc 1 5273 11 is_stmt 0 view .LVU4021 11713 0022 11F0100F tst r1, #16 11714 0026 3FD0 beq .L737 5273:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11715 .loc 1 5273 63 discriminator 1 view .LVU4022 11716 0028 12F0100F tst r2, #16 11717 002c 3CD0 beq .L737 5280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11718 .loc 1 5280 5 is_stmt 1 view .LVU4023 5280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11719 .loc 1 5280 13 is_stmt 0 view .LVU4024 11720 002e 638D ldrh r3, [r4, #42] 11721 0030 9BB2 uxth r3, r3 5280:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11722 .loc 1 5280 8 view .LVU4025 11723 0032 43BB cbnz r3, .L738 5282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11724 .loc 1 5282 7 is_stmt 1 view .LVU4026 5282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11725 .loc 1 5282 16 is_stmt 0 view .LVU4027 11726 0034 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11727 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 11728 .loc 1 5282 10 view .LVU4028 11729 003a 282B cmp r3, #40 11730 003c 0FD0 beq .L748 11731 .L739: 5289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11732 .loc 1 5289 12 is_stmt 1 view .LVU4029 5289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11733 .loc 1 5289 21 is_stmt 0 view .LVU4030 11734 003e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 11735 0042 DBB2 uxtb r3, r3 5289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11736 .loc 1 5289 15 view .LVU4031 11737 0044 292B cmp r3, #41 11738 0046 11D0 beq .L749 11739 .L740: ARM GAS /tmp/cchwqEfL.s page 406 5304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11740 .loc 1 5304 9 is_stmt 1 view .LVU4032 11741 0048 2368 ldr r3, [r4] 11742 004a 1022 movs r2, #16 11743 .LVL825: 5304:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11744 .loc 1 5304 9 is_stmt 0 view .LVU4033 11745 004c DA61 str r2, [r3, #28] 11746 004e 02E0 b .L736 11747 .LVL826: 11748 .L747: 5271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11749 .loc 1 5271 5 is_stmt 1 view .LVU4034 11750 0050 2046 mov r0, r4 11751 .LVL827: 5271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11752 .loc 1 5271 5 is_stmt 0 view .LVU4035 11753 0052 FFF7FEFF bl I2C_ITSlaveCplt 11754 .LVL828: 11755 .L736: 5381:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11756 .loc 1 5381 3 is_stmt 1 view .LVU4036 5384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11757 .loc 1 5384 3 view .LVU4037 5384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11758 .loc 1 5384 3 view .LVU4038 11759 0056 0020 movs r0, #0 11760 0058 84F84000 strb r0, [r4, #64] 5384:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11761 .loc 1 5384 3 view .LVU4039 5386:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11762 .loc 1 5386 3 view .LVU4040 11763 .L734: 5387:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11764 .loc 1 5387 1 is_stmt 0 view .LVU4041 11765 005c 10BD pop {r4, pc} 11766 .LVL829: 11767 .L748: 5282:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11768 .loc 1 5282 49 discriminator 1 view .LVU4042 11769 005e B0F1007F cmp r0, #33554432 11770 0062 ECD1 bne .L739 5287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11771 .loc 1 5287 9 is_stmt 1 view .LVU4043 11772 0064 2046 mov r0, r4 11773 .LVL830: 5287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11774 .loc 1 5287 9 is_stmt 0 view .LVU4044 11775 0066 FFF7FEFF bl I2C_ITListenCplt 11776 .LVL831: 5287:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11777 .loc 1 5287 9 view .LVU4045 11778 006a F4E7 b .L736 11779 .LVL832: 11780 .L749: 5289:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11781 .loc 1 5289 62 discriminator 1 view .LVU4046 ARM GAS /tmp/cchwqEfL.s page 407 11782 006c 10F5803F cmn r0, #65536 11783 0070 EAD0 beq .L740 5292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11784 .loc 1 5292 9 is_stmt 1 view .LVU4047 11785 0072 2368 ldr r3, [r4] 11786 0074 1022 movs r2, #16 11787 .LVL833: 5292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11788 .loc 1 5292 9 is_stmt 0 view .LVU4048 11789 0076 DA61 str r2, [r3, #28] 5295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11790 .loc 1 5295 9 is_stmt 1 view .LVU4049 11791 0078 2046 mov r0, r4 11792 .LVL834: 5295:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11793 .loc 1 5295 9 is_stmt 0 view .LVU4050 11794 007a FFF7FEFF bl I2C_Flush_TXDR 11795 .LVL835: 5299:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11796 .loc 1 5299 9 is_stmt 1 view .LVU4051 11797 007e 2046 mov r0, r4 11798 0080 FFF7FEFF bl I2C_ITSlaveSeqCplt 11799 .LVL836: 11800 0084 E7E7 b .L736 11801 .LVL837: 11802 .L738: 5311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11803 .loc 1 5311 7 view .LVU4052 11804 0086 2368 ldr r3, [r4] 11805 0088 1022 movs r2, #16 11806 .LVL838: 5311:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11807 .loc 1 5311 7 is_stmt 0 view .LVU4053 11808 008a DA61 str r2, [r3, #28] 5314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11809 .loc 1 5314 7 is_stmt 1 view .LVU4054 5314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11810 .loc 1 5314 23 is_stmt 0 view .LVU4055 11811 008c 636C ldr r3, [r4, #68] 11812 008e 43F00403 orr r3, r3, #4 11813 0092 6364 str r3, [r4, #68] 5316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11814 .loc 1 5316 7 is_stmt 1 view .LVU4056 5316:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11815 .loc 1 5316 10 is_stmt 0 view .LVU4057 11816 0094 B0F1807F cmp r0, #16777216 11817 0098 18BF it ne 11818 009a 0028 cmpne r0, #0 11819 009c DBD1 bne .L736 5319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11820 .loc 1 5319 9 is_stmt 1 view .LVU4058 11821 009e 616C ldr r1, [r4, #68] 11822 .LVL839: 5319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11823 .loc 1 5319 9 is_stmt 0 view .LVU4059 11824 00a0 2046 mov r0, r4 11825 .LVL840: ARM GAS /tmp/cchwqEfL.s page 408 5319:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11826 .loc 1 5319 9 view .LVU4060 11827 00a2 FFF7FEFF bl I2C_ITError 11828 .LVL841: 11829 00a6 D6E7 b .L736 11830 .LVL842: 11831 .L737: 5323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11832 .loc 1 5323 8 is_stmt 1 view .LVU4061 5323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11833 .loc 1 5323 11 is_stmt 0 view .LVU4062 11834 00a8 11F0040F tst r1, #4 11835 00ac 1FD0 beq .L741 5323:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11836 .loc 1 5323 65 discriminator 1 view .LVU4063 11837 00ae 12F0040F tst r2, #4 11838 00b2 1CD0 beq .L741 5326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11839 .loc 1 5326 5 is_stmt 1 view .LVU4064 5326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11840 .loc 1 5326 13 is_stmt 0 view .LVU4065 11841 00b4 638D ldrh r3, [r4, #42] 11842 00b6 9BB2 uxth r3, r3 5326:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11843 .loc 1 5326 8 view .LVU4066 11844 00b8 73B1 cbz r3, .L742 5329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11845 .loc 1 5329 7 is_stmt 1 view .LVU4067 5329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11846 .loc 1 5329 38 is_stmt 0 view .LVU4068 11847 00ba 2368 ldr r3, [r4] 5329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11848 .loc 1 5329 48 view .LVU4069 11849 00bc 5A6A ldr r2, [r3, #36] 11850 .LVL843: 5329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11851 .loc 1 5329 12 view .LVU4070 11852 00be 636A ldr r3, [r4, #36] 5329:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11853 .loc 1 5329 23 view .LVU4071 11854 00c0 1A70 strb r2, [r3] 5332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11855 .loc 1 5332 7 is_stmt 1 view .LVU4072 5332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11856 .loc 1 5332 11 is_stmt 0 view .LVU4073 11857 00c2 636A ldr r3, [r4, #36] 5332:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11858 .loc 1 5332 21 view .LVU4074 11859 00c4 0133 adds r3, r3, #1 11860 00c6 6362 str r3, [r4, #36] 5334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 11861 .loc 1 5334 7 is_stmt 1 view .LVU4075 5334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 11862 .loc 1 5334 11 is_stmt 0 view .LVU4076 11863 00c8 238D ldrh r3, [r4, #40] 5334:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 11864 .loc 1 5334 21 view .LVU4077 ARM GAS /tmp/cchwqEfL.s page 409 11865 00ca 013B subs r3, r3, #1 11866 00cc 2385 strh r3, [r4, #40] @ movhi 5335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11867 .loc 1 5335 7 is_stmt 1 view .LVU4078 5335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11868 .loc 1 5335 11 is_stmt 0 view .LVU4079 11869 00ce 638D ldrh r3, [r4, #42] 11870 00d0 9BB2 uxth r3, r3 5335:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11871 .loc 1 5335 22 view .LVU4080 11872 00d2 013B subs r3, r3, #1 11873 00d4 9BB2 uxth r3, r3 11874 00d6 6385 strh r3, [r4, #42] @ movhi 11875 .L742: 5338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11876 .loc 1 5338 5 is_stmt 1 view .LVU4081 5338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11877 .loc 1 5338 14 is_stmt 0 view .LVU4082 11878 00d8 638D ldrh r3, [r4, #42] 11879 00da 9BB2 uxth r3, r3 5338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11880 .loc 1 5338 8 view .LVU4083 11881 00dc 002B cmp r3, #0 11882 00de BAD1 bne .L736 5338:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11883 .loc 1 5338 33 discriminator 1 view .LVU4084 11884 00e0 10F5803F cmn r0, #65536 11885 00e4 B7D0 beq .L736 5342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11886 .loc 1 5342 7 is_stmt 1 view .LVU4085 11887 00e6 2046 mov r0, r4 11888 .LVL844: 5342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11889 .loc 1 5342 7 is_stmt 0 view .LVU4086 11890 00e8 FFF7FEFF bl I2C_ITSlaveSeqCplt 11891 .LVL845: 5342:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11892 .loc 1 5342 7 view .LVU4087 11893 00ec B3E7 b .L736 11894 .LVL846: 11895 .L741: 5345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11896 .loc 1 5345 8 is_stmt 1 view .LVU4088 5345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11897 .loc 1 5345 11 is_stmt 0 view .LVU4089 11898 00ee 11F0080F tst r1, #8 11899 00f2 02D0 beq .L743 5345:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11900 .loc 1 5345 65 discriminator 1 view .LVU4090 11901 00f4 12F0080F tst r2, #8 11902 00f8 18D1 bne .L750 11903 .L743: 5350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11904 .loc 1 5350 8 is_stmt 1 view .LVU4091 5350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11905 .loc 1 5350 11 is_stmt 0 view .LVU4092 11906 00fa 11F0020F tst r1, #2 ARM GAS /tmp/cchwqEfL.s page 410 11907 00fe AAD0 beq .L736 5350:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11908 .loc 1 5350 65 discriminator 1 view .LVU4093 11909 0100 12F0020F tst r2, #2 11910 0104 A7D0 beq .L736 5357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11911 .loc 1 5357 5 is_stmt 1 view .LVU4094 5357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11912 .loc 1 5357 13 is_stmt 0 view .LVU4095 11913 0106 638D ldrh r3, [r4, #42] 11914 0108 9BB2 uxth r3, r3 5357:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11915 .loc 1 5357 8 view .LVU4096 11916 010a 9BB1 cbz r3, .L744 5360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11917 .loc 1 5360 7 is_stmt 1 view .LVU4097 5360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11918 .loc 1 5360 35 is_stmt 0 view .LVU4098 11919 010c 626A ldr r2, [r4, #36] 11920 .LVL847: 5360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11921 .loc 1 5360 11 view .LVU4099 11922 010e 2368 ldr r3, [r4] 5360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11923 .loc 1 5360 30 view .LVU4100 11924 0110 1278 ldrb r2, [r2] @ zero_extendqisi2 5360:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11925 .loc 1 5360 28 view .LVU4101 11926 0112 9A62 str r2, [r3, #40] 5363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11927 .loc 1 5363 7 is_stmt 1 view .LVU4102 5363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11928 .loc 1 5363 11 is_stmt 0 view .LVU4103 11929 0114 636A ldr r3, [r4, #36] 5363:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11930 .loc 1 5363 21 view .LVU4104 11931 0116 0133 adds r3, r3, #1 11932 0118 6362 str r3, [r4, #36] 5365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 11933 .loc 1 5365 7 is_stmt 1 view .LVU4105 5365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 11934 .loc 1 5365 11 is_stmt 0 view .LVU4106 11935 011a 638D ldrh r3, [r4, #42] 11936 011c 9BB2 uxth r3, r3 5365:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize--; 11937 .loc 1 5365 22 view .LVU4107 11938 011e 013B subs r3, r3, #1 11939 0120 9BB2 uxth r3, r3 11940 0122 6385 strh r3, [r4, #42] @ movhi 5366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11941 .loc 1 5366 7 is_stmt 1 view .LVU4108 5366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11942 .loc 1 5366 11 is_stmt 0 view .LVU4109 11943 0124 238D ldrh r3, [r4, #40] 5366:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11944 .loc 1 5366 21 view .LVU4110 11945 0126 013B subs r3, r3, #1 ARM GAS /tmp/cchwqEfL.s page 411 11946 0128 2385 strh r3, [r4, #40] @ movhi 11947 012a 94E7 b .L736 11948 .LVL848: 11949 .L750: 5348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11950 .loc 1 5348 5 is_stmt 1 view .LVU4111 11951 012c 2046 mov r0, r4 11952 .LVL849: 5348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11953 .loc 1 5348 5 is_stmt 0 view .LVU4112 11954 012e FFF7FEFF bl I2C_ITAddrCplt 11955 .LVL850: 5348:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11956 .loc 1 5348 5 view .LVU4113 11957 0132 90E7 b .L736 11958 .LVL851: 11959 .L744: 5370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11960 .loc 1 5370 7 is_stmt 1 view .LVU4114 5370:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 11961 .loc 1 5370 10 is_stmt 0 view .LVU4115 11962 0134 0028 cmp r0, #0 11963 0136 18BF it ne 11964 0138 B0F1807F cmpne r0, #16777216 11965 013c 8BD1 bne .L736 5374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11966 .loc 1 5374 9 is_stmt 1 view .LVU4116 11967 013e 2046 mov r0, r4 11968 .LVL852: 5374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11969 .loc 1 5374 9 is_stmt 0 view .LVU4117 11970 0140 FFF7FEFF bl I2C_ITSlaveSeqCplt 11971 .LVL853: 5374:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 11972 .loc 1 5374 9 view .LVU4118 11973 0144 87E7 b .L736 11974 .LVL854: 11975 .L745: 5264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11976 .loc 1 5264 3 view .LVU4119 11977 0146 0220 movs r0, #2 11978 .LVL855: 5264:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 11979 .loc 1 5264 3 view .LVU4120 11980 0148 88E7 b .L734 11981 .cfi_endproc 11982 .LFE192: 11984 .section .text.I2C_ITMasterCplt,"ax",%progbits 11985 .align 1 11986 .syntax unified 11987 .thumb 11988 .thumb_func 11989 .fpu fpv5-d16 11991 I2C_ITMasterCplt: 11992 .LVL856: 11993 .LFB201: 6180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmperror; ARM GAS /tmp/cchwqEfL.s page 412 11994 .loc 1 6180 1 is_stmt 1 view -0 11995 .cfi_startproc 11996 @ args = 0, pretend = 0, frame = 8 11997 @ frame_needed = 0, uses_anonymous_args = 0 6180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmperror; 11998 .loc 1 6180 1 is_stmt 0 view .LVU4122 11999 0000 30B5 push {r4, r5, lr} 12000 .LCFI125: 12001 .cfi_def_cfa_offset 12 12002 .cfi_offset 4, -12 12003 .cfi_offset 5, -8 12004 .cfi_offset 14, -4 12005 0002 83B0 sub sp, sp, #12 12006 .LCFI126: 12007 .cfi_def_cfa_offset 24 12008 0004 0446 mov r4, r0 12009 0006 0D46 mov r5, r1 6181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12010 .loc 1 6181 3 is_stmt 1 view .LVU4123 6182:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** __IO uint32_t tmpreg; 12011 .loc 1 6182 3 view .LVU4124 12012 .LVL857: 6183:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12013 .loc 1 6183 3 view .LVU4125 6186:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12014 .loc 1 6186 3 view .LVU4126 12015 0008 0368 ldr r3, [r0] 12016 000a 2022 movs r2, #32 12017 000c DA61 str r2, [r3, #28] 6189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12018 .loc 1 6189 3 view .LVU4127 6189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12019 .loc 1 6189 11 is_stmt 0 view .LVU4128 12020 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 12021 0012 DBB2 uxtb r3, r3 6189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12022 .loc 1 6189 6 view .LVU4129 12023 0014 212B cmp r3, #33 12024 0016 33D0 beq .L763 6194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12025 .loc 1 6194 8 is_stmt 1 view .LVU4130 6194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12026 .loc 1 6194 16 is_stmt 0 view .LVU4131 12027 0018 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 12028 001c DBB2 uxtb r3, r3 6194:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12029 .loc 1 6194 11 view .LVU4132 12030 001e 222B cmp r3, #34 12031 0020 34D0 beq .L764 12032 .LVL858: 12033 .L753: 6202:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12034 .loc 1 6202 3 is_stmt 1 view .LVU4133 6205:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12035 .loc 1 6205 3 view .LVU4134 12036 0022 2268 ldr r2, [r4] 12037 0024 5368 ldr r3, [r2, #4] ARM GAS /tmp/cchwqEfL.s page 413 12038 0026 23F0FF73 bic r3, r3, #33423360 12039 002a 23F48B33 bic r3, r3, #71168 12040 002e 23F4FF73 bic r3, r3, #510 12041 0032 23F00103 bic r3, r3, #1 12042 0036 5360 str r3, [r2, #4] 6208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 12043 .loc 1 6208 3 view .LVU4135 6208:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 12044 .loc 1 6208 23 is_stmt 0 view .LVU4136 12045 0038 0023 movs r3, #0 12046 003a 6363 str r3, [r4, #52] 6209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12047 .loc 1 6209 3 is_stmt 1 view .LVU4137 6209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12048 .loc 1 6209 23 is_stmt 0 view .LVU4138 12049 003c A3F58033 sub r3, r3, #65536 12050 0040 E362 str r3, [r4, #44] 6211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12051 .loc 1 6211 3 is_stmt 1 view .LVU4139 6211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12052 .loc 1 6211 6 is_stmt 0 view .LVU4140 12053 0042 15F0100F tst r5, #16 12054 0046 06D0 beq .L754 6214:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12055 .loc 1 6214 5 is_stmt 1 view .LVU4141 12056 0048 2368 ldr r3, [r4] 12057 004a 1022 movs r2, #16 12058 004c DA61 str r2, [r3, #28] 6217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12059 .loc 1 6217 5 view .LVU4142 6217:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12060 .loc 1 6217 21 is_stmt 0 view .LVU4143 12061 004e 636C ldr r3, [r4, #68] 12062 0050 43F00403 orr r3, r3, #4 12063 0054 6364 str r3, [r4, #68] 12064 .L754: 6221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12065 .loc 1 6221 3 is_stmt 1 view .LVU4144 6221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12066 .loc 1 6221 12 is_stmt 0 view .LVU4145 12067 0056 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12068 005a DBB2 uxtb r3, r3 6221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12069 .loc 1 6221 6 view .LVU4146 12070 005c 602B cmp r3, #96 12071 005e 1BD0 beq .L765 12072 .L755: 6229:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12073 .loc 1 6229 3 is_stmt 1 view .LVU4147 12074 0060 2046 mov r0, r4 12075 0062 FFF7FEFF bl I2C_Flush_TXDR 12076 .LVL859: 6232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12077 .loc 1 6232 3 view .LVU4148 6232:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12078 .loc 1 6232 12 is_stmt 0 view .LVU4149 12079 0066 626C ldr r2, [r4, #68] ARM GAS /tmp/cchwqEfL.s page 414 12080 .LVL860: 6235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12081 .loc 1 6235 3 is_stmt 1 view .LVU4150 6235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12082 .loc 1 6235 12 is_stmt 0 view .LVU4151 12083 0068 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12084 006c DBB2 uxtb r3, r3 6235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12085 .loc 1 6235 6 view .LVU4152 12086 006e 602B cmp r3, #96 12087 0070 00D0 beq .L756 6235:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12088 .loc 1 6235 44 discriminator 1 view .LVU4153 12089 0072 D2B1 cbz r2, .L757 12090 .L756: 6238:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12091 .loc 1 6238 5 is_stmt 1 view .LVU4154 12092 0074 616C ldr r1, [r4, #68] 12093 0076 2046 mov r0, r4 12094 0078 FFF7FEFF bl I2C_ITError 12095 .LVL861: 12096 .L751: 6314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12097 .loc 1 6314 1 is_stmt 0 view .LVU4155 12098 007c 03B0 add sp, sp, #12 12099 .LCFI127: 12100 .cfi_remember_state 12101 .cfi_def_cfa_offset 12 12102 @ sp needed 12103 007e 30BD pop {r4, r5, pc} 12104 .LVL862: 12105 .L763: 12106 .LCFI128: 12107 .cfi_restore_state 6191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12108 .loc 1 6191 5 is_stmt 1 view .LVU4156 12109 0080 0121 movs r1, #1 12110 .LVL863: 6191:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12111 .loc 1 6191 5 is_stmt 0 view .LVU4157 12112 0082 FFF7FEFF bl I2C_Disable_IRQ 12113 .LVL864: 6192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12114 .loc 1 6192 5 is_stmt 1 view .LVU4158 6192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12115 .loc 1 6192 25 is_stmt 0 view .LVU4159 12116 0086 1123 movs r3, #17 12117 0088 2363 str r3, [r4, #48] 12118 008a CAE7 b .L753 12119 .LVL865: 12120 .L764: 6196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12121 .loc 1 6196 5 is_stmt 1 view .LVU4160 12122 008c 0221 movs r1, #2 12123 .LVL866: 6196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12124 .loc 1 6196 5 is_stmt 0 view .LVU4161 ARM GAS /tmp/cchwqEfL.s page 415 12125 008e FFF7FEFF bl I2C_Disable_IRQ 12126 .LVL867: 6197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12127 .loc 1 6197 5 is_stmt 1 view .LVU4162 6197:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12128 .loc 1 6197 25 is_stmt 0 view .LVU4163 12129 0092 1223 movs r3, #18 12130 0094 2363 str r3, [r4, #48] 12131 0096 C4E7 b .L753 12132 .L765: 6221:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12133 .loc 1 6221 44 discriminator 1 view .LVU4164 12134 0098 15F0040F tst r5, #4 12135 009c E0D0 beq .L755 6224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(tmpreg); 12136 .loc 1 6224 5 is_stmt 1 view .LVU4165 6224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(tmpreg); 12137 .loc 1 6224 27 is_stmt 0 view .LVU4166 12138 009e 2368 ldr r3, [r4] 6224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(tmpreg); 12139 .loc 1 6224 37 view .LVU4167 12140 00a0 5B6A ldr r3, [r3, #36] 12141 00a2 DBB2 uxtb r3, r3 6224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** UNUSED(tmpreg); 12142 .loc 1 6224 12 view .LVU4168 12143 00a4 0193 str r3, [sp, #4] 6225:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12144 .loc 1 6225 5 is_stmt 1 view .LVU4169 12145 00a6 019B ldr r3, [sp, #4] 12146 00a8 DAE7 b .L755 12147 .LVL868: 12148 .L757: 6241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12149 .loc 1 6241 8 view .LVU4170 6241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12150 .loc 1 6241 16 is_stmt 0 view .LVU4171 12151 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12152 00ae DBB2 uxtb r3, r3 6241:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12153 .loc 1 6241 11 view .LVU4172 12154 00b0 212B cmp r3, #33 12155 00b2 17D0 beq .L766 6276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12156 .loc 1 6276 8 is_stmt 1 view .LVU4173 6276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12157 .loc 1 6276 16 is_stmt 0 view .LVU4174 12158 00b4 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12159 00b8 DBB2 uxtb r3, r3 6276:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12160 .loc 1 6276 11 view .LVU4175 12161 00ba 222B cmp r3, #34 12162 00bc DED1 bne .L751 6278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12163 .loc 1 6278 5 is_stmt 1 view .LVU4176 6278:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12164 .loc 1 6278 17 is_stmt 0 view .LVU4177 12165 00be 2023 movs r3, #32 ARM GAS /tmp/cchwqEfL.s page 416 12166 00c0 84F84130 strb r3, [r4, #65] 6279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12167 .loc 1 6279 5 is_stmt 1 view .LVU4178 6279:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12168 .loc 1 6279 25 is_stmt 0 view .LVU4179 12169 00c4 0023 movs r3, #0 12170 00c6 2363 str r3, [r4, #48] 6281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12171 .loc 1 6281 5 is_stmt 1 view .LVU4180 6281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12172 .loc 1 6281 13 is_stmt 0 view .LVU4181 12173 00c8 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 12174 00cc DBB2 uxtb r3, r3 6281:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12175 .loc 1 6281 8 view .LVU4182 12176 00ce 402B cmp r3, #64 12177 00d0 24D0 beq .L767 6297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12178 .loc 1 6297 7 is_stmt 1 view .LVU4183 6297:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12179 .loc 1 6297 18 is_stmt 0 view .LVU4184 12180 00d2 0023 movs r3, #0 12181 00d4 84F84230 strb r3, [r4, #66] 6300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12182 .loc 1 6300 7 is_stmt 1 view .LVU4185 6300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12183 .loc 1 6300 7 view .LVU4186 12184 00d8 84F84030 strb r3, [r4, #64] 6300:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12185 .loc 1 6300 7 view .LVU4187 6306:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12186 .loc 1 6306 7 view .LVU4188 12187 00dc 2046 mov r0, r4 12188 00de FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 12189 .LVL869: 6313:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12190 .loc 1 6313 3 view .LVU4189 6314:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12191 .loc 1 6314 1 is_stmt 0 view .LVU4190 12192 00e2 CBE7 b .L751 12193 .LVL870: 12194 .L766: 6243:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12195 .loc 1 6243 5 is_stmt 1 view .LVU4191 6243:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12196 .loc 1 6243 17 is_stmt 0 view .LVU4192 12197 00e4 2023 movs r3, #32 12198 00e6 84F84130 strb r3, [r4, #65] 6244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12199 .loc 1 6244 5 is_stmt 1 view .LVU4193 6244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12200 .loc 1 6244 25 is_stmt 0 view .LVU4194 12201 00ea 0023 movs r3, #0 12202 00ec 2363 str r3, [r4, #48] 6246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12203 .loc 1 6246 5 is_stmt 1 view .LVU4195 6246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/cchwqEfL.s page 417 12204 .loc 1 6246 13 is_stmt 0 view .LVU4196 12205 00ee 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 12206 00f2 DBB2 uxtb r3, r3 6246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12207 .loc 1 6246 8 view .LVU4197 12208 00f4 402B cmp r3, #64 12209 00f6 08D0 beq .L768 6262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12210 .loc 1 6262 7 is_stmt 1 view .LVU4198 6262:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12211 .loc 1 6262 18 is_stmt 0 view .LVU4199 12212 00f8 0023 movs r3, #0 12213 00fa 84F84230 strb r3, [r4, #66] 6265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12214 .loc 1 6265 7 is_stmt 1 view .LVU4200 6265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12215 .loc 1 6265 7 view .LVU4201 12216 00fe 84F84030 strb r3, [r4, #64] 6265:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12217 .loc 1 6265 7 view .LVU4202 6271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12218 .loc 1 6271 7 view .LVU4203 12219 0102 2046 mov r0, r4 12220 0104 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 12221 .LVL871: 6271:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12222 .loc 1 6271 7 is_stmt 0 view .LVU4204 12223 0108 B8E7 b .L751 12224 .LVL872: 12225 .L768: 6248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12226 .loc 1 6248 7 is_stmt 1 view .LVU4205 6248:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12227 .loc 1 6248 18 is_stmt 0 view .LVU4206 12228 010a 0023 movs r3, #0 12229 010c 84F84230 strb r3, [r4, #66] 6251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12230 .loc 1 6251 7 is_stmt 1 view .LVU4207 6251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12231 .loc 1 6251 7 view .LVU4208 12232 0110 84F84030 strb r3, [r4, #64] 6251:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12233 .loc 1 6251 7 view .LVU4209 6257:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12234 .loc 1 6257 7 view .LVU4210 12235 0114 2046 mov r0, r4 12236 0116 FFF7FEFF bl HAL_I2C_MemTxCpltCallback 12237 .LVL873: 6257:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12238 .loc 1 6257 7 is_stmt 0 view .LVU4211 12239 011a AFE7 b .L751 12240 .LVL874: 12241 .L767: 6283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12242 .loc 1 6283 7 is_stmt 1 view .LVU4212 6283:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12243 .loc 1 6283 18 is_stmt 0 view .LVU4213 ARM GAS /tmp/cchwqEfL.s page 418 12244 011c 0023 movs r3, #0 12245 011e 84F84230 strb r3, [r4, #66] 6286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12246 .loc 1 6286 7 is_stmt 1 view .LVU4214 6286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12247 .loc 1 6286 7 view .LVU4215 12248 0122 84F84030 strb r3, [r4, #64] 6286:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12249 .loc 1 6286 7 view .LVU4216 6292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12250 .loc 1 6292 7 view .LVU4217 12251 0126 2046 mov r0, r4 12252 0128 FFF7FEFF bl HAL_I2C_MemRxCpltCallback 12253 .LVL875: 6292:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12254 .loc 1 6292 7 is_stmt 0 view .LVU4218 12255 012c A6E7 b .L751 12256 .cfi_endproc 12257 .LFE201: 12259 .section .text.I2C_Master_ISR_IT,"ax",%progbits 12260 .align 1 12261 .syntax unified 12262 .thumb 12263 .thumb_func 12264 .fpu fpv5-d16 12266 I2C_Master_ISR_IT: 12267 .LVL876: 12268 .LFB190: 4941:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t devaddress; 12269 .loc 1 4941 1 is_stmt 1 view -0 12270 .cfi_startproc 12271 @ args = 0, pretend = 0, frame = 0 12272 @ frame_needed = 0, uses_anonymous_args = 0 4942:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12273 .loc 1 4942 3 view .LVU4220 4943:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12274 .loc 1 4943 3 view .LVU4221 4946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12275 .loc 1 4946 3 view .LVU4222 4946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12276 .loc 1 4946 3 view .LVU4223 12277 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12278 0004 012B cmp r3, #1 12279 0006 00F0CF80 beq .L785 4941:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t devaddress; 12280 .loc 1 4941 1 is_stmt 0 discriminator 2 view .LVU4224 12281 000a 70B5 push {r4, r5, r6, lr} 12282 .LCFI129: 12283 .cfi_def_cfa_offset 16 12284 .cfi_offset 4, -16 12285 .cfi_offset 5, -12 12286 .cfi_offset 6, -8 12287 .cfi_offset 14, -4 12288 000c 82B0 sub sp, sp, #8 12289 .LCFI130: 12290 .cfi_def_cfa_offset 24 12291 000e 0446 mov r4, r0 ARM GAS /tmp/cchwqEfL.s page 419 12292 0010 0D46 mov r5, r1 12293 0012 1646 mov r6, r2 4946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12294 .loc 1 4946 3 is_stmt 1 discriminator 2 view .LVU4225 12295 0014 0123 movs r3, #1 12296 0016 80F84030 strb r3, [r0, #64] 4946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12297 .loc 1 4946 3 discriminator 2 view .LVU4226 4948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12298 .loc 1 4948 3 discriminator 2 view .LVU4227 4948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12299 .loc 1 4948 6 is_stmt 0 discriminator 2 view .LVU4228 12300 001a 11F0100F tst r1, #16 12301 001e 02D0 beq .L771 4948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12302 .loc 1 4948 58 discriminator 1 view .LVU4229 12303 0020 12F0100F tst r2, #16 12304 0024 22D1 bne .L790 12305 .L771: 4962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12306 .loc 1 4962 8 is_stmt 1 view .LVU4230 4962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12307 .loc 1 4962 11 is_stmt 0 view .LVU4231 12308 0026 15F0040F tst r5, #4 12309 002a 29D0 beq .L773 4962:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12310 .loc 1 4962 65 discriminator 1 view .LVU4232 12311 002c 16F0040F tst r6, #4 12312 0030 26D0 beq .L773 4966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12313 .loc 1 4966 5 is_stmt 1 view .LVU4233 4966:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12314 .loc 1 4966 16 is_stmt 0 view .LVU4234 12315 0032 25F00405 bic r5, r5, #4 12316 .LVL877: 4969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12317 .loc 1 4969 5 is_stmt 1 view .LVU4235 4969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12318 .loc 1 4969 36 is_stmt 0 view .LVU4236 12319 0036 2368 ldr r3, [r4] 4969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12320 .loc 1 4969 46 view .LVU4237 12321 0038 5A6A ldr r2, [r3, #36] 12322 .LVL878: 4969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12323 .loc 1 4969 10 view .LVU4238 12324 003a 636A ldr r3, [r4, #36] 4969:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12325 .loc 1 4969 21 view .LVU4239 12326 003c 1A70 strb r2, [r3] 4972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12327 .loc 1 4972 5 is_stmt 1 view .LVU4240 4972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12328 .loc 1 4972 9 is_stmt 0 view .LVU4241 12329 003e 636A ldr r3, [r4, #36] 4972:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12330 .loc 1 4972 19 view .LVU4242 ARM GAS /tmp/cchwqEfL.s page 420 12331 0040 0133 adds r3, r3, #1 12332 0042 6362 str r3, [r4, #36] 4974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 12333 .loc 1 4974 5 is_stmt 1 view .LVU4243 4974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 12334 .loc 1 4974 9 is_stmt 0 view .LVU4244 12335 0044 238D ldrh r3, [r4, #40] 4974:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 12336 .loc 1 4974 19 view .LVU4245 12337 0046 013B subs r3, r3, #1 12338 0048 2385 strh r3, [r4, #40] @ movhi 4975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12339 .loc 1 4975 5 is_stmt 1 view .LVU4246 4975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12340 .loc 1 4975 9 is_stmt 0 view .LVU4247 12341 004a 638D ldrh r3, [r4, #42] 12342 004c 9BB2 uxth r3, r3 4975:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12343 .loc 1 4975 20 view .LVU4248 12344 004e 013B subs r3, r3, #1 12345 0050 9BB2 uxth r3, r3 12346 0052 6385 strh r3, [r4, #42] @ movhi 12347 .LVL879: 12348 .L772: 5075:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12349 .loc 1 5075 3 is_stmt 1 view .LVU4249 5077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12350 .loc 1 5077 3 view .LVU4250 5077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12351 .loc 1 5077 6 is_stmt 0 view .LVU4251 12352 0054 15F0200F tst r5, #32 12353 0058 03D0 beq .L784 5077:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12354 .loc 1 5077 61 discriminator 1 view .LVU4252 12355 005a 16F0200F tst r6, #32 12356 005e 40F09E80 bne .L791 12357 .L784: 5085:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12358 .loc 1 5085 3 is_stmt 1 view .LVU4253 5085:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12359 .loc 1 5085 3 view .LVU4254 12360 0062 0020 movs r0, #0 12361 0064 84F84000 strb r0, [r4, #64] 5085:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12362 .loc 1 5085 3 view .LVU4255 5087:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12363 .loc 1 5087 3 view .LVU4256 5088:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12364 .loc 1 5088 1 is_stmt 0 view .LVU4257 12365 0068 02B0 add sp, sp, #8 12366 .LCFI131: 12367 .cfi_remember_state 12368 .cfi_def_cfa_offset 16 12369 @ sp needed 12370 006a 70BD pop {r4, r5, r6, pc} 12371 .LVL880: 12372 .L790: ARM GAS /tmp/cchwqEfL.s page 421 12373 .LCFI132: 12374 .cfi_restore_state 4952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12375 .loc 1 4952 5 is_stmt 1 view .LVU4258 12376 006c 0368 ldr r3, [r0] 12377 006e 1022 movs r2, #16 12378 .LVL881: 4952:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12379 .loc 1 4952 5 is_stmt 0 view .LVU4259 12380 0070 DA61 str r2, [r3, #28] 4957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12381 .loc 1 4957 5 is_stmt 1 view .LVU4260 4957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12382 .loc 1 4957 21 is_stmt 0 view .LVU4261 12383 0072 436C ldr r3, [r0, #68] 12384 0074 43F00403 orr r3, r3, #4 12385 0078 4364 str r3, [r0, #68] 4960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12386 .loc 1 4960 5 is_stmt 1 view .LVU4262 12387 007a FFF7FEFF bl I2C_Flush_TXDR 12388 .LVL882: 4960:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12389 .loc 1 4960 5 is_stmt 0 view .LVU4263 12390 007e E9E7 b .L772 12391 .LVL883: 12392 .L773: 4977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12393 .loc 1 4977 8 is_stmt 1 view .LVU4264 4977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12394 .loc 1 4977 13 is_stmt 0 view .LVU4265 12395 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) && \ 12396 .loc 1 4977 11 view .LVU4266 12397 0084 15F0400F tst r5, #64 12398 0088 19D1 bne .L774 4977:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12399 .loc 1 4977 63 discriminator 1 view .LVU4267 12400 008a 15F0020F tst r5, #2 12401 008e 16D0 beq .L774 4978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))) 12402 .loc 1 4978 66 view .LVU4268 12403 0090 16F0020F tst r6, #2 12404 0094 13D0 beq .L774 4982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12405 .loc 1 4982 5 is_stmt 1 view .LVU4269 4982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12406 .loc 1 4982 13 is_stmt 0 view .LVU4270 12407 0096 638D ldrh r3, [r4, #42] 12408 0098 9BB2 uxth r3, r3 4982:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12409 .loc 1 4982 8 view .LVU4271 12410 009a 002B cmp r3, #0 12411 009c DAD0 beq .L772 4985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12412 .loc 1 4985 7 is_stmt 1 view .LVU4272 4985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12413 .loc 1 4985 35 is_stmt 0 view .LVU4273 ARM GAS /tmp/cchwqEfL.s page 422 12414 009e 626A ldr r2, [r4, #36] 12415 .LVL884: 4985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12416 .loc 1 4985 11 view .LVU4274 12417 00a0 2368 ldr r3, [r4] 4985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12418 .loc 1 4985 30 view .LVU4275 12419 00a2 1278 ldrb r2, [r2] @ zero_extendqisi2 4985:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12420 .loc 1 4985 28 view .LVU4276 12421 00a4 9A62 str r2, [r3, #40] 4988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12422 .loc 1 4988 7 is_stmt 1 view .LVU4277 4988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12423 .loc 1 4988 11 is_stmt 0 view .LVU4278 12424 00a6 636A ldr r3, [r4, #36] 4988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12425 .loc 1 4988 21 view .LVU4279 12426 00a8 0133 adds r3, r3, #1 12427 00aa 6362 str r3, [r4, #36] 4990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 12428 .loc 1 4990 7 is_stmt 1 view .LVU4280 4990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 12429 .loc 1 4990 11 is_stmt 0 view .LVU4281 12430 00ac 238D ldrh r3, [r4, #40] 4990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 12431 .loc 1 4990 21 view .LVU4282 12432 00ae 013B subs r3, r3, #1 12433 00b0 2385 strh r3, [r4, #40] @ movhi 4991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12434 .loc 1 4991 7 is_stmt 1 view .LVU4283 4991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12435 .loc 1 4991 11 is_stmt 0 view .LVU4284 12436 00b2 638D ldrh r3, [r4, #42] 12437 00b4 9BB2 uxth r3, r3 4991:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12438 .loc 1 4991 22 view .LVU4285 12439 00b6 013B subs r3, r3, #1 12440 00b8 9BB2 uxth r3, r3 12441 00ba 6385 strh r3, [r4, #42] @ movhi 12442 00bc CAE7 b .L772 12443 .LVL885: 12444 .L774: 4994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12445 .loc 1 4994 8 is_stmt 1 view .LVU4286 4994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12446 .loc 1 4994 11 is_stmt 0 view .LVU4287 12447 00be 15F0800F tst r5, #128 12448 00c2 4AD0 beq .L775 4994:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12449 .loc 1 4994 64 discriminator 1 view .LVU4288 12450 00c4 16F0400F tst r6, #64 12451 00c8 47D0 beq .L775 4997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12452 .loc 1 4997 5 is_stmt 1 view .LVU4289 4997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12453 .loc 1 4997 14 is_stmt 0 view .LVU4290 ARM GAS /tmp/cchwqEfL.s page 423 12454 00ca 638D ldrh r3, [r4, #42] 12455 00cc 9BB2 uxth r3, r3 4997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12456 .loc 1 4997 8 view .LVU4291 12457 00ce 002B cmp r3, #0 12458 00d0 35D0 beq .L776 4997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12459 .loc 1 4997 41 discriminator 1 view .LVU4292 12460 00d2 238D ldrh r3, [r4, #40] 4997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12461 .loc 1 4997 33 discriminator 1 view .LVU4293 12462 00d4 002B cmp r3, #0 12463 00d6 32D1 bne .L776 4999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12464 .loc 1 4999 7 is_stmt 1 view .LVU4294 4999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12465 .loc 1 4999 35 is_stmt 0 view .LVU4295 12466 00d8 2268 ldr r2, [r4] 12467 .LVL886: 4999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12468 .loc 1 4999 45 view .LVU4296 12469 00da 5168 ldr r1, [r2, #4] 12470 .LVL887: 4999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12471 .loc 1 4999 18 view .LVU4297 12472 00dc C1F30901 ubfx r1, r1, #0, #10 12473 .LVL888: 5001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12474 .loc 1 5001 7 is_stmt 1 view .LVU4298 5001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12475 .loc 1 5001 15 is_stmt 0 view .LVU4299 12476 00e0 638D ldrh r3, [r4, #42] 12477 00e2 9BB2 uxth r3, r3 5001:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12478 .loc 1 5001 10 view .LVU4300 12479 00e4 FF2B cmp r3, #255 12480 00e6 12D9 bls .L777 5004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12481 .loc 1 5004 9 is_stmt 1 view .LVU4301 5004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12482 .loc 1 5004 13 is_stmt 0 view .LVU4302 12483 00e8 9369 ldr r3, [r2, #24] 5004:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12484 .loc 1 5004 12 view .LVU4303 12485 00ea 13F4803F tst r3, #65536 12486 00ee 0BD0 beq .L778 5006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12487 .loc 1 5006 11 is_stmt 1 view .LVU4304 5006:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12488 .loc 1 5006 26 is_stmt 0 view .LVU4305 12489 00f0 0123 movs r3, #1 12490 00f2 2385 strh r3, [r4, #40] @ movhi 12491 .L779: 5012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12492 .loc 1 5012 9 is_stmt 1 view .LVU4306 12493 00f4 0023 movs r3, #0 12494 00f6 0093 str r3, [sp] ARM GAS /tmp/cchwqEfL.s page 424 12495 00f8 4FF08073 mov r3, #16777216 12496 00fc 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 12497 0100 2046 mov r0, r4 12498 .LVL889: 5012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12499 .loc 1 5012 9 is_stmt 0 view .LVU4307 12500 0102 FFF7FEFF bl I2C_TransferConfig 12501 .LVL890: 5012:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12502 .loc 1 5012 9 view .LVU4308 12503 0106 A5E7 b .L772 12504 .LVL891: 12505 .L778: 5010:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12506 .loc 1 5010 11 is_stmt 1 view .LVU4309 5010:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12507 .loc 1 5010 26 is_stmt 0 view .LVU4310 12508 0108 FF23 movs r3, #255 12509 010a 2385 strh r3, [r4, #40] @ movhi 12510 010c F2E7 b .L779 12511 .L777: 5016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12512 .loc 1 5016 9 is_stmt 1 view .LVU4311 5016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12513 .loc 1 5016 30 is_stmt 0 view .LVU4312 12514 010e 628D ldrh r2, [r4, #42] 12515 0110 92B2 uxth r2, r2 5016:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12516 .loc 1 5016 24 view .LVU4313 12517 0112 2285 strh r2, [r4, #40] @ movhi 5017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12518 .loc 1 5017 9 is_stmt 1 view .LVU4314 5017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12519 .loc 1 5017 17 is_stmt 0 view .LVU4315 12520 0114 E36A ldr r3, [r4, #44] 5017:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12521 .loc 1 5017 12 view .LVU4316 12522 0116 13F5803F cmn r3, #65536 12523 011a 07D0 beq .L780 5019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12524 .loc 1 5019 11 is_stmt 1 view .LVU4317 12525 011c E36A ldr r3, [r4, #44] 12526 011e 0020 movs r0, #0 12527 .LVL892: 5019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12528 .loc 1 5019 11 is_stmt 0 view .LVU4318 12529 0120 0090 str r0, [sp] 12530 0122 D2B2 uxtb r2, r2 12531 0124 2046 mov r0, r4 12532 0126 FFF7FEFF bl I2C_TransferConfig 12533 .LVL893: 5019:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12534 .loc 1 5019 11 view .LVU4319 12535 012a 93E7 b .L772 12536 .LVL894: 12537 .L780: 5024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); ARM GAS /tmp/cchwqEfL.s page 425 12538 .loc 1 5024 11 is_stmt 1 view .LVU4320 12539 012c 0023 movs r3, #0 12540 012e 0093 str r3, [sp] 12541 0130 4FF00073 mov r3, #33554432 12542 0134 D2B2 uxtb r2, r2 12543 0136 2046 mov r0, r4 12544 .LVL895: 5024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12545 .loc 1 5024 11 is_stmt 0 view .LVU4321 12546 0138 FFF7FEFF bl I2C_TransferConfig 12547 .LVL896: 5024:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12548 .loc 1 5024 11 view .LVU4322 12549 013c 8AE7 b .L772 12550 .LVL897: 12551 .L776: 5032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12552 .loc 1 5032 7 is_stmt 1 view .LVU4323 5032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12553 .loc 1 5032 11 is_stmt 0 view .LVU4324 12554 013e 2368 ldr r3, [r4] 12555 0140 5B68 ldr r3, [r3, #4] 5032:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12556 .loc 1 5032 10 view .LVU4325 12557 0142 13F0007F tst r3, #33554432 12558 0146 03D1 bne .L781 5035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12559 .loc 1 5035 9 is_stmt 1 view .LVU4326 12560 0148 2046 mov r0, r4 12561 .LVL898: 5035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12562 .loc 1 5035 9 is_stmt 0 view .LVU4327 12563 014a FFF7FEFF bl I2C_ITMasterSeqCplt 12564 .LVL899: 5035:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12565 .loc 1 5035 9 view .LVU4328 12566 014e 81E7 b .L772 12567 .LVL900: 12568 .L781: 5041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12569 .loc 1 5041 9 is_stmt 1 view .LVU4329 12570 0150 4021 movs r1, #64 12571 .LVL901: 5041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12572 .loc 1 5041 9 is_stmt 0 view .LVU4330 12573 0152 2046 mov r0, r4 12574 .LVL902: 5041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12575 .loc 1 5041 9 view .LVU4331 12576 0154 FFF7FEFF bl I2C_ITError 12577 .LVL903: 5041:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12578 .loc 1 5041 9 view .LVU4332 12579 0158 7CE7 b .L772 12580 .LVL904: 12581 .L775: 5045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) ARM GAS /tmp/cchwqEfL.s page 426 12582 .loc 1 5045 8 is_stmt 1 view .LVU4333 5045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12583 .loc 1 5045 11 is_stmt 0 view .LVU4334 12584 015a 002B cmp r3, #0 12585 015c 3FF47AAF beq .L772 5045:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12586 .loc 1 5045 63 discriminator 1 view .LVU4335 12587 0160 16F0400F tst r6, #64 12588 0164 3FF476AF beq .L772 5048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12589 .loc 1 5048 5 is_stmt 1 view .LVU4336 5048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12590 .loc 1 5048 13 is_stmt 0 view .LVU4337 12591 0168 638D ldrh r3, [r4, #42] 12592 016a 9BB2 uxth r3, r3 5048:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12593 .loc 1 5048 8 view .LVU4338 12594 016c 93B9 cbnz r3, .L782 5050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12595 .loc 1 5050 7 is_stmt 1 view .LVU4339 5050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12596 .loc 1 5050 11 is_stmt 0 view .LVU4340 12597 016e 2368 ldr r3, [r4] 12598 0170 5A68 ldr r2, [r3, #4] 12599 .LVL905: 5050:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12600 .loc 1 5050 10 view .LVU4341 12601 0172 12F0007F tst r2, #33554432 12602 0176 7FF46DAF bne .L772 5053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12603 .loc 1 5053 9 is_stmt 1 view .LVU4342 5053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12604 .loc 1 5053 17 is_stmt 0 view .LVU4343 12605 017a E26A ldr r2, [r4, #44] 5053:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12606 .loc 1 5053 12 view .LVU4344 12607 017c 12F5803F cmn r2, #65536 12608 0180 04D1 bne .L783 5056:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12609 .loc 1 5056 11 is_stmt 1 view .LVU4345 5056:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12610 .loc 1 5056 31 is_stmt 0 view .LVU4346 12611 0182 5A68 ldr r2, [r3, #4] 12612 0184 42F48042 orr r2, r2, #16384 12613 0188 5A60 str r2, [r3, #4] 12614 018a 63E7 b .L772 12615 .L783: 5061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12616 .loc 1 5061 11 is_stmt 1 view .LVU4347 12617 018c 2046 mov r0, r4 12618 .LVL906: 5061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12619 .loc 1 5061 11 is_stmt 0 view .LVU4348 12620 018e FFF7FEFF bl I2C_ITMasterSeqCplt 12621 .LVL907: 5061:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12622 .loc 1 5061 11 view .LVU4349 ARM GAS /tmp/cchwqEfL.s page 427 12623 0192 5FE7 b .L772 12624 .LVL908: 12625 .L782: 5069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12626 .loc 1 5069 7 is_stmt 1 view .LVU4350 12627 0194 4021 movs r1, #64 12628 .LVL909: 5069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12629 .loc 1 5069 7 is_stmt 0 view .LVU4351 12630 0196 2046 mov r0, r4 12631 .LVL910: 5069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12632 .loc 1 5069 7 view .LVU4352 12633 0198 FFF7FEFF bl I2C_ITError 12634 .LVL911: 5069:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12635 .loc 1 5069 7 view .LVU4353 12636 019c 5AE7 b .L772 12637 .LVL912: 12638 .L791: 5081:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12639 .loc 1 5081 5 is_stmt 1 view .LVU4354 12640 019e 2946 mov r1, r5 12641 01a0 2046 mov r0, r4 12642 01a2 FFF7FEFF bl I2C_ITMasterCplt 12643 .LVL913: 12644 01a6 5CE7 b .L784 12645 .LVL914: 12646 .L785: 12647 .LCFI133: 12648 .cfi_def_cfa_offset 0 12649 .cfi_restore 4 12650 .cfi_restore 5 12651 .cfi_restore 6 12652 .cfi_restore 14 4946:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12653 .loc 1 4946 3 is_stmt 0 view .LVU4355 12654 01a8 0220 movs r0, #2 12655 .LVL915: 5088:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12656 .loc 1 5088 1 view .LVU4356 12657 01aa 7047 bx lr 12658 .cfi_endproc 12659 .LFE190: 12661 .section .text.I2C_Mem_ISR_DMA,"ax",%progbits 12662 .align 1 12663 .syntax unified 12664 .thumb 12665 .thumb_func 12666 .fpu fpv5-d16 12668 I2C_Mem_ISR_DMA: 12669 .LVL916: 12670 .LFB194: 5547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 12671 .loc 1 5547 1 is_stmt 1 view -0 12672 .cfi_startproc 12673 @ args = 0, pretend = 0, frame = 0 ARM GAS /tmp/cchwqEfL.s page 428 12674 @ frame_needed = 0, uses_anonymous_args = 0 5548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12675 .loc 1 5548 3 view .LVU4358 5551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12676 .loc 1 5551 3 view .LVU4359 5551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12677 .loc 1 5551 3 view .LVU4360 12678 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12679 0004 012B cmp r3, #1 12680 0006 00F0DC80 beq .L811 5547:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 12681 .loc 1 5547 1 is_stmt 0 discriminator 2 view .LVU4361 12682 000a 10B5 push {r4, lr} 12683 .LCFI134: 12684 .cfi_def_cfa_offset 8 12685 .cfi_offset 4, -8 12686 .cfi_offset 14, -4 12687 000c 82B0 sub sp, sp, #8 12688 .LCFI135: 12689 .cfi_def_cfa_offset 16 12690 000e 0446 mov r4, r0 5551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12691 .loc 1 5551 3 is_stmt 1 discriminator 2 view .LVU4362 12692 0010 0123 movs r3, #1 12693 0012 80F84030 strb r3, [r0, #64] 5551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12694 .loc 1 5551 3 discriminator 2 view .LVU4363 5553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12695 .loc 1 5553 3 discriminator 2 view .LVU4364 5553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12696 .loc 1 5553 6 is_stmt 0 discriminator 2 view .LVU4365 12697 0016 11F0100F tst r1, #16 12698 001a 02D0 beq .L794 5553:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12699 .loc 1 5553 55 discriminator 1 view .LVU4366 12700 001c 12F0100F tst r2, #16 12701 0020 10D1 bne .L817 12702 .L794: 5570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12703 .loc 1 5570 8 is_stmt 1 view .LVU4367 5570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12704 .loc 1 5570 11 is_stmt 0 view .LVU4368 12705 0022 11F0020F tst r1, #2 12706 0026 1BD0 beq .L796 5570:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12707 .loc 1 5570 62 discriminator 1 view .LVU4369 12708 0028 12F0020F tst r2, #2 12709 002c 18D0 beq .L796 5574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12710 .loc 1 5574 5 is_stmt 1 view .LVU4370 5574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12711 .loc 1 5574 9 is_stmt 0 view .LVU4371 12712 002e 2368 ldr r3, [r4] 5574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12713 .loc 1 5574 32 view .LVU4372 12714 0030 226D ldr r2, [r4, #80] 12715 .LVL917: ARM GAS /tmp/cchwqEfL.s page 429 5574:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12716 .loc 1 5574 26 view .LVU4373 12717 0032 9A62 str r2, [r3, #40] 5577:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12718 .loc 1 5577 5 is_stmt 1 view .LVU4374 5577:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12719 .loc 1 5577 22 is_stmt 0 view .LVU4375 12720 0034 4FF0FF33 mov r3, #-1 12721 0038 2365 str r3, [r4, #80] 12722 .LVL918: 12723 .L795: 5693:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12724 .loc 1 5693 3 is_stmt 1 view .LVU4376 5696:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12725 .loc 1 5696 3 view .LVU4377 5696:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12726 .loc 1 5696 3 view .LVU4378 12727 003a 0020 movs r0, #0 12728 003c 84F84000 strb r0, [r4, #64] 5696:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12729 .loc 1 5696 3 view .LVU4379 5698:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12730 .loc 1 5698 3 view .LVU4380 5699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12731 .loc 1 5699 1 is_stmt 0 view .LVU4381 12732 0040 02B0 add sp, sp, #8 12733 .LCFI136: 12734 .cfi_remember_state 12735 .cfi_def_cfa_offset 8 12736 @ sp needed 12737 0042 10BD pop {r4, pc} 12738 .LVL919: 12739 .L817: 12740 .LCFI137: 12741 .cfi_restore_state 5557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12742 .loc 1 5557 5 is_stmt 1 view .LVU4382 12743 0044 0368 ldr r3, [r0] 12744 0046 1022 movs r2, #16 12745 .LVL920: 5557:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12746 .loc 1 5557 5 is_stmt 0 view .LVU4383 12747 0048 DA61 str r2, [r3, #28] 5560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12748 .loc 1 5560 5 is_stmt 1 view .LVU4384 5560:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12749 .loc 1 5560 21 is_stmt 0 view .LVU4385 12750 004a 436C ldr r3, [r0, #68] 12751 004c 43F00403 orr r3, r3, #4 12752 0050 4364 str r3, [r0, #68] 5565:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12753 .loc 1 5565 5 is_stmt 1 view .LVU4386 12754 0052 2021 movs r1, #32 12755 .LVL921: 5565:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12756 .loc 1 5565 5 is_stmt 0 view .LVU4387 12757 0054 FFF7FEFF bl I2C_Enable_IRQ ARM GAS /tmp/cchwqEfL.s page 430 12758 .LVL922: 5568:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12759 .loc 1 5568 5 is_stmt 1 view .LVU4388 12760 0058 2046 mov r0, r4 12761 005a FFF7FEFF bl I2C_Flush_TXDR 12762 .LVL923: 12763 005e ECE7 b .L795 12764 .LVL924: 12765 .L796: 5579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12766 .loc 1 5579 8 view .LVU4389 5579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12767 .loc 1 5579 11 is_stmt 0 view .LVU4390 12768 0060 11F0800F tst r1, #128 12769 0064 02D0 beq .L797 5579:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12770 .loc 1 5579 61 discriminator 1 view .LVU4391 12771 0066 12F0400F tst r2, #64 12772 006a 0FD1 bne .L818 12773 .L797: 5632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12774 .loc 1 5632 8 is_stmt 1 view .LVU4392 5632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12775 .loc 1 5632 11 is_stmt 0 view .LVU4393 12776 006c 11F0400F tst r1, #64 12777 0070 02D0 beq .L804 5632:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12778 .loc 1 5632 60 discriminator 1 view .LVU4394 12779 0072 12F0400F tst r2, #64 12780 0076 58D1 bne .L819 12781 .L804: 5684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12782 .loc 1 5684 8 is_stmt 1 view .LVU4395 5684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12783 .loc 1 5684 11 is_stmt 0 view .LVU4396 12784 0078 11F0200F tst r1, #32 12785 007c DDD0 beq .L795 5684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12786 .loc 1 5684 63 discriminator 1 view .LVU4397 12787 007e 12F0200F tst r2, #32 12788 0082 DAD0 beq .L795 5688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12789 .loc 1 5688 5 is_stmt 1 view .LVU4398 12790 0084 2046 mov r0, r4 12791 .LVL925: 5688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12792 .loc 1 5688 5 is_stmt 0 view .LVU4399 12793 0086 FFF7FEFF bl I2C_ITMasterCplt 12794 .LVL926: 5688:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12795 .loc 1 5688 5 view .LVU4400 12796 008a D6E7 b .L795 12797 .LVL927: 12798 .L818: 5583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12799 .loc 1 5583 5 is_stmt 1 view .LVU4401 12800 008c 0121 movs r1, #1 ARM GAS /tmp/cchwqEfL.s page 431 12801 .LVL928: 5583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12802 .loc 1 5583 5 is_stmt 0 view .LVU4402 12803 008e 2046 mov r0, r4 12804 .LVL929: 5583:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12805 .loc 1 5583 5 view .LVU4403 12806 0090 FFF7FEFF bl I2C_Disable_IRQ 12807 .LVL930: 5586:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12808 .loc 1 5586 5 is_stmt 1 view .LVU4404 12809 0094 1021 movs r1, #16 12810 0096 2046 mov r0, r4 12811 0098 FFF7FEFF bl I2C_Enable_IRQ 12812 .LVL931: 5588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12813 .loc 1 5588 5 view .LVU4405 5588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12814 .loc 1 5588 13 is_stmt 0 view .LVU4406 12815 009c 638D ldrh r3, [r4, #42] 12816 009e 9BB2 uxth r3, r3 5588:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12817 .loc 1 5588 8 view .LVU4407 12818 00a0 002B cmp r3, #0 12819 00a2 3DD0 beq .L798 5591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12820 .loc 1 5591 7 is_stmt 1 view .LVU4408 5591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12821 .loc 1 5591 15 is_stmt 0 view .LVU4409 12822 00a4 638D ldrh r3, [r4, #42] 12823 00a6 9BB2 uxth r3, r3 5591:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12824 .loc 1 5591 10 view .LVU4410 12825 00a8 FF2B cmp r3, #255 12826 00aa 25D9 bls .L799 5594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12827 .loc 1 5594 9 is_stmt 1 view .LVU4411 5594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12828 .loc 1 5594 13 is_stmt 0 view .LVU4412 12829 00ac 2368 ldr r3, [r4] 12830 00ae 9B69 ldr r3, [r3, #24] 5594:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12831 .loc 1 5594 12 view .LVU4413 12832 00b0 13F4803F tst r3, #65536 12833 00b4 1DD0 beq .L800 5596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12834 .loc 1 5596 11 is_stmt 1 view .LVU4414 5596:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12835 .loc 1 5596 26 is_stmt 0 view .LVU4415 12836 00b6 0123 movs r3, #1 12837 00b8 2385 strh r3, [r4, #40] @ movhi 12838 .L801: 5602:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12839 .loc 1 5602 9 is_stmt 1 view .LVU4416 5602:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12840 .loc 1 5602 48 is_stmt 0 view .LVU4417 12841 00ba E16C ldr r1, [r4, #76] ARM GAS /tmp/cchwqEfL.s page 432 5602:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12842 .loc 1 5602 9 view .LVU4418 12843 00bc 0023 movs r3, #0 12844 00be 0093 str r3, [sp] 12845 00c0 4FF08073 mov r3, #16777216 12846 00c4 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 12847 00c8 89B2 uxth r1, r1 12848 00ca 2046 mov r0, r4 12849 00cc FFF7FEFF bl I2C_TransferConfig 12850 .LVL932: 12851 .L802: 5613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12852 .loc 1 5613 7 is_stmt 1 view .LVU4419 5613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12853 .loc 1 5613 23 is_stmt 0 view .LVU4420 12854 00d0 638D ldrh r3, [r4, #42] 12855 00d2 9BB2 uxth r3, r3 5613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12856 .loc 1 5613 30 view .LVU4421 12857 00d4 228D ldrh r2, [r4, #40] 5613:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12858 .loc 1 5613 23 view .LVU4422 12859 00d6 9B1A subs r3, r3, r2 12860 00d8 9BB2 uxth r3, r3 12861 00da 6385 strh r3, [r4, #42] @ movhi 5616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12862 .loc 1 5616 7 is_stmt 1 view .LVU4423 5616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12863 .loc 1 5616 15 is_stmt 0 view .LVU4424 12864 00dc 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12865 00e0 DBB2 uxtb r3, r3 5616:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12866 .loc 1 5616 10 view .LVU4425 12867 00e2 222B cmp r3, #34 12868 00e4 16D0 beq .L820 5622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12869 .loc 1 5622 9 is_stmt 1 view .LVU4426 5622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12870 .loc 1 5622 13 is_stmt 0 view .LVU4427 12871 00e6 2268 ldr r2, [r4] 5622:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12872 .loc 1 5622 29 view .LVU4428 12873 00e8 1368 ldr r3, [r2] 12874 00ea 43F48043 orr r3, r3, #16384 12875 00ee 1360 str r3, [r2] 12876 00f0 A3E7 b .L795 12877 .L800: 5600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12878 .loc 1 5600 11 is_stmt 1 view .LVU4429 5600:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12879 .loc 1 5600 26 is_stmt 0 view .LVU4430 12880 00f2 FF23 movs r3, #255 12881 00f4 2385 strh r3, [r4, #40] @ movhi 12882 00f6 E0E7 b .L801 12883 .L799: 5607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12884 .loc 1 5607 9 is_stmt 1 view .LVU4431 ARM GAS /tmp/cchwqEfL.s page 433 5607:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12885 .loc 1 5607 30 is_stmt 0 view .LVU4432 12886 00f8 628D ldrh r2, [r4, #42] 12887 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, 12888 .loc 1 5607 24 view .LVU4433 12889 00fc 2285 strh r2, [r4, #40] @ movhi 5608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12890 .loc 1 5608 9 is_stmt 1 view .LVU4434 5608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12891 .loc 1 5608 48 is_stmt 0 view .LVU4435 12892 00fe E16C ldr r1, [r4, #76] 5608:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12893 .loc 1 5608 9 view .LVU4436 12894 0100 0023 movs r3, #0 12895 0102 0093 str r3, [sp] 12896 0104 4FF00073 mov r3, #33554432 12897 0108 D2B2 uxtb r2, r2 12898 010a 89B2 uxth r1, r1 12899 010c 2046 mov r0, r4 12900 010e FFF7FEFF bl I2C_TransferConfig 12901 .LVL933: 12902 0112 DDE7 b .L802 12903 .L820: 5618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12904 .loc 1 5618 9 is_stmt 1 view .LVU4437 5618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12905 .loc 1 5618 13 is_stmt 0 view .LVU4438 12906 0114 2268 ldr r2, [r4] 5618:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12907 .loc 1 5618 29 view .LVU4439 12908 0116 1368 ldr r3, [r2] 12909 0118 43F40043 orr r3, r3, #32768 12910 011c 1360 str r3, [r2] 12911 011e 8CE7 b .L795 12912 .L798: 5629:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12913 .loc 1 5629 7 is_stmt 1 view .LVU4440 12914 0120 4021 movs r1, #64 12915 0122 2046 mov r0, r4 12916 0124 FFF7FEFF bl I2C_ITError 12917 .LVL934: 12918 0128 87E7 b .L795 12919 .LVL935: 12920 .L819: 5636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12921 .loc 1 5636 5 view .LVU4441 12922 012a 0121 movs r1, #1 12923 .LVL936: 5636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12924 .loc 1 5636 5 is_stmt 0 view .LVU4442 12925 012c 2046 mov r0, r4 12926 .LVL937: 5636:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12927 .loc 1 5636 5 view .LVU4443 12928 012e FFF7FEFF bl I2C_Disable_IRQ 12929 .LVL938: ARM GAS /tmp/cchwqEfL.s page 434 5639:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12930 .loc 1 5639 5 is_stmt 1 view .LVU4444 12931 0132 1021 movs r1, #16 12932 0134 2046 mov r0, r4 12933 0136 FFF7FEFF bl I2C_Enable_IRQ 12934 .LVL939: 5641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12935 .loc 1 5641 5 view .LVU4445 5641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12936 .loc 1 5641 13 is_stmt 0 view .LVU4446 12937 013a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12938 013e DBB2 uxtb r3, r3 5641:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12939 .loc 1 5641 8 view .LVU4447 12940 0140 222B cmp r3, #34 12941 0142 26D0 beq .L812 5548:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12942 .loc 1 5548 12 view .LVU4448 12943 0144 2048 ldr r0, .L822 12944 .L805: 12945 .LVL940: 5646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12946 .loc 1 5646 5 is_stmt 1 view .LVU4449 5646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12947 .loc 1 5646 13 is_stmt 0 view .LVU4450 12948 0146 638D ldrh r3, [r4, #42] 12949 0148 9BB2 uxth r3, r3 5646:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12950 .loc 1 5646 8 view .LVU4451 12951 014a FF2B cmp r3, #255 12952 014c 26D9 bls .L806 5649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12953 .loc 1 5649 7 is_stmt 1 view .LVU4452 5649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12954 .loc 1 5649 11 is_stmt 0 view .LVU4453 12955 014e 2368 ldr r3, [r4] 12956 0150 9B69 ldr r3, [r3, #24] 5649:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12957 .loc 1 5649 10 view .LVU4454 12958 0152 13F4803F tst r3, #65536 12959 0156 1ED0 beq .L807 5651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12960 .loc 1 5651 9 is_stmt 1 view .LVU4455 5651:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12961 .loc 1 5651 24 is_stmt 0 view .LVU4456 12962 0158 0123 movs r3, #1 12963 015a 2385 strh r3, [r4, #40] @ movhi 12964 .L808: 5659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12965 .loc 1 5659 7 is_stmt 1 view .LVU4457 5659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12966 .loc 1 5659 46 is_stmt 0 view .LVU4458 12967 015c E16C ldr r1, [r4, #76] 5659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12968 .loc 1 5659 7 view .LVU4459 12969 015e 0090 str r0, [sp] 12970 0160 4FF08073 mov r3, #16777216 ARM GAS /tmp/cchwqEfL.s page 435 12971 0164 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 12972 0168 89B2 uxth r1, r1 12973 016a 2046 mov r0, r4 12974 .LVL941: 5659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12975 .loc 1 5659 7 view .LVU4460 12976 016c FFF7FEFF bl I2C_TransferConfig 12977 .LVL942: 12978 .L809: 5672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12979 .loc 1 5672 5 is_stmt 1 view .LVU4461 5672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12980 .loc 1 5672 21 is_stmt 0 view .LVU4462 12981 0170 638D ldrh r3, [r4, #42] 12982 0172 9BB2 uxth r3, r3 5672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12983 .loc 1 5672 28 view .LVU4463 12984 0174 228D ldrh r2, [r4, #40] 5672:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 12985 .loc 1 5672 21 view .LVU4464 12986 0176 9B1A subs r3, r3, r2 12987 0178 9BB2 uxth r3, r3 12988 017a 6385 strh r3, [r4, #42] @ movhi 5675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12989 .loc 1 5675 5 is_stmt 1 view .LVU4465 5675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12990 .loc 1 5675 13 is_stmt 0 view .LVU4466 12991 017c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 12992 0180 DBB2 uxtb r3, r3 5675:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 12993 .loc 1 5675 8 view .LVU4467 12994 0182 222B cmp r3, #34 12995 0184 17D0 beq .L821 5681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12996 .loc 1 5681 7 is_stmt 1 view .LVU4468 5681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12997 .loc 1 5681 11 is_stmt 0 view .LVU4469 12998 0186 2268 ldr r2, [r4] 5681:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 12999 .loc 1 5681 27 view .LVU4470 13000 0188 1368 ldr r3, [r2] 13001 018a 43F48043 orr r3, r3, #16384 13002 018e 1360 str r3, [r2] 13003 0190 53E7 b .L795 13004 .LVL943: 13005 .L812: 5643:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13006 .loc 1 5643 17 view .LVU4471 13007 0192 0E48 ldr r0, .L822+4 13008 0194 D7E7 b .L805 13009 .LVL944: 13010 .L807: 5655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13011 .loc 1 5655 9 is_stmt 1 view .LVU4472 5655:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13012 .loc 1 5655 24 is_stmt 0 view .LVU4473 13013 0196 FF23 movs r3, #255 ARM GAS /tmp/cchwqEfL.s page 436 13014 0198 2385 strh r3, [r4, #40] @ movhi 13015 019a DFE7 b .L808 13016 .L806: 5664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13017 .loc 1 5664 7 is_stmt 1 view .LVU4474 5664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13018 .loc 1 5664 28 is_stmt 0 view .LVU4475 13019 019c 628D ldrh r2, [r4, #42] 13020 019e 92B2 uxth r2, r2 5664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13021 .loc 1 5664 22 view .LVU4476 13022 01a0 2285 strh r2, [r4, #40] @ movhi 5667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13023 .loc 1 5667 7 is_stmt 1 view .LVU4477 5667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13024 .loc 1 5667 46 is_stmt 0 view .LVU4478 13025 01a2 E16C ldr r1, [r4, #76] 5667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13026 .loc 1 5667 7 view .LVU4479 13027 01a4 0090 str r0, [sp] 13028 01a6 4FF00073 mov r3, #33554432 13029 01aa D2B2 uxtb r2, r2 13030 01ac 89B2 uxth r1, r1 13031 01ae 2046 mov r0, r4 13032 .LVL945: 5667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13033 .loc 1 5667 7 view .LVU4480 13034 01b0 FFF7FEFF bl I2C_TransferConfig 13035 .LVL946: 5667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13036 .loc 1 5667 7 view .LVU4481 13037 01b4 DCE7 b .L809 13038 .L821: 5677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13039 .loc 1 5677 7 is_stmt 1 view .LVU4482 5677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13040 .loc 1 5677 11 is_stmt 0 view .LVU4483 13041 01b6 2268 ldr r2, [r4] 5677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13042 .loc 1 5677 27 view .LVU4484 13043 01b8 1368 ldr r3, [r2] 13044 01ba 43F40043 orr r3, r3, #32768 13045 01be 1360 str r3, [r2] 13046 01c0 3BE7 b .L795 13047 .LVL947: 13048 .L811: 13049 .LCFI138: 13050 .cfi_def_cfa_offset 0 13051 .cfi_restore 4 13052 .cfi_restore 14 5551:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13053 .loc 1 5551 3 view .LVU4485 13054 01c2 0220 movs r0, #2 13055 .LVL948: 5699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13056 .loc 1 5699 1 view .LVU4486 13057 01c4 7047 bx lr ARM GAS /tmp/cchwqEfL.s page 437 13058 .L823: 13059 01c6 00BF .align 2 13060 .L822: 13061 01c8 00200080 .word -2147475456 13062 01cc 00240080 .word -2147474432 13063 .cfi_endproc 13064 .LFE194: 13066 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits 13067 .align 1 13068 .syntax unified 13069 .thumb 13070 .thumb_func 13071 .fpu fpv5-d16 13073 I2C_Slave_ISR_DMA: 13074 .LVL949: 13075 .LFB195: 5711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 13076 .loc 1 5711 1 is_stmt 1 view -0 13077 .cfi_startproc 13078 @ args = 0, pretend = 0, frame = 0 13079 @ frame_needed = 0, uses_anonymous_args = 0 5711:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 13080 .loc 1 5711 1 is_stmt 0 view .LVU4488 13081 0000 38B5 push {r3, r4, r5, lr} 13082 .LCFI139: 13083 .cfi_def_cfa_offset 16 13084 .cfi_offset 3, -16 13085 .cfi_offset 4, -12 13086 .cfi_offset 5, -8 13087 .cfi_offset 14, -4 13088 0002 0446 mov r4, r0 5712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13089 .loc 1 5712 3 is_stmt 1 view .LVU4489 5712:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13090 .loc 1 5712 12 is_stmt 0 view .LVU4490 13091 0004 C06A ldr r0, [r0, #44] 13092 .LVL950: 5713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13093 .loc 1 5713 3 is_stmt 1 view .LVU4491 5714:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13094 .loc 1 5714 3 view .LVU4492 5717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13095 .loc 1 5717 3 view .LVU4493 5717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13096 .loc 1 5717 3 view .LVU4494 13097 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 13098 000a 012B cmp r3, #1 13099 000c 00F08680 beq .L839 5717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13100 .loc 1 5717 3 discriminator 2 view .LVU4495 13101 0010 0123 movs r3, #1 13102 0012 84F84030 strb r3, [r4, #64] 5717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13103 .loc 1 5717 3 discriminator 2 view .LVU4496 5720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13104 .loc 1 5720 3 discriminator 2 view .LVU4497 5720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) ARM GAS /tmp/cchwqEfL.s page 438 13105 .loc 1 5720 6 is_stmt 0 discriminator 2 view .LVU4498 13106 0016 11F0200F tst r1, #32 13107 001a 02D0 beq .L826 5720:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13108 .loc 1 5720 58 discriminator 1 view .LVU4499 13109 001c 12F0200F tst r2, #32 13110 0020 17D1 bne .L844 13111 .L826: 5726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13112 .loc 1 5726 8 is_stmt 1 view .LVU4500 5726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13113 .loc 1 5726 11 is_stmt 0 view .LVU4501 13114 0022 11F0100F tst r1, #16 13115 0026 6BD0 beq .L828 5726:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13116 .loc 1 5726 60 discriminator 1 view .LVU4502 13117 0028 12F0100F tst r2, #16 13118 002c 68D0 beq .L828 5733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13119 .loc 1 5733 5 is_stmt 1 view .LVU4503 5733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13120 .loc 1 5733 10 is_stmt 0 view .LVU4504 13121 002e C2F38035 ubfx r5, r2, #14, #1 5733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13122 .loc 1 5733 8 view .LVU4505 13123 0032 12F4804F tst r2, #16384 13124 0036 02D1 bne .L829 5733:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13125 .loc 1 5733 68 discriminator 1 view .LVU4506 13126 0038 12F4004F tst r2, #32768 13127 003c 5CD0 beq .L830 13128 .L829: 5737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13129 .loc 1 5737 7 is_stmt 1 view .LVU4507 5737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13130 .loc 1 5737 15 is_stmt 0 view .LVU4508 13131 003e E36B ldr r3, [r4, #60] 5737:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13132 .loc 1 5737 10 view .LVU4509 13133 0040 5BB1 cbz r3, .L840 5739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13134 .loc 1 5739 9 is_stmt 1 view .LVU4510 5739:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13135 .loc 1 5739 12 is_stmt 0 view .LVU4511 13136 0042 12F4004F tst r2, #32768 13137 0046 0AD0 beq .L841 5741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13138 .loc 1 5741 11 is_stmt 1 view .LVU4512 5741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13139 .loc 1 5741 15 is_stmt 0 view .LVU4513 13140 0048 1B68 ldr r3, [r3] 13141 004a 5B68 ldr r3, [r3, #4] 5741:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13142 .loc 1 5741 14 view .LVU4514 13143 004c 4BB3 cbz r3, .L842 5713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13144 .loc 1 5713 12 view .LVU4515 ARM GAS /tmp/cchwqEfL.s page 439 13145 004e 0022 movs r2, #0 13146 .LVL951: 5713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13147 .loc 1 5713 12 view .LVU4516 13148 0050 06E0 b .L831 13149 .LVL952: 13150 .L844: 5724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13151 .loc 1 5724 5 is_stmt 1 view .LVU4517 13152 0052 2046 mov r0, r4 13153 .LVL953: 5724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13154 .loc 1 5724 5 is_stmt 0 view .LVU4518 13155 0054 FFF7FEFF bl I2C_ITSlaveCplt 13156 .LVL954: 5724:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13157 .loc 1 5724 5 view .LVU4519 13158 0058 58E0 b .L827 13159 .LVL955: 13160 .L840: 5713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13161 .loc 1 5713 12 view .LVU4520 13162 005a 0022 movs r2, #0 13163 .LVL956: 5713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13164 .loc 1 5713 12 view .LVU4521 13165 005c 00E0 b .L831 13166 .LVL957: 13167 .L841: 5713:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13168 .loc 1 5713 12 view .LVU4522 13169 005e 0022 movs r2, #0 13170 .LVL958: 13171 .L831: 5749:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13172 .loc 1 5749 7 is_stmt 1 view .LVU4523 5749:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13173 .loc 1 5749 15 is_stmt 0 view .LVU4524 13174 0060 A36B ldr r3, [r4, #56] 5749:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13175 .loc 1 5749 10 view .LVU4525 13176 0062 1BB1 cbz r3, .L832 5751:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13177 .loc 1 5751 9 is_stmt 1 view .LVU4526 5751:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13178 .loc 1 5751 12 is_stmt 0 view .LVU4527 13179 0064 15B1 cbz r5, .L832 5753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13180 .loc 1 5753 11 is_stmt 1 view .LVU4528 5753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13181 .loc 1 5753 15 is_stmt 0 view .LVU4529 13182 0066 1B68 ldr r3, [r3] 13183 0068 5B68 ldr r3, [r3, #4] 5753:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13184 .loc 1 5753 14 view .LVU4530 13185 006a E3B1 cbz r3, .L833 13186 .L832: ARM GAS /tmp/cchwqEfL.s page 440 5760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13187 .loc 1 5760 7 is_stmt 1 view .LVU4531 5760:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13188 .loc 1 5760 10 is_stmt 0 view .LVU4532 13189 006c DAB9 cbnz r2, .L833 5791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13190 .loc 1 5791 9 is_stmt 1 view .LVU4533 13191 006e 2368 ldr r3, [r4] 13192 0070 1022 movs r2, #16 13193 .LVL959: 5791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13194 .loc 1 5791 9 is_stmt 0 view .LVU4534 13195 0072 DA61 str r2, [r3, #28] 5794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13196 .loc 1 5794 9 is_stmt 1 view .LVU4535 5794:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13197 .loc 1 5794 25 is_stmt 0 view .LVU4536 13198 0074 636C ldr r3, [r4, #68] 13199 0076 43F00403 orr r3, r3, #4 13200 007a 6364 str r3, [r4, #68] 5797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13201 .loc 1 5797 9 is_stmt 1 view .LVU4537 5797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13202 .loc 1 5797 18 is_stmt 0 view .LVU4538 13203 007c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13204 0080 DBB2 uxtb r3, r3 13205 .LVL960: 5799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13206 .loc 1 5799 9 is_stmt 1 view .LVU4539 5799:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13207 .loc 1 5799 12 is_stmt 0 view .LVU4540 13208 0082 B0F1807F cmp r0, #16777216 13209 0086 18BF it ne 13210 0088 0028 cmpne r0, #0 13211 008a 3FD1 bne .L827 5801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13212 .loc 1 5801 11 is_stmt 1 view .LVU4541 5801:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13213 .loc 1 5801 14 is_stmt 0 view .LVU4542 13214 008c 292B cmp r3, #41 13215 008e 18BF it ne 13216 0090 212B cmpne r3, #33 13217 0092 2AD1 bne .L837 5803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13218 .loc 1 5803 13 is_stmt 1 view .LVU4543 5803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13219 .loc 1 5803 33 is_stmt 0 view .LVU4544 13220 0094 2123 movs r3, #33 13221 .LVL961: 5803:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13222 .loc 1 5803 33 view .LVU4545 13223 0096 2363 str r3, [r4, #48] 13224 .L838: 5812:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13225 .loc 1 5812 11 is_stmt 1 view .LVU4546 5815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13226 .loc 1 5815 11 view .LVU4547 ARM GAS /tmp/cchwqEfL.s page 441 13227 0098 616C ldr r1, [r4, #68] 13228 .LVL962: 5815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13229 .loc 1 5815 11 is_stmt 0 view .LVU4548 13230 009a 2046 mov r0, r4 13231 .LVL963: 5815:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13232 .loc 1 5815 11 view .LVU4549 13233 009c FFF7FEFF bl I2C_ITError 13234 .LVL964: 13235 00a0 34E0 b .L827 13236 .LVL965: 13237 .L842: 5743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13238 .loc 1 5743 26 view .LVU4550 13239 00a2 0122 movs r2, #1 13240 .LVL966: 5743:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13241 .loc 1 5743 26 view .LVU4551 13242 00a4 DCE7 b .L831 13243 .LVL967: 13244 .L833: 5762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13245 .loc 1 5762 9 is_stmt 1 view .LVU4552 5762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13246 .loc 1 5762 18 is_stmt 0 view .LVU4553 13247 00a6 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13248 00aa 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 13249 .loc 1 5762 12 view .LVU4554 13250 00ac 282B cmp r3, #40 13251 00ae 08D0 beq .L845 13252 .L835: 5769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13253 .loc 1 5769 14 is_stmt 1 view .LVU4555 5769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13254 .loc 1 5769 23 is_stmt 0 view .LVU4556 13255 00b0 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13256 00b4 DBB2 uxtb r3, r3 5769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13257 .loc 1 5769 17 view .LVU4557 13258 00b6 292B cmp r3, #41 13259 00b8 0AD0 beq .L846 13260 .L836: 5784:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13261 .loc 1 5784 11 is_stmt 1 view .LVU4558 13262 00ba 2368 ldr r3, [r4] 13263 00bc 1022 movs r2, #16 13264 00be DA61 str r2, [r3, #28] 13265 00c0 24E0 b .L827 13266 .L845: 5762:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13267 .loc 1 5762 51 is_stmt 0 discriminator 1 view .LVU4559 13268 00c2 B0F1007F cmp r0, #33554432 13269 00c6 F3D1 bne .L835 5767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13270 .loc 1 5767 11 is_stmt 1 view .LVU4560 ARM GAS /tmp/cchwqEfL.s page 442 13271 00c8 2046 mov r0, r4 13272 .LVL968: 5767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13273 .loc 1 5767 11 is_stmt 0 view .LVU4561 13274 00ca FFF7FEFF bl I2C_ITListenCplt 13275 .LVL969: 5767:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13276 .loc 1 5767 11 view .LVU4562 13277 00ce 1DE0 b .L827 13278 .LVL970: 13279 .L846: 5769:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13280 .loc 1 5769 64 discriminator 1 view .LVU4563 13281 00d0 10F5803F cmn r0, #65536 13282 00d4 F1D0 beq .L836 5772:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13283 .loc 1 5772 11 is_stmt 1 view .LVU4564 13284 00d6 2368 ldr r3, [r4] 13285 00d8 1022 movs r2, #16 13286 00da DA61 str r2, [r3, #28] 5775:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13287 .loc 1 5775 11 view .LVU4565 13288 00dc 2046 mov r0, r4 13289 .LVL971: 5775:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13290 .loc 1 5775 11 is_stmt 0 view .LVU4566 13291 00de FFF7FEFF bl I2C_Flush_TXDR 13292 .LVL972: 5779:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13293 .loc 1 5779 11 is_stmt 1 view .LVU4567 13294 00e2 2046 mov r0, r4 13295 00e4 FFF7FEFF bl I2C_ITSlaveSeqCplt 13296 .LVL973: 13297 00e8 10E0 b .L827 13298 .LVL974: 13299 .L837: 5805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13300 .loc 1 5805 16 view .LVU4568 5805:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13301 .loc 1 5805 19 is_stmt 0 view .LVU4569 13302 00ea 2A2B cmp r3, #42 13303 00ec 18BF it ne 13304 00ee 222B cmpne r3, #34 13305 00f0 D2D1 bne .L838 5807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13306 .loc 1 5807 13 is_stmt 1 view .LVU4570 5807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13307 .loc 1 5807 33 is_stmt 0 view .LVU4571 13308 00f2 2223 movs r3, #34 13309 .LVL975: 5807:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13310 .loc 1 5807 33 view .LVU4572 13311 00f4 2363 str r3, [r4, #48] 13312 00f6 CFE7 b .L838 13313 .LVL976: 13314 .L830: 5822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/cchwqEfL.s page 443 13315 .loc 1 5822 7 is_stmt 1 view .LVU4573 13316 00f8 2368 ldr r3, [r4] 13317 00fa 1022 movs r2, #16 13318 .LVL977: 5822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13319 .loc 1 5822 7 is_stmt 0 view .LVU4574 13320 00fc DA61 str r2, [r3, #28] 13321 00fe 05E0 b .L827 13322 .LVL978: 13323 .L828: 5825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13324 .loc 1 5825 8 is_stmt 1 view .LVU4575 5825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13325 .loc 1 5825 11 is_stmt 0 view .LVU4576 13326 0100 11F0080F tst r1, #8 13327 0104 02D0 beq .L827 5825:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13328 .loc 1 5825 62 discriminator 1 view .LVU4577 13329 0106 12F0080F tst r2, #8 13330 010a 03D1 bne .L847 13331 .LVL979: 13332 .L827: 5833:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13333 .loc 1 5833 3 is_stmt 1 view .LVU4578 5836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13334 .loc 1 5836 3 view .LVU4579 5836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13335 .loc 1 5836 3 view .LVU4580 13336 010c 0020 movs r0, #0 13337 010e 84F84000 strb r0, [r4, #64] 5836:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13338 .loc 1 5836 3 view .LVU4581 5838:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13339 .loc 1 5838 3 view .LVU4582 13340 .L825: 5839:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13341 .loc 1 5839 1 is_stmt 0 view .LVU4583 13342 0112 38BD pop {r3, r4, r5, pc} 13343 .LVL980: 13344 .L847: 5828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13345 .loc 1 5828 5 is_stmt 1 view .LVU4584 13346 0114 2046 mov r0, r4 13347 .LVL981: 5828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13348 .loc 1 5828 5 is_stmt 0 view .LVU4585 13349 0116 FFF7FEFF bl I2C_ITAddrCplt 13350 .LVL982: 5828:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13351 .loc 1 5828 5 view .LVU4586 13352 011a F7E7 b .L827 13353 .LVL983: 13354 .L839: 5717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13355 .loc 1 5717 3 view .LVU4587 13356 011c 0220 movs r0, #2 13357 .LVL984: ARM GAS /tmp/cchwqEfL.s page 444 5717:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13358 .loc 1 5717 3 view .LVU4588 13359 011e F8E7 b .L825 13360 .cfi_endproc 13361 .LFE195: 13363 .section .text.I2C_Master_ISR_DMA,"ax",%progbits 13364 .align 1 13365 .syntax unified 13366 .thumb 13367 .thumb_func 13368 .fpu fpv5-d16 13370 I2C_Master_ISR_DMA: 13371 .LVL985: 13372 .LFB193: 5399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t devaddress; 13373 .loc 1 5399 1 is_stmt 1 view -0 13374 .cfi_startproc 13375 @ args = 0, pretend = 0, frame = 0 13376 @ frame_needed = 0, uses_anonymous_args = 0 5400:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t xfermode; 13377 .loc 1 5400 3 view .LVU4590 5401:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13378 .loc 1 5401 3 view .LVU4591 5404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13379 .loc 1 5404 3 view .LVU4592 5404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13380 .loc 1 5404 3 view .LVU4593 13381 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 13382 0004 012B cmp r3, #1 13383 0006 00F0A380 beq .L862 5399:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint16_t devaddress; 13384 .loc 1 5399 1 is_stmt 0 discriminator 2 view .LVU4594 13385 000a 10B5 push {r4, lr} 13386 .LCFI140: 13387 .cfi_def_cfa_offset 8 13388 .cfi_offset 4, -8 13389 .cfi_offset 14, -4 13390 000c 82B0 sub sp, sp, #8 13391 .LCFI141: 13392 .cfi_def_cfa_offset 16 13393 000e 0446 mov r4, r0 5404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13394 .loc 1 5404 3 is_stmt 1 discriminator 2 view .LVU4595 13395 0010 0123 movs r3, #1 13396 0012 80F84030 strb r3, [r0, #64] 5404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13397 .loc 1 5404 3 discriminator 2 view .LVU4596 5406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13398 .loc 1 5406 3 discriminator 2 view .LVU4597 5406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13399 .loc 1 5406 6 is_stmt 0 discriminator 2 view .LVU4598 13400 0016 11F0100F tst r1, #16 13401 001a 02D0 beq .L850 5406:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13402 .loc 1 5406 55 discriminator 1 view .LVU4599 13403 001c 12F0100F tst r2, #16 13404 0020 1FD1 bne .L868 ARM GAS /tmp/cchwqEfL.s page 445 13405 .L850: 5423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13406 .loc 1 5423 8 is_stmt 1 view .LVU4600 5423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13407 .loc 1 5423 11 is_stmt 0 view .LVU4601 13408 0022 11F0800F tst r1, #128 13409 0026 69D0 beq .L852 5423:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13410 .loc 1 5423 61 discriminator 1 view .LVU4602 13411 0028 12F0400F tst r2, #64 13412 002c 66D0 beq .L852 5427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13413 .loc 1 5427 5 is_stmt 1 view .LVU4603 13414 002e 2268 ldr r2, [r4] 13415 .LVL986: 5427:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13416 .loc 1 5427 5 is_stmt 0 view .LVU4604 13417 0030 1368 ldr r3, [r2] 13418 0032 23F04003 bic r3, r3, #64 13419 0036 1360 str r3, [r2] 5429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13420 .loc 1 5429 5 is_stmt 1 view .LVU4605 5429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13421 .loc 1 5429 13 is_stmt 0 view .LVU4606 13422 0038 638D ldrh r3, [r4, #42] 13423 003a 9BB2 uxth r3, r3 5429:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13424 .loc 1 5429 8 view .LVU4607 13425 003c 002B cmp r3, #0 13426 003e 4FD0 beq .L853 5432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13427 .loc 1 5432 7 is_stmt 1 view .LVU4608 5432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13428 .loc 1 5432 35 is_stmt 0 view .LVU4609 13429 0040 2268 ldr r2, [r4] 5432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13430 .loc 1 5432 45 view .LVU4610 13431 0042 5168 ldr r1, [r2, #4] 13432 .LVL987: 5432:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13433 .loc 1 5432 18 view .LVU4611 13434 0044 C1F30901 ubfx r1, r1, #0, #10 13435 .LVL988: 5435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13436 .loc 1 5435 7 is_stmt 1 view .LVU4612 5435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13437 .loc 1 5435 15 is_stmt 0 view .LVU4613 13438 0048 638D ldrh r3, [r4, #42] 13439 004a 9BB2 uxth r3, r3 5435:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13440 .loc 1 5435 10 view .LVU4614 13441 004c FF2B cmp r3, #255 13442 004e 1FD9 bls .L854 5438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13443 .loc 1 5438 9 is_stmt 1 view .LVU4615 5438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13444 .loc 1 5438 13 is_stmt 0 view .LVU4616 ARM GAS /tmp/cchwqEfL.s page 446 13445 0050 9369 ldr r3, [r2, #24] 5438:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13446 .loc 1 5438 12 view .LVU4617 13447 0052 13F4803F tst r3, #65536 13448 0056 16D0 beq .L855 5440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13449 .loc 1 5440 11 is_stmt 1 view .LVU4618 5440:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13450 .loc 1 5440 26 is_stmt 0 view .LVU4619 13451 0058 0123 movs r3, #1 13452 005a 2385 strh r3, [r4, #40] @ movhi 5446:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13453 .loc 1 5446 18 view .LVU4620 13454 005c 4FF08073 mov r3, #16777216 13455 0060 1DE0 b .L856 13456 .LVL989: 13457 .L868: 5410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13458 .loc 1 5410 5 is_stmt 1 view .LVU4621 13459 0062 0368 ldr r3, [r0] 13460 0064 1022 movs r2, #16 13461 .LVL990: 5410:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13462 .loc 1 5410 5 is_stmt 0 view .LVU4622 13463 0066 DA61 str r2, [r3, #28] 5413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13464 .loc 1 5413 5 is_stmt 1 view .LVU4623 5413:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13465 .loc 1 5413 21 is_stmt 0 view .LVU4624 13466 0068 436C ldr r3, [r0, #68] 13467 006a 43F00403 orr r3, r3, #4 13468 006e 4364 str r3, [r0, #68] 5418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13469 .loc 1 5418 5 is_stmt 1 view .LVU4625 13470 0070 2021 movs r1, #32 13471 .LVL991: 5418:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13472 .loc 1 5418 5 is_stmt 0 view .LVU4626 13473 0072 FFF7FEFF bl I2C_Enable_IRQ 13474 .LVL992: 5421:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13475 .loc 1 5421 5 is_stmt 1 view .LVU4627 13476 0076 2046 mov r0, r4 13477 0078 FFF7FEFF bl I2C_Flush_TXDR 13478 .LVL993: 13479 .L851: 5529:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13480 .loc 1 5529 3 view .LVU4628 5532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13481 .loc 1 5532 3 view .LVU4629 5532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13482 .loc 1 5532 3 view .LVU4630 13483 007c 0020 movs r0, #0 13484 007e 84F84000 strb r0, [r4, #64] 5532:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13485 .loc 1 5532 3 view .LVU4631 5534:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/cchwqEfL.s page 447 13486 .loc 1 5534 3 view .LVU4632 5535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13487 .loc 1 5535 1 is_stmt 0 view .LVU4633 13488 0082 02B0 add sp, sp, #8 13489 .LCFI142: 13490 .cfi_remember_state 13491 .cfi_def_cfa_offset 8 13492 @ sp needed 13493 0084 10BD pop {r4, pc} 13494 .LVL994: 13495 .L855: 13496 .LCFI143: 13497 .cfi_restore_state 5444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13498 .loc 1 5444 11 is_stmt 1 view .LVU4634 5444:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13499 .loc 1 5444 26 is_stmt 0 view .LVU4635 13500 0086 FF23 movs r3, #255 13501 0088 2385 strh r3, [r4, #40] @ movhi 5446:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13502 .loc 1 5446 18 view .LVU4636 13503 008a 4FF08073 mov r3, #16777216 13504 008e 06E0 b .L856 13505 .L854: 5450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13506 .loc 1 5450 9 is_stmt 1 view .LVU4637 5450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13507 .loc 1 5450 30 is_stmt 0 view .LVU4638 13508 0090 638D ldrh r3, [r4, #42] 5450:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13509 .loc 1 5450 24 view .LVU4639 13510 0092 2385 strh r3, [r4, #40] @ movhi 5451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13511 .loc 1 5451 9 is_stmt 1 view .LVU4640 5451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13512 .loc 1 5451 17 is_stmt 0 view .LVU4641 13513 0094 E36A ldr r3, [r4, #44] 5451:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13514 .loc 1 5451 12 view .LVU4642 13515 0096 13F5803F cmn r3, #65536 13516 009a 18D0 beq .L863 5453:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13517 .loc 1 5453 11 is_stmt 1 view .LVU4643 5453:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13518 .loc 1 5453 20 is_stmt 0 view .LVU4644 13519 009c E36A ldr r3, [r4, #44] 13520 .LVL995: 13521 .L856: 5462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13522 .loc 1 5462 7 is_stmt 1 view .LVU4645 13523 009e 0022 movs r2, #0 13524 00a0 0092 str r2, [sp] 13525 00a2 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 13526 00a6 2046 mov r0, r4 13527 .LVL996: 5462:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13528 .loc 1 5462 7 is_stmt 0 view .LVU4646 ARM GAS /tmp/cchwqEfL.s page 448 13529 00a8 FFF7FEFF bl I2C_TransferConfig 13530 .LVL997: 5465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13531 .loc 1 5465 7 is_stmt 1 view .LVU4647 5465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13532 .loc 1 5465 23 is_stmt 0 view .LVU4648 13533 00ac 638D ldrh r3, [r4, #42] 13534 00ae 9BB2 uxth r3, r3 5465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13535 .loc 1 5465 30 view .LVU4649 13536 00b0 228D ldrh r2, [r4, #40] 5465:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13537 .loc 1 5465 23 view .LVU4650 13538 00b2 9B1A subs r3, r3, r2 13539 00b4 9BB2 uxth r3, r3 13540 00b6 6385 strh r3, [r4, #42] @ movhi 5468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13541 .loc 1 5468 7 is_stmt 1 view .LVU4651 5468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13542 .loc 1 5468 15 is_stmt 0 view .LVU4652 13543 00b8 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13544 00bc DBB2 uxtb r3, r3 5468:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13545 .loc 1 5468 10 view .LVU4653 13546 00be 222B cmp r3, #34 13547 00c0 08D0 beq .L869 5474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13548 .loc 1 5474 9 is_stmt 1 view .LVU4654 5474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13549 .loc 1 5474 13 is_stmt 0 view .LVU4655 13550 00c2 2268 ldr r2, [r4] 5474:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13551 .loc 1 5474 29 view .LVU4656 13552 00c4 1368 ldr r3, [r2] 13553 00c6 43F48043 orr r3, r3, #16384 13554 00ca 1360 str r3, [r2] 13555 00cc D6E7 b .L851 13556 .LVL998: 13557 .L863: 5457:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13558 .loc 1 5457 20 view .LVU4657 13559 00ce 4FF00073 mov r3, #33554432 13560 00d2 E4E7 b .L856 13561 .LVL999: 13562 .L869: 5470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13563 .loc 1 5470 9 is_stmt 1 view .LVU4658 5470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13564 .loc 1 5470 13 is_stmt 0 view .LVU4659 13565 00d4 2268 ldr r2, [r4] 5470:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13566 .loc 1 5470 29 view .LVU4660 13567 00d6 1368 ldr r3, [r2] 13568 00d8 43F40043 orr r3, r3, #32768 13569 00dc 1360 str r3, [r2] 13570 00de CDE7 b .L851 13571 .LVL1000: ARM GAS /tmp/cchwqEfL.s page 449 13572 .L853: 5480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13573 .loc 1 5480 7 is_stmt 1 view .LVU4661 5480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13574 .loc 1 5480 11 is_stmt 0 view .LVU4662 13575 00e0 2368 ldr r3, [r4] 13576 00e2 5B68 ldr r3, [r3, #4] 5480:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13577 .loc 1 5480 10 view .LVU4663 13578 00e4 13F0007F tst r3, #33554432 13579 00e8 03D1 bne .L858 5483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13580 .loc 1 5483 9 is_stmt 1 view .LVU4664 13581 00ea 2046 mov r0, r4 13582 .LVL1001: 5483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13583 .loc 1 5483 9 is_stmt 0 view .LVU4665 13584 00ec FFF7FEFF bl I2C_ITMasterSeqCplt 13585 .LVL1002: 5483:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13586 .loc 1 5483 9 view .LVU4666 13587 00f0 C4E7 b .L851 13588 .LVL1003: 13589 .L858: 5489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13590 .loc 1 5489 9 is_stmt 1 view .LVU4667 13591 00f2 4021 movs r1, #64 13592 .LVL1004: 5489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13593 .loc 1 5489 9 is_stmt 0 view .LVU4668 13594 00f4 2046 mov r0, r4 13595 .LVL1005: 5489:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13596 .loc 1 5489 9 view .LVU4669 13597 00f6 FFF7FEFF bl I2C_ITError 13598 .LVL1006: 13599 00fa BFE7 b .L851 13600 .LVL1007: 13601 .L852: 5493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13602 .loc 1 5493 8 is_stmt 1 view .LVU4670 5493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13603 .loc 1 5493 11 is_stmt 0 view .LVU4671 13604 00fc 11F0400F tst r1, #64 13605 0100 1CD0 beq .L859 5493:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13606 .loc 1 5493 60 discriminator 1 view .LVU4672 13607 0102 12F0400F tst r2, #64 13608 0106 19D0 beq .L859 5496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13609 .loc 1 5496 5 is_stmt 1 view .LVU4673 5496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13610 .loc 1 5496 13 is_stmt 0 view .LVU4674 13611 0108 638D ldrh r3, [r4, #42] 13612 010a 9BB2 uxth r3, r3 5496:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13613 .loc 1 5496 8 view .LVU4675 ARM GAS /tmp/cchwqEfL.s page 450 13614 010c 8BB9 cbnz r3, .L860 5498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13615 .loc 1 5498 7 is_stmt 1 view .LVU4676 5498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13616 .loc 1 5498 11 is_stmt 0 view .LVU4677 13617 010e 2368 ldr r3, [r4] 13618 0110 5A68 ldr r2, [r3, #4] 13619 .LVL1008: 5498:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13620 .loc 1 5498 10 view .LVU4678 13621 0112 12F0007F tst r2, #33554432 13622 0116 B1D1 bne .L851 5501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13623 .loc 1 5501 9 is_stmt 1 view .LVU4679 5501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13624 .loc 1 5501 17 is_stmt 0 view .LVU4680 13625 0118 E26A ldr r2, [r4, #44] 5501:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13626 .loc 1 5501 12 view .LVU4681 13627 011a 12F5803F cmn r2, #65536 13628 011e 04D1 bne .L861 5504:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13629 .loc 1 5504 11 is_stmt 1 view .LVU4682 5504:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13630 .loc 1 5504 31 is_stmt 0 view .LVU4683 13631 0120 5A68 ldr r2, [r3, #4] 13632 0122 42F48042 orr r2, r2, #16384 13633 0126 5A60 str r2, [r3, #4] 13634 0128 A8E7 b .L851 13635 .L861: 5509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13636 .loc 1 5509 11 is_stmt 1 view .LVU4684 13637 012a 2046 mov r0, r4 13638 .LVL1009: 5509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13639 .loc 1 5509 11 is_stmt 0 view .LVU4685 13640 012c FFF7FEFF bl I2C_ITMasterSeqCplt 13641 .LVL1010: 5509:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13642 .loc 1 5509 11 view .LVU4686 13643 0130 A4E7 b .L851 13644 .LVL1011: 13645 .L860: 5517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13646 .loc 1 5517 7 is_stmt 1 view .LVU4687 13647 0132 4021 movs r1, #64 13648 .LVL1012: 5517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13649 .loc 1 5517 7 is_stmt 0 view .LVU4688 13650 0134 2046 mov r0, r4 13651 .LVL1013: 5517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13652 .loc 1 5517 7 view .LVU4689 13653 0136 FFF7FEFF bl I2C_ITError 13654 .LVL1014: 5517:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13655 .loc 1 5517 7 view .LVU4690 ARM GAS /tmp/cchwqEfL.s page 451 13656 013a 9FE7 b .L851 13657 .LVL1015: 13658 .L859: 5520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13659 .loc 1 5520 8 is_stmt 1 view .LVU4691 5520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13660 .loc 1 5520 11 is_stmt 0 view .LVU4692 13661 013c 11F0200F tst r1, #32 13662 0140 9CD0 beq .L851 5520:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13663 .loc 1 5520 63 discriminator 1 view .LVU4693 13664 0142 12F0200F tst r2, #32 13665 0146 99D0 beq .L851 5524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13666 .loc 1 5524 5 is_stmt 1 view .LVU4694 13667 0148 2046 mov r0, r4 13668 .LVL1016: 5524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13669 .loc 1 5524 5 is_stmt 0 view .LVU4695 13670 014a FFF7FEFF bl I2C_ITMasterCplt 13671 .LVL1017: 5524:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13672 .loc 1 5524 5 view .LVU4696 13673 014e 95E7 b .L851 13674 .LVL1018: 13675 .L862: 13676 .LCFI144: 13677 .cfi_def_cfa_offset 0 13678 .cfi_restore 4 13679 .cfi_restore 14 5404:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13680 .loc 1 5404 3 view .LVU4697 13681 0150 0220 movs r0, #2 13682 .LVL1019: 5535:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13683 .loc 1 5535 1 view .LVU4698 13684 0152 7047 bx lr 13685 .cfi_endproc 13686 .LFE193: 13688 .section .text.I2C_DMAError,"ax",%progbits 13689 .align 1 13690 .syntax unified 13691 .thumb 13692 .thumb_func 13693 .fpu fpv5-d16 13695 I2C_DMAError: 13696 .LVL1020: 13697 .LFB211: 6948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U; 13698 .loc 1 6948 1 is_stmt 1 view -0 13699 .cfi_startproc 13700 @ args = 0, pretend = 0, frame = 0 13701 @ frame_needed = 0, uses_anonymous_args = 0 6948:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U; 13702 .loc 1 6948 1 is_stmt 0 view .LVU4700 13703 0000 38B5 push {r3, r4, r5, lr} 13704 .LCFI145: ARM GAS /tmp/cchwqEfL.s page 452 13705 .cfi_def_cfa_offset 16 13706 .cfi_offset 3, -16 13707 .cfi_offset 4, -12 13708 .cfi_offset 5, -8 13709 .cfi_offset 14, -4 6949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13710 .loc 1 6949 3 is_stmt 1 view .LVU4701 13711 .LVL1021: 6951:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13712 .loc 1 6951 3 view .LVU4702 6951:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13713 .loc 1 6951 22 is_stmt 0 view .LVU4703 13714 0002 846B ldr r4, [r0, #56] 13715 .LVL1022: 6953:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13716 .loc 1 6953 3 is_stmt 1 view .LVU4704 6953:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13717 .loc 1 6953 11 is_stmt 0 view .LVU4705 13718 0004 A36B ldr r3, [r4, #56] 6953:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13719 .loc 1 6953 6 view .LVU4706 13720 0006 7BB1 cbz r3, .L874 6955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13721 .loc 1 6955 5 is_stmt 1 view .LVU4707 6955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13722 .loc 1 6955 9 is_stmt 0 view .LVU4708 13723 0008 1B68 ldr r3, [r3] 13724 000a 5B68 ldr r3, [r3, #4] 6955:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13725 .loc 1 6955 8 view .LVU4709 13726 000c 73B1 cbz r3, .L875 6949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13727 .loc 1 6949 12 view .LVU4710 13728 000e 0025 movs r5, #0 13729 .L871: 13730 .LVL1023: 6961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13731 .loc 1 6961 3 is_stmt 1 view .LVU4711 6961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13732 .loc 1 6961 11 is_stmt 0 view .LVU4712 13733 0010 E36B ldr r3, [r4, #60] 6961:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13734 .loc 1 6961 6 view .LVU4713 13735 0012 1BB1 cbz r3, .L872 6963:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13736 .loc 1 6963 5 is_stmt 1 view .LVU4714 6963:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13737 .loc 1 6963 9 is_stmt 0 view .LVU4715 13738 0014 1B68 ldr r3, [r3] 13739 0016 5B68 ldr r3, [r3, #4] 6963:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13740 .loc 1 6963 8 view .LVU4716 13741 0018 03B9 cbnz r3, .L872 6965:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13742 .loc 1 6965 21 view .LVU4717 13743 001a 0125 movs r5, #1 13744 .LVL1024: ARM GAS /tmp/cchwqEfL.s page 453 13745 .L872: 6970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13746 .loc 1 6970 3 is_stmt 1 view .LVU4718 6970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13747 .loc 1 6970 10 is_stmt 0 view .LVU4719 13748 001c FFF7FEFF bl HAL_DMA_GetError 13749 .LVL1025: 6970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13750 .loc 1 6970 6 view .LVU4720 13751 0020 0228 cmp r0, #2 13752 0022 00D0 beq .L870 6970:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13753 .loc 1 6970 55 discriminator 1 view .LVU4721 13754 0024 25B9 cbnz r5, .L878 13755 .L870: 6978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13756 .loc 1 6978 1 view .LVU4722 13757 0026 38BD pop {r3, r4, r5, pc} 13758 .LVL1026: 13759 .L874: 6949:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13760 .loc 1 6949 12 view .LVU4723 13761 0028 0025 movs r5, #0 13762 002a F1E7 b .L871 13763 .L875: 6957:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13764 .loc 1 6957 21 view .LVU4724 13765 002c 0125 movs r5, #1 13766 002e EFE7 b .L871 13767 .LVL1027: 13768 .L878: 6973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13769 .loc 1 6973 5 is_stmt 1 view .LVU4725 6973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13770 .loc 1 6973 9 is_stmt 0 view .LVU4726 13771 0030 2268 ldr r2, [r4] 6973:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13772 .loc 1 6973 25 view .LVU4727 13773 0032 5368 ldr r3, [r2, #4] 13774 0034 43F40043 orr r3, r3, #32768 13775 0038 5360 str r3, [r2, #4] 6976:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13776 .loc 1 6976 5 is_stmt 1 view .LVU4728 13777 003a 1021 movs r1, #16 13778 003c 2046 mov r0, r4 13779 003e FFF7FEFF bl I2C_ITError 13780 .LVL1028: 6978:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13781 .loc 1 6978 1 is_stmt 0 view .LVU4729 13782 0042 F0E7 b .L870 13783 .cfi_endproc 13784 .LFE211: 13786 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits 13787 .align 1 13788 .syntax unified 13789 .thumb 13790 .thumb_func ARM GAS /tmp/cchwqEfL.s page 454 13791 .fpu fpv5-d16 13793 I2C_DMAMasterTransmitCplt: 13794 .LVL1029: 13795 .LFB207: 6780:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13796 .loc 1 6780 1 is_stmt 1 view -0 13797 .cfi_startproc 13798 @ args = 0, pretend = 0, frame = 0 13799 @ frame_needed = 0, uses_anonymous_args = 0 6780:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13800 .loc 1 6780 1 is_stmt 0 view .LVU4731 13801 0000 10B5 push {r4, lr} 13802 .LCFI146: 13803 .cfi_def_cfa_offset 8 13804 .cfi_offset 4, -8 13805 .cfi_offset 14, -4 6782:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13806 .loc 1 6782 3 is_stmt 1 view .LVU4732 6782:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13807 .loc 1 6782 22 is_stmt 0 view .LVU4733 13808 0002 846B ldr r4, [r0, #56] 13809 .LVL1030: 6785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13810 .loc 1 6785 3 is_stmt 1 view .LVU4734 6785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13811 .loc 1 6785 7 is_stmt 0 view .LVU4735 13812 0004 2268 ldr r2, [r4] 6785:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13813 .loc 1 6785 23 view .LVU4736 13814 0006 1368 ldr r3, [r2] 13815 0008 23F48043 bic r3, r3, #16384 13816 000c 1360 str r3, [r2] 6788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13817 .loc 1 6788 3 is_stmt 1 view .LVU4737 6788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13818 .loc 1 6788 11 is_stmt 0 view .LVU4738 13819 000e 638D ldrh r3, [r4, #42] 13820 0010 9BB2 uxth r3, r3 6788:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13821 .loc 1 6788 6 view .LVU4739 13822 0012 ABB1 cbz r3, .L886 6797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13823 .loc 1 6797 5 is_stmt 1 view .LVU4740 6797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13824 .loc 1 6797 27 is_stmt 0 view .LVU4741 13825 0014 238D ldrh r3, [r4, #40] 6797:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13826 .loc 1 6797 20 view .LVU4742 13827 0016 616A ldr r1, [r4, #36] 13828 0018 1944 add r1, r1, r3 13829 001a 6162 str r1, [r4, #36] 6800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13830 .loc 1 6800 5 is_stmt 1 view .LVU4743 6800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13831 .loc 1 6800 13 is_stmt 0 view .LVU4744 13832 001c 638D ldrh r3, [r4, #42] 13833 001e 9BB2 uxth r3, r3 ARM GAS /tmp/cchwqEfL.s page 455 6800:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13834 .loc 1 6800 8 view .LVU4745 13835 0020 FF2B cmp r3, #255 13836 0022 12D9 bls .L882 6802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13837 .loc 1 6802 7 is_stmt 1 view .LVU4746 6802:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13838 .loc 1 6802 22 is_stmt 0 view .LVU4747 13839 0024 FF23 movs r3, #255 13840 0026 2385 strh r3, [r4, #40] @ movhi 13841 .L883: 6810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13842 .loc 1 6810 5 is_stmt 1 view .LVU4748 6810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13843 .loc 1 6810 81 is_stmt 0 view .LVU4749 13844 0028 2268 ldr r2, [r4] 6810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13845 .loc 1 6810 9 view .LVU4750 13846 002a 238D ldrh r3, [r4, #40] 13847 002c 2832 adds r2, r2, #40 13848 002e A06B ldr r0, [r4, #56] 13849 .LVL1031: 6810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13850 .loc 1 6810 9 view .LVU4751 13851 0030 FFF7FEFF bl HAL_DMA_Start_IT 13852 .LVL1032: 6810:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13853 .loc 1 6810 8 view .LVU4752 13854 0034 60B1 cbz r0, .L884 6814:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13855 .loc 1 6814 7 is_stmt 1 view .LVU4753 13856 0036 1021 movs r1, #16 13857 0038 2046 mov r0, r4 13858 003a FFF7FEFF bl I2C_ITError 13859 .LVL1033: 13860 .L879: 6822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13861 .loc 1 6822 1 is_stmt 0 view .LVU4754 13862 003e 10BD pop {r4, pc} 13863 .LVL1034: 13864 .L886: 6791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13865 .loc 1 6791 5 is_stmt 1 view .LVU4755 13866 0040 2021 movs r1, #32 13867 0042 2046 mov r0, r4 13868 .LVL1035: 6791:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13869 .loc 1 6791 5 is_stmt 0 view .LVU4756 13870 0044 FFF7FEFF bl I2C_Enable_IRQ 13871 .LVL1036: 13872 0048 F9E7 b .L879 13873 .LVL1037: 13874 .L882: 6806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13875 .loc 1 6806 7 is_stmt 1 view .LVU4757 6806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13876 .loc 1 6806 28 is_stmt 0 view .LVU4758 ARM GAS /tmp/cchwqEfL.s page 456 13877 004a 638D ldrh r3, [r4, #42] 6806:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13878 .loc 1 6806 22 view .LVU4759 13879 004c 2385 strh r3, [r4, #40] @ movhi 13880 004e EBE7 b .L883 13881 .LVL1038: 13882 .L884: 6819:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13883 .loc 1 6819 7 is_stmt 1 view .LVU4760 13884 0050 4021 movs r1, #64 13885 0052 2046 mov r0, r4 13886 0054 FFF7FEFF bl I2C_Enable_IRQ 13887 .LVL1039: 6822:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13888 .loc 1 6822 1 is_stmt 0 view .LVU4761 13889 0058 F1E7 b .L879 13890 .cfi_endproc 13891 .LFE207: 13893 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits 13894 .align 1 13895 .syntax unified 13896 .thumb 13897 .thumb_func 13898 .fpu fpv5-d16 13900 I2C_DMAMasterReceiveCplt: 13901 .LVL1040: 13902 .LFB209: 6860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13903 .loc 1 6860 1 is_stmt 1 view -0 13904 .cfi_startproc 13905 @ args = 0, pretend = 0, frame = 0 13906 @ frame_needed = 0, uses_anonymous_args = 0 6860:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13907 .loc 1 6860 1 is_stmt 0 view .LVU4763 13908 0000 10B5 push {r4, lr} 13909 .LCFI147: 13910 .cfi_def_cfa_offset 8 13911 .cfi_offset 4, -8 13912 .cfi_offset 14, -4 6862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13913 .loc 1 6862 3 is_stmt 1 view .LVU4764 6862:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13914 .loc 1 6862 22 is_stmt 0 view .LVU4765 13915 0002 846B ldr r4, [r0, #56] 13916 .LVL1041: 6865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13917 .loc 1 6865 3 is_stmt 1 view .LVU4766 6865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13918 .loc 1 6865 7 is_stmt 0 view .LVU4767 13919 0004 2268 ldr r2, [r4] 6865:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13920 .loc 1 6865 23 view .LVU4768 13921 0006 1368 ldr r3, [r2] 13922 0008 23F40043 bic r3, r3, #32768 13923 000c 1360 str r3, [r2] 6868:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13924 .loc 1 6868 3 is_stmt 1 view .LVU4769 ARM GAS /tmp/cchwqEfL.s page 457 6868:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13925 .loc 1 6868 11 is_stmt 0 view .LVU4770 13926 000e 638D ldrh r3, [r4, #42] 13927 0010 9BB2 uxth r3, r3 6868:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13928 .loc 1 6868 6 view .LVU4771 13929 0012 7BB1 cbz r3, .L895 6877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13930 .loc 1 6877 5 is_stmt 1 view .LVU4772 6877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13931 .loc 1 6877 27 is_stmt 0 view .LVU4773 13932 0014 238D ldrh r3, [r4, #40] 6877:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13933 .loc 1 6877 20 view .LVU4774 13934 0016 626A ldr r2, [r4, #36] 13935 0018 1A44 add r2, r2, r3 13936 001a 6262 str r2, [r4, #36] 6880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13937 .loc 1 6880 5 is_stmt 1 view .LVU4775 6880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13938 .loc 1 6880 13 is_stmt 0 view .LVU4776 13939 001c 638D ldrh r3, [r4, #42] 13940 001e 9BB2 uxth r3, r3 6880:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13941 .loc 1 6880 8 view .LVU4777 13942 0020 FF2B cmp r3, #255 13943 0022 0FD9 bls .L890 6883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13944 .loc 1 6883 7 is_stmt 1 view .LVU4778 6883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13945 .loc 1 6883 11 is_stmt 0 view .LVU4779 13946 0024 2368 ldr r3, [r4] 13947 0026 9B69 ldr r3, [r3, #24] 6883:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 13948 .loc 1 6883 10 view .LVU4780 13949 0028 13F4803F tst r3, #65536 13950 002c 07D0 beq .L891 6885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13951 .loc 1 6885 9 is_stmt 1 view .LVU4781 6885:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13952 .loc 1 6885 24 is_stmt 0 view .LVU4782 13953 002e 0123 movs r3, #1 13954 0030 2385 strh r3, [r4, #40] @ movhi 13955 0032 09E0 b .L892 13956 .L895: 6871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13957 .loc 1 6871 5 is_stmt 1 view .LVU4783 13958 0034 2021 movs r1, #32 13959 0036 2046 mov r0, r4 13960 .LVL1042: 6871:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13961 .loc 1 6871 5 is_stmt 0 view .LVU4784 13962 0038 FFF7FEFF bl I2C_Enable_IRQ 13963 .LVL1043: 13964 003c 0FE0 b .L887 13965 .LVL1044: 13966 .L891: ARM GAS /tmp/cchwqEfL.s page 458 6889:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13967 .loc 1 6889 9 is_stmt 1 view .LVU4785 6889:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13968 .loc 1 6889 24 is_stmt 0 view .LVU4786 13969 003e FF23 movs r3, #255 13970 0040 2385 strh r3, [r4, #40] @ movhi 13971 0042 01E0 b .L892 13972 .L890: 6894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13973 .loc 1 6894 7 is_stmt 1 view .LVU4787 6894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13974 .loc 1 6894 28 is_stmt 0 view .LVU4788 13975 0044 638D ldrh r3, [r4, #42] 6894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13976 .loc 1 6894 22 view .LVU4789 13977 0046 2385 strh r3, [r4, #40] @ movhi 13978 .L892: 6898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13979 .loc 1 6898 5 is_stmt 1 view .LVU4790 6898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13980 .loc 1 6898 55 is_stmt 0 view .LVU4791 13981 0048 2168 ldr r1, [r4] 6898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13982 .loc 1 6898 9 view .LVU4792 13983 004a 238D ldrh r3, [r4, #40] 13984 004c 2431 adds r1, r1, #36 13985 004e E06B ldr r0, [r4, #60] 13986 .LVL1045: 6898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13987 .loc 1 6898 9 view .LVU4793 13988 0050 FFF7FEFF bl HAL_DMA_Start_IT 13989 .LVL1046: 6898:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 13990 .loc 1 6898 8 view .LVU4794 13991 0054 20B1 cbz r0, .L893 6902:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 13992 .loc 1 6902 7 is_stmt 1 view .LVU4795 13993 0056 1021 movs r1, #16 13994 0058 2046 mov r0, r4 13995 005a FFF7FEFF bl I2C_ITError 13996 .LVL1047: 13997 .L887: 6910:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 13998 .loc 1 6910 1 is_stmt 0 view .LVU4796 13999 005e 10BD pop {r4, pc} 14000 .LVL1048: 14001 .L893: 6907:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14002 .loc 1 6907 7 is_stmt 1 view .LVU4797 14003 0060 4021 movs r1, #64 14004 0062 2046 mov r0, r4 14005 0064 FFF7FEFF bl I2C_Enable_IRQ 14006 .LVL1049: 6910:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14007 .loc 1 6910 1 is_stmt 0 view .LVU4798 14008 0068 F9E7 b .L887 14009 .cfi_endproc ARM GAS /tmp/cchwqEfL.s page 459 14010 .LFE209: 14012 .section .text.I2C_Mem_ISR_IT,"ax",%progbits 14013 .align 1 14014 .syntax unified 14015 .thumb 14016 .thumb_func 14017 .fpu fpv5-d16 14019 I2C_Mem_ISR_IT: 14020 .LVL1050: 14021 .LFB191: 5100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 14022 .loc 1 5100 1 is_stmt 1 view -0 14023 .cfi_startproc 14024 @ args = 0, pretend = 0, frame = 0 14025 @ frame_needed = 0, uses_anonymous_args = 0 5101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 14026 .loc 1 5101 3 view .LVU4800 5102:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14027 .loc 1 5102 3 view .LVU4801 5105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14028 .loc 1 5105 3 view .LVU4802 5105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14029 .loc 1 5105 3 view .LVU4803 14030 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 14031 0004 012B cmp r3, #1 14032 0006 00F0D580 beq .L913 5100:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 14033 .loc 1 5100 1 is_stmt 0 discriminator 2 view .LVU4804 14034 000a 70B5 push {r4, r5, r6, lr} 14035 .LCFI148: 14036 .cfi_def_cfa_offset 16 14037 .cfi_offset 4, -16 14038 .cfi_offset 5, -12 14039 .cfi_offset 6, -8 14040 .cfi_offset 14, -4 14041 000c 82B0 sub sp, sp, #8 14042 .LCFI149: 14043 .cfi_def_cfa_offset 24 14044 000e 0446 mov r4, r0 14045 0010 0D46 mov r5, r1 14046 0012 1646 mov r6, r2 5105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14047 .loc 1 5105 3 is_stmt 1 discriminator 2 view .LVU4805 14048 0014 0123 movs r3, #1 14049 0016 80F84030 strb r3, [r0, #64] 5105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14050 .loc 1 5105 3 discriminator 2 view .LVU4806 5107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14051 .loc 1 5107 3 discriminator 2 view .LVU4807 5107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14052 .loc 1 5107 6 is_stmt 0 discriminator 2 view .LVU4808 14053 001a 11F0100F tst r1, #16 14054 001e 02D0 beq .L898 5107:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14055 .loc 1 5107 58 discriminator 1 view .LVU4809 14056 0020 12F0100F tst r2, #16 14057 0024 22D1 bne .L919 ARM GAS /tmp/cchwqEfL.s page 460 14058 .L898: 5121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 14059 .loc 1 5121 8 is_stmt 1 view .LVU4810 5121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 14060 .loc 1 5121 11 is_stmt 0 view .LVU4811 14061 0026 15F0040F tst r5, #4 14062 002a 29D0 beq .L900 5121:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 14063 .loc 1 5121 65 discriminator 1 view .LVU4812 14064 002c 16F0040F tst r6, #4 14065 0030 26D0 beq .L900 5125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14066 .loc 1 5125 5 is_stmt 1 view .LVU4813 5125:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14067 .loc 1 5125 16 is_stmt 0 view .LVU4814 14068 0032 25F00405 bic r5, r5, #4 14069 .LVL1051: 5128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14070 .loc 1 5128 5 is_stmt 1 view .LVU4815 5128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14071 .loc 1 5128 36 is_stmt 0 view .LVU4816 14072 0036 2368 ldr r3, [r4] 5128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14073 .loc 1 5128 46 view .LVU4817 14074 0038 5A6A ldr r2, [r3, #36] 14075 .LVL1052: 5128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14076 .loc 1 5128 10 view .LVU4818 14077 003a 636A ldr r3, [r4, #36] 5128:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14078 .loc 1 5128 21 view .LVU4819 14079 003c 1A70 strb r2, [r3] 5131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14080 .loc 1 5131 5 is_stmt 1 view .LVU4820 5131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14081 .loc 1 5131 9 is_stmt 0 view .LVU4821 14082 003e 636A ldr r3, [r4, #36] 5131:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14083 .loc 1 5131 19 view .LVU4822 14084 0040 0133 adds r3, r3, #1 14085 0042 6362 str r3, [r4, #36] 5133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 14086 .loc 1 5133 5 is_stmt 1 view .LVU4823 5133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 14087 .loc 1 5133 9 is_stmt 0 view .LVU4824 14088 0044 238D ldrh r3, [r4, #40] 5133:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 14089 .loc 1 5133 19 view .LVU4825 14090 0046 013B subs r3, r3, #1 14091 0048 2385 strh r3, [r4, #40] @ movhi 5134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14092 .loc 1 5134 5 is_stmt 1 view .LVU4826 5134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14093 .loc 1 5134 9 is_stmt 0 view .LVU4827 14094 004a 638D ldrh r3, [r4, #42] 14095 004c 9BB2 uxth r3, r3 5134:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/cchwqEfL.s page 461 14096 .loc 1 5134 20 view .LVU4828 14097 004e 013B subs r3, r3, #1 14098 0050 9BB2 uxth r3, r3 14099 0052 6385 strh r3, [r4, #42] @ movhi 14100 .LVL1053: 14101 .L899: 5234:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14102 .loc 1 5234 3 is_stmt 1 view .LVU4829 5236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14103 .loc 1 5236 3 view .LVU4830 5236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14104 .loc 1 5236 6 is_stmt 0 view .LVU4831 14105 0054 15F0200F tst r5, #32 14106 0058 03D0 beq .L912 5236:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14107 .loc 1 5236 61 discriminator 1 view .LVU4832 14108 005a 16F0200F tst r6, #32 14109 005e 40F0A480 bne .L920 14110 .L912: 5244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14111 .loc 1 5244 3 is_stmt 1 view .LVU4833 5244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14112 .loc 1 5244 3 view .LVU4834 14113 0062 0020 movs r0, #0 14114 0064 84F84000 strb r0, [r4, #64] 5244:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14115 .loc 1 5244 3 view .LVU4835 5246:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14116 .loc 1 5246 3 view .LVU4836 5247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14117 .loc 1 5247 1 is_stmt 0 view .LVU4837 14118 0068 02B0 add sp, sp, #8 14119 .LCFI150: 14120 .cfi_remember_state 14121 .cfi_def_cfa_offset 16 14122 @ sp needed 14123 006a 70BD pop {r4, r5, r6, pc} 14124 .LVL1054: 14125 .L919: 14126 .LCFI151: 14127 .cfi_restore_state 5111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14128 .loc 1 5111 5 is_stmt 1 view .LVU4838 14129 006c 0368 ldr r3, [r0] 14130 006e 1022 movs r2, #16 14131 .LVL1055: 5111:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14132 .loc 1 5111 5 is_stmt 0 view .LVU4839 14133 0070 DA61 str r2, [r3, #28] 5116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14134 .loc 1 5116 5 is_stmt 1 view .LVU4840 5116:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14135 .loc 1 5116 21 is_stmt 0 view .LVU4841 14136 0072 436C ldr r3, [r0, #68] 14137 0074 43F00403 orr r3, r3, #4 14138 0078 4364 str r3, [r0, #68] 5119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } ARM GAS /tmp/cchwqEfL.s page 462 14139 .loc 1 5119 5 is_stmt 1 view .LVU4842 14140 007a FFF7FEFF bl I2C_Flush_TXDR 14141 .LVL1056: 5119:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14142 .loc 1 5119 5 is_stmt 0 view .LVU4843 14143 007e E9E7 b .L899 14144 .LVL1057: 14145 .L900: 5136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14146 .loc 1 5136 8 is_stmt 1 view .LVU4844 5136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14147 .loc 1 5136 11 is_stmt 0 view .LVU4845 14148 0080 15F0020F tst r5, #2 14149 0084 1DD0 beq .L901 5136:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14150 .loc 1 5136 65 discriminator 1 view .LVU4846 14151 0086 16F0020F tst r6, #2 14152 008a 1AD0 beq .L901 5139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14153 .loc 1 5139 5 is_stmt 1 view .LVU4847 5139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14154 .loc 1 5139 13 is_stmt 0 view .LVU4848 14155 008c 236D ldr r3, [r4, #80] 5139:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14156 .loc 1 5139 8 view .LVU4849 14157 008e B3F1FF3F cmp r3, #-1 14158 0092 06D0 beq .L921 5153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14159 .loc 1 5153 7 is_stmt 1 view .LVU4850 5153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14160 .loc 1 5153 11 is_stmt 0 view .LVU4851 14161 0094 2368 ldr r3, [r4] 5153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14162 .loc 1 5153 34 view .LVU4852 14163 0096 226D ldr r2, [r4, #80] 14164 .LVL1058: 5153:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14165 .loc 1 5153 28 view .LVU4853 14166 0098 9A62 str r2, [r3, #40] 5156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14167 .loc 1 5156 7 is_stmt 1 view .LVU4854 5156:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14168 .loc 1 5156 24 is_stmt 0 view .LVU4855 14169 009a 4FF0FF33 mov r3, #-1 14170 009e 2365 str r3, [r4, #80] 14171 00a0 D8E7 b .L899 14172 .LVL1059: 14173 .L921: 5142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14174 .loc 1 5142 7 is_stmt 1 view .LVU4856 5142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14175 .loc 1 5142 35 is_stmt 0 view .LVU4857 14176 00a2 626A ldr r2, [r4, #36] 14177 .LVL1060: 5142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14178 .loc 1 5142 11 view .LVU4858 14179 00a4 2368 ldr r3, [r4] ARM GAS /tmp/cchwqEfL.s page 463 5142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14180 .loc 1 5142 30 view .LVU4859 14181 00a6 1278 ldrb r2, [r2] @ zero_extendqisi2 5142:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14182 .loc 1 5142 28 view .LVU4860 14183 00a8 9A62 str r2, [r3, #40] 5145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14184 .loc 1 5145 7 is_stmt 1 view .LVU4861 5145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14185 .loc 1 5145 11 is_stmt 0 view .LVU4862 14186 00aa 636A ldr r3, [r4, #36] 5145:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14187 .loc 1 5145 21 view .LVU4863 14188 00ac 0133 adds r3, r3, #1 14189 00ae 6362 str r3, [r4, #36] 5147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 14190 .loc 1 5147 7 is_stmt 1 view .LVU4864 5147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 14191 .loc 1 5147 11 is_stmt 0 view .LVU4865 14192 00b0 238D ldrh r3, [r4, #40] 5147:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** hi2c->XferCount--; 14193 .loc 1 5147 21 view .LVU4866 14194 00b2 013B subs r3, r3, #1 14195 00b4 2385 strh r3, [r4, #40] @ movhi 5148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14196 .loc 1 5148 7 is_stmt 1 view .LVU4867 5148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14197 .loc 1 5148 11 is_stmt 0 view .LVU4868 14198 00b6 638D ldrh r3, [r4, #42] 14199 00b8 9BB2 uxth r3, r3 5148:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14200 .loc 1 5148 22 view .LVU4869 14201 00ba 013B subs r3, r3, #1 14202 00bc 9BB2 uxth r3, r3 14203 00be 6385 strh r3, [r4, #42] @ movhi 14204 00c0 C8E7 b .L899 14205 .LVL1061: 14206 .L901: 5159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14207 .loc 1 5159 8 is_stmt 1 view .LVU4870 5159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14208 .loc 1 5159 11 is_stmt 0 view .LVU4871 14209 00c2 15F0800F tst r5, #128 14210 00c6 34D0 beq .L903 5159:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14211 .loc 1 5159 64 discriminator 1 view .LVU4872 14212 00c8 16F0400F tst r6, #64 14213 00cc 31D0 beq .L903 5162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14214 .loc 1 5162 5 is_stmt 1 view .LVU4873 5162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14215 .loc 1 5162 14 is_stmt 0 view .LVU4874 14216 00ce 638D ldrh r3, [r4, #42] 14217 00d0 9BB2 uxth r3, r3 5162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14218 .loc 1 5162 8 view .LVU4875 14219 00d2 4BB3 cbz r3, .L904 ARM GAS /tmp/cchwqEfL.s page 464 5162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14220 .loc 1 5162 41 discriminator 1 view .LVU4876 14221 00d4 238D ldrh r3, [r4, #40] 5162:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14222 .loc 1 5162 33 discriminator 1 view .LVU4877 14223 00d6 3BBB cbnz r3, .L904 5164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14224 .loc 1 5164 7 is_stmt 1 view .LVU4878 5164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14225 .loc 1 5164 15 is_stmt 0 view .LVU4879 14226 00d8 638D ldrh r3, [r4, #42] 14227 00da 9BB2 uxth r3, r3 5164:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14228 .loc 1 5164 10 view .LVU4880 14229 00dc FF2B cmp r3, #255 14230 00de 15D9 bls .L905 5167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14231 .loc 1 5167 9 is_stmt 1 view .LVU4881 5167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14232 .loc 1 5167 13 is_stmt 0 view .LVU4882 14233 00e0 2368 ldr r3, [r4] 14234 00e2 9B69 ldr r3, [r3, #24] 5167:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14235 .loc 1 5167 12 view .LVU4883 14236 00e4 13F4803F tst r3, #65536 14237 00e8 0DD0 beq .L906 5169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14238 .loc 1 5169 11 is_stmt 1 view .LVU4884 5169:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14239 .loc 1 5169 26 is_stmt 0 view .LVU4885 14240 00ea 0123 movs r3, #1 14241 00ec 2385 strh r3, [r4, #40] @ movhi 14242 .L907: 5175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14243 .loc 1 5175 9 is_stmt 1 view .LVU4886 5175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14244 .loc 1 5175 48 is_stmt 0 view .LVU4887 14245 00ee E16C ldr r1, [r4, #76] 14246 .LVL1062: 5175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14247 .loc 1 5175 9 view .LVU4888 14248 00f0 0023 movs r3, #0 14249 00f2 0093 str r3, [sp] 14250 00f4 4FF08073 mov r3, #16777216 14251 00f8 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 14252 .LVL1063: 5175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14253 .loc 1 5175 9 view .LVU4889 14254 00fc 89B2 uxth r1, r1 14255 00fe 2046 mov r0, r4 14256 .LVL1064: 5175:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14257 .loc 1 5175 9 view .LVU4890 14258 0100 FFF7FEFF bl I2C_TransferConfig 14259 .LVL1065: 14260 0104 A6E7 b .L899 14261 .LVL1066: ARM GAS /tmp/cchwqEfL.s page 465 14262 .L906: 5173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14263 .loc 1 5173 11 is_stmt 1 view .LVU4891 5173:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14264 .loc 1 5173 26 is_stmt 0 view .LVU4892 14265 0106 FF23 movs r3, #255 14266 0108 2385 strh r3, [r4, #40] @ movhi 14267 010a F0E7 b .L907 14268 .L905: 5180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14269 .loc 1 5180 9 is_stmt 1 view .LVU4893 5180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14270 .loc 1 5180 30 is_stmt 0 view .LVU4894 14271 010c 628D ldrh r2, [r4, #42] 14272 .LVL1067: 5180:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14273 .loc 1 5180 30 view .LVU4895 14274 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, 14275 .loc 1 5180 24 view .LVU4896 14276 0110 2285 strh r2, [r4, #40] @ movhi 5181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14277 .loc 1 5181 9 is_stmt 1 view .LVU4897 5181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14278 .loc 1 5181 48 is_stmt 0 view .LVU4898 14279 0112 E16C ldr r1, [r4, #76] 14280 .LVL1068: 5181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14281 .loc 1 5181 9 view .LVU4899 14282 0114 0023 movs r3, #0 14283 0116 0093 str r3, [sp] 14284 0118 4FF00073 mov r3, #33554432 14285 011c D2B2 uxtb r2, r2 14286 011e 89B2 uxth r1, r1 14287 0120 2046 mov r0, r4 14288 .LVL1069: 5181:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14289 .loc 1 5181 9 view .LVU4900 14290 0122 FFF7FEFF bl I2C_TransferConfig 14291 .LVL1070: 14292 0126 95E7 b .L899 14293 .LVL1071: 14294 .L904: 5189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14295 .loc 1 5189 7 is_stmt 1 view .LVU4901 14296 0128 4021 movs r1, #64 14297 .LVL1072: 5189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14298 .loc 1 5189 7 is_stmt 0 view .LVU4902 14299 012a 2046 mov r0, r4 14300 .LVL1073: 5189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14301 .loc 1 5189 7 view .LVU4903 14302 012c FFF7FEFF bl I2C_ITError 14303 .LVL1074: 5189:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14304 .loc 1 5189 7 view .LVU4904 ARM GAS /tmp/cchwqEfL.s page 466 14305 0130 90E7 b .L899 14306 .LVL1075: 14307 .L903: 5192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14308 .loc 1 5192 8 is_stmt 1 view .LVU4905 5192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14309 .loc 1 5192 11 is_stmt 0 view .LVU4906 14310 0132 15F0400F tst r5, #64 14311 0136 8DD0 beq .L899 5192:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14312 .loc 1 5192 63 discriminator 1 view .LVU4907 14313 0138 16F0400F tst r6, #64 14314 013c 8AD0 beq .L899 5196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14315 .loc 1 5196 5 is_stmt 1 view .LVU4908 14316 013e 0121 movs r1, #1 14317 .LVL1076: 5196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14318 .loc 1 5196 5 is_stmt 0 view .LVU4909 14319 0140 2046 mov r0, r4 14320 .LVL1077: 5196:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14321 .loc 1 5196 5 view .LVU4910 14322 0142 FFF7FEFF bl I2C_Disable_IRQ 14323 .LVL1078: 5199:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14324 .loc 1 5199 5 is_stmt 1 view .LVU4911 14325 0146 0221 movs r1, #2 14326 0148 2046 mov r0, r4 14327 014a FFF7FEFF bl I2C_Enable_IRQ 14328 .LVL1079: 5201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14329 .loc 1 5201 5 view .LVU4912 5201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14330 .loc 1 5201 13 is_stmt 0 view .LVU4913 14331 014e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 14332 0152 DBB2 uxtb r3, r3 5201:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14333 .loc 1 5201 8 view .LVU4914 14334 0154 222B cmp r3, #34 14335 0156 16D0 beq .L914 5101:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 14336 .loc 1 5101 12 view .LVU4915 14337 0158 1748 ldr r0, .L922 14338 .L908: 14339 .LVL1080: 5206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14340 .loc 1 5206 5 is_stmt 1 view .LVU4916 5206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14341 .loc 1 5206 13 is_stmt 0 view .LVU4917 14342 015a 638D ldrh r3, [r4, #42] 14343 015c 9BB2 uxth r3, r3 5206:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14344 .loc 1 5206 8 view .LVU4918 14345 015e FF2B cmp r3, #255 14346 0160 16D9 bls .L909 5209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { ARM GAS /tmp/cchwqEfL.s page 467 14347 .loc 1 5209 7 is_stmt 1 view .LVU4919 5209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14348 .loc 1 5209 11 is_stmt 0 view .LVU4920 14349 0162 2368 ldr r3, [r4] 14350 0164 9B69 ldr r3, [r3, #24] 5209:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14351 .loc 1 5209 10 view .LVU4921 14352 0166 13F4803F tst r3, #65536 14353 016a 0ED0 beq .L910 5211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14354 .loc 1 5211 9 is_stmt 1 view .LVU4922 5211:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14355 .loc 1 5211 24 is_stmt 0 view .LVU4923 14356 016c 0123 movs r3, #1 14357 016e 2385 strh r3, [r4, #40] @ movhi 14358 .L911: 5219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14359 .loc 1 5219 7 is_stmt 1 view .LVU4924 5219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14360 .loc 1 5219 46 is_stmt 0 view .LVU4925 14361 0170 E16C ldr r1, [r4, #76] 5219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14362 .loc 1 5219 7 view .LVU4926 14363 0172 0090 str r0, [sp] 14364 0174 4FF08073 mov r3, #16777216 14365 0178 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 14366 017c 89B2 uxth r1, r1 14367 017e 2046 mov r0, r4 14368 .LVL1081: 5219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14369 .loc 1 5219 7 view .LVU4927 14370 0180 FFF7FEFF bl I2C_TransferConfig 14371 .LVL1082: 5219:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14372 .loc 1 5219 7 view .LVU4928 14373 0184 66E7 b .L899 14374 .LVL1083: 14375 .L914: 5203:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14376 .loc 1 5203 17 view .LVU4929 14377 0186 0D48 ldr r0, .L922+4 14378 0188 E7E7 b .L908 14379 .LVL1084: 14380 .L910: 5215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14381 .loc 1 5215 9 is_stmt 1 view .LVU4930 5215:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14382 .loc 1 5215 24 is_stmt 0 view .LVU4931 14383 018a FF23 movs r3, #255 14384 018c 2385 strh r3, [r4, #40] @ movhi 14385 018e EFE7 b .L911 14386 .L909: 5224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14387 .loc 1 5224 7 is_stmt 1 view .LVU4932 5224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14388 .loc 1 5224 28 is_stmt 0 view .LVU4933 14389 0190 628D ldrh r2, [r4, #42] ARM GAS /tmp/cchwqEfL.s page 468 14390 0192 92B2 uxth r2, r2 5224:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14391 .loc 1 5224 22 view .LVU4934 14392 0194 2285 strh r2, [r4, #40] @ movhi 5227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14393 .loc 1 5227 7 is_stmt 1 view .LVU4935 5227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14394 .loc 1 5227 46 is_stmt 0 view .LVU4936 14395 0196 E16C ldr r1, [r4, #76] 5227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14396 .loc 1 5227 7 view .LVU4937 14397 0198 0090 str r0, [sp] 14398 019a 4FF00073 mov r3, #33554432 14399 019e D2B2 uxtb r2, r2 14400 01a0 89B2 uxth r1, r1 14401 01a2 2046 mov r0, r4 14402 .LVL1085: 5227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14403 .loc 1 5227 7 view .LVU4938 14404 01a4 FFF7FEFF bl I2C_TransferConfig 14405 .LVL1086: 5227:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14406 .loc 1 5227 7 view .LVU4939 14407 01a8 54E7 b .L899 14408 .LVL1087: 14409 .L920: 5240:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14410 .loc 1 5240 5 is_stmt 1 view .LVU4940 14411 01aa 2946 mov r1, r5 14412 01ac 2046 mov r0, r4 14413 01ae FFF7FEFF bl I2C_ITMasterCplt 14414 .LVL1088: 14415 01b2 56E7 b .L912 14416 .LVL1089: 14417 .L913: 14418 .LCFI152: 14419 .cfi_def_cfa_offset 0 14420 .cfi_restore 4 14421 .cfi_restore 5 14422 .cfi_restore 6 14423 .cfi_restore 14 5105:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14424 .loc 1 5105 3 is_stmt 0 view .LVU4941 14425 01b4 0220 movs r0, #2 14426 .LVL1090: 5247:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14427 .loc 1 5247 1 view .LVU4942 14428 01b6 7047 bx lr 14429 .L923: 14430 .align 2 14431 .L922: 14432 01b8 00200080 .word -2147475456 14433 01bc 00240080 .word -2147474432 14434 .cfi_endproc 14435 .LFE191: 14437 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits 14438 .align 1 ARM GAS /tmp/cchwqEfL.s page 469 14439 .global HAL_I2C_ER_IRQHandler 14440 .syntax unified 14441 .thumb 14442 .thumb_func 14443 .fpu fpv5-d16 14445 HAL_I2C_ER_IRQHandler: 14446 .LVL1091: 14447 .LFB176: 4658:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 14448 .loc 1 4658 1 is_stmt 1 view -0 14449 .cfi_startproc 14450 @ args = 0, pretend = 0, frame = 0 14451 @ 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); 14452 .loc 1 4658 1 is_stmt 0 view .LVU4944 14453 0000 10B5 push {r4, lr} 14454 .LCFI153: 14455 .cfi_def_cfa_offset 8 14456 .cfi_offset 4, -8 14457 .cfi_offset 14, -4 4659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14458 .loc 1 4659 3 is_stmt 1 view .LVU4945 4659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14459 .loc 1 4659 24 is_stmt 0 view .LVU4946 14460 0002 0268 ldr r2, [r0] 4659:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14461 .loc 1 4659 12 view .LVU4947 14462 0004 9369 ldr r3, [r2, #24] 14463 .LVL1092: 4660:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmperror; 14464 .loc 1 4660 3 is_stmt 1 view .LVU4948 4660:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** uint32_t tmperror; 14465 .loc 1 4660 12 is_stmt 0 view .LVU4949 14466 0006 1168 ldr r1, [r2] 14467 .LVL1093: 4661:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14468 .loc 1 4661 3 is_stmt 1 view .LVU4950 4664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14469 .loc 1 4664 3 view .LVU4951 4664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14470 .loc 1 4664 6 is_stmt 0 view .LVU4952 14471 0008 13F4807F tst r3, #256 14472 000c 09D0 beq .L925 4664:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14473 .loc 1 4664 57 discriminator 1 view .LVU4953 14474 000e 11F0800F tst r1, #128 14475 0012 06D0 beq .L925 4667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14476 .loc 1 4667 5 is_stmt 1 view .LVU4954 4667:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14477 .loc 1 4667 21 is_stmt 0 view .LVU4955 14478 0014 446C ldr r4, [r0, #68] 14479 0016 44F00104 orr r4, r4, #1 14480 001a 4464 str r4, [r0, #68] 4670:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14481 .loc 1 4670 5 is_stmt 1 view .LVU4956 14482 001c 4FF48074 mov r4, #256 ARM GAS /tmp/cchwqEfL.s page 470 14483 0020 D461 str r4, [r2, #28] 14484 .L925: 4674:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14485 .loc 1 4674 3 view .LVU4957 4674:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14486 .loc 1 4674 6 is_stmt 0 view .LVU4958 14487 0022 13F4806F tst r3, #1024 14488 0026 0AD0 beq .L926 4674:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14489 .loc 1 4674 56 discriminator 1 view .LVU4959 14490 0028 11F0800F tst r1, #128 14491 002c 07D0 beq .L926 4677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14492 .loc 1 4677 5 is_stmt 1 view .LVU4960 4677:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14493 .loc 1 4677 21 is_stmt 0 view .LVU4961 14494 002e 426C ldr r2, [r0, #68] 14495 0030 42F00802 orr r2, r2, #8 14496 0034 4264 str r2, [r0, #68] 4680:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14497 .loc 1 4680 5 is_stmt 1 view .LVU4962 14498 0036 0268 ldr r2, [r0] 14499 0038 4FF48064 mov r4, #1024 14500 003c D461 str r4, [r2, #28] 14501 .L926: 4684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14502 .loc 1 4684 3 view .LVU4963 4684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14503 .loc 1 4684 6 is_stmt 0 view .LVU4964 14504 003e 13F4007F tst r3, #512 14505 0042 0AD0 beq .L927 4684:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14506 .loc 1 4684 57 discriminator 1 view .LVU4965 14507 0044 11F0800F tst r1, #128 14508 0048 07D0 beq .L927 4687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14509 .loc 1 4687 5 is_stmt 1 view .LVU4966 4687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14510 .loc 1 4687 21 is_stmt 0 view .LVU4967 14511 004a 436C ldr r3, [r0, #68] 14512 .LVL1094: 4687:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14513 .loc 1 4687 21 view .LVU4968 14514 004c 43F00203 orr r3, r3, #2 14515 0050 4364 str r3, [r0, #68] 4690:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14516 .loc 1 4690 5 is_stmt 1 view .LVU4969 14517 0052 0368 ldr r3, [r0] 14518 0054 4FF40072 mov r2, #512 14519 0058 DA61 str r2, [r3, #28] 14520 .L927: 4694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14521 .loc 1 4694 3 view .LVU4970 4694:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14522 .loc 1 4694 12 is_stmt 0 view .LVU4971 14523 005a 416C ldr r1, [r0, #68] 14524 .LVL1095: ARM GAS /tmp/cchwqEfL.s page 471 4697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14525 .loc 1 4697 3 is_stmt 1 view .LVU4972 4697:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14526 .loc 1 4697 6 is_stmt 0 view .LVU4973 14527 005c 11F00B0F tst r1, #11 14528 0060 00D1 bne .L930 14529 .LVL1096: 14530 .L924: 4701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14531 .loc 1 4701 1 view .LVU4974 14532 0062 10BD pop {r4, pc} 14533 .LVL1097: 14534 .L930: 4699:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14535 .loc 1 4699 5 is_stmt 1 view .LVU4975 14536 0064 FFF7FEFF bl I2C_ITError 14537 .LVL1098: 4701:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14538 .loc 1 4701 1 is_stmt 0 view .LVU4976 14539 0068 FBE7 b .L924 14540 .cfi_endproc 14541 .LFE176: 14543 .section .text.I2C_DMAAbort,"ax",%progbits 14544 .align 1 14545 .syntax unified 14546 .thumb 14547 .thumb_func 14548 .fpu fpv5-d16 14550 I2C_DMAAbort: 14551 .LVL1099: 14552 .LFB212: 6988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14553 .loc 1 6988 1 is_stmt 1 view -0 14554 .cfi_startproc 14555 @ args = 0, pretend = 0, frame = 0 14556 @ frame_needed = 0, uses_anonymous_args = 0 6988:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14557 .loc 1 6988 1 is_stmt 0 view .LVU4978 14558 0000 08B5 push {r3, lr} 14559 .LCFI154: 14560 .cfi_def_cfa_offset 8 14561 .cfi_offset 3, -8 14562 .cfi_offset 14, -4 6990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14563 .loc 1 6990 3 is_stmt 1 view .LVU4979 6990:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14564 .loc 1 6990 22 is_stmt 0 view .LVU4980 14565 0002 806B ldr r0, [r0, #56] 14566 .LVL1100: 6993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14567 .loc 1 6993 3 is_stmt 1 view .LVU4981 6993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14568 .loc 1 6993 11 is_stmt 0 view .LVU4982 14569 0004 836B ldr r3, [r0, #56] 6993:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14570 .loc 1 6993 6 view .LVU4983 14571 0006 0BB1 cbz r3, .L932 ARM GAS /tmp/cchwqEfL.s page 472 6995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14572 .loc 1 6995 5 is_stmt 1 view .LVU4984 6995:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14573 .loc 1 6995 37 is_stmt 0 view .LVU4985 14574 0008 0022 movs r2, #0 14575 000a 1A65 str r2, [r3, #80] 14576 .L932: 6997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14577 .loc 1 6997 3 is_stmt 1 view .LVU4986 6997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14578 .loc 1 6997 11 is_stmt 0 view .LVU4987 14579 000c C36B ldr r3, [r0, #60] 6997:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** { 14580 .loc 1 6997 6 view .LVU4988 14581 000e 0BB1 cbz r3, .L933 6999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14582 .loc 1 6999 5 is_stmt 1 view .LVU4989 6999:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14583 .loc 1 6999 37 is_stmt 0 view .LVU4990 14584 0010 0022 movs r2, #0 14585 0012 1A65 str r2, [r3, #80] 14586 .L933: 7002:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14587 .loc 1 7002 3 is_stmt 1 view .LVU4991 14588 0014 FFF7FEFF bl I2C_TreatErrorCallback 14589 .LVL1101: 7003:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14590 .loc 1 7003 1 is_stmt 0 view .LVU4992 14591 0018 08BD pop {r3, pc} 14592 .cfi_endproc 14593 .LFE212: 14595 .section .text.HAL_I2C_GetState,"ax",%progbits 14596 .align 1 14597 .global HAL_I2C_GetState 14598 .syntax unified 14599 .thumb 14600 .thumb_func 14601 .fpu fpv5-d16 14603 HAL_I2C_GetState: 14604 .LVL1102: 14605 .LFB187: 4892:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** /* Return I2C handle state */ 14606 .loc 1 4892 1 is_stmt 1 view -0 14607 .cfi_startproc 14608 @ args = 0, pretend = 0, frame = 0 14609 @ frame_needed = 0, uses_anonymous_args = 0 14610 @ link register save eliminated. 4894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14611 .loc 1 4894 3 view .LVU4994 4894:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14612 .loc 1 4894 14 is_stmt 0 view .LVU4995 14613 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 14614 .LVL1103: 4895:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14615 .loc 1 4895 1 view .LVU4996 14616 0004 7047 bx lr 14617 .cfi_endproc ARM GAS /tmp/cchwqEfL.s page 473 14618 .LFE187: 14620 .section .text.HAL_I2C_GetMode,"ax",%progbits 14621 .align 1 14622 .global HAL_I2C_GetMode 14623 .syntax unified 14624 .thumb 14625 .thumb_func 14626 .fpu fpv5-d16 14628 HAL_I2C_GetMode: 14629 .LVL1104: 14630 .LFB188: 4904:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return hi2c->Mode; 14631 .loc 1 4904 1 is_stmt 1 view -0 14632 .cfi_startproc 14633 @ args = 0, pretend = 0, frame = 0 14634 @ frame_needed = 0, uses_anonymous_args = 0 14635 @ link register save eliminated. 4905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14636 .loc 1 4905 3 view .LVU4998 4905:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14637 .loc 1 4905 14 is_stmt 0 view .LVU4999 14638 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 14639 .LVL1105: 4906:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14640 .loc 1 4906 1 view .LVU5000 14641 0004 7047 bx lr 14642 .cfi_endproc 14643 .LFE188: 14645 .section .text.HAL_I2C_GetError,"ax",%progbits 14646 .align 1 14647 .global HAL_I2C_GetError 14648 .syntax unified 14649 .thumb 14650 .thumb_func 14651 .fpu fpv5-d16 14653 HAL_I2C_GetError: 14654 .LVL1106: 14655 .LFB189: 4915:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** return hi2c->ErrorCode; 14656 .loc 1 4915 1 is_stmt 1 view -0 14657 .cfi_startproc 14658 @ args = 0, pretend = 0, frame = 0 14659 @ frame_needed = 0, uses_anonymous_args = 0 14660 @ link register save eliminated. 4916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14661 .loc 1 4916 3 view .LVU5002 4916:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** } 14662 .loc 1 4916 14 is_stmt 0 view .LVU5003 14663 0000 406C ldr r0, [r0, #68] 14664 .LVL1107: 4917:Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c **** 14665 .loc 1 4917 1 view .LVU5004 14666 0002 7047 bx lr 14667 .cfi_endproc 14668 .LFE189: 14670 .text 14671 .Letext0: ARM GAS /tmp/cchwqEfL.s page 474 14672 .file 2 "/usr/lib/gcc/arm-none-eabi/10.3.1/include/stdint.h" 14673 .file 3 "Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f767xx.h" 14674 .file 4 "Drivers/CMSIS/Device/ST/STM32F7xx/Include/stm32f7xx.h" 14675 .file 5 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_def.h" 14676 .file 6 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_dma.h" 14677 .file 7 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal_i2c.h" 14678 .file 8 "Drivers/STM32F7xx_HAL_Driver/Inc/stm32f7xx_hal.h" ARM GAS /tmp/cchwqEfL.s page 475 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f7xx_hal_i2c.c /tmp/cchwqEfL.s:17 .text.I2C_Flush_TXDR:0000000000000000 $t /tmp/cchwqEfL.s:24 .text.I2C_Flush_TXDR:0000000000000000 I2C_Flush_TXDR /tmp/cchwqEfL.s:63 .text.I2C_TransferConfig:0000000000000000 $t /tmp/cchwqEfL.s:69 .text.I2C_TransferConfig:0000000000000000 I2C_TransferConfig /tmp/cchwqEfL.s:129 .text.I2C_Enable_IRQ:0000000000000000 $t /tmp/cchwqEfL.s:135 .text.I2C_Enable_IRQ:0000000000000000 I2C_Enable_IRQ /tmp/cchwqEfL.s:297 .text.I2C_Enable_IRQ:0000000000000090 $d /tmp/cchwqEfL.s:13370 .text.I2C_Master_ISR_DMA:0000000000000000 I2C_Master_ISR_DMA /tmp/cchwqEfL.s:13073 .text.I2C_Slave_ISR_DMA:0000000000000000 I2C_Slave_ISR_DMA /tmp/cchwqEfL.s:12668 .text.I2C_Mem_ISR_DMA:0000000000000000 I2C_Mem_ISR_DMA /tmp/cchwqEfL.s:304 .text.I2C_Disable_IRQ:0000000000000000 $t /tmp/cchwqEfL.s:310 .text.I2C_Disable_IRQ:0000000000000000 I2C_Disable_IRQ /tmp/cchwqEfL.s:434 .text.I2C_ConvertOtherXferOptions:0000000000000000 $t /tmp/cchwqEfL.s:440 .text.I2C_ConvertOtherXferOptions:0000000000000000 I2C_ConvertOtherXferOptions /tmp/cchwqEfL.s:481 .text.I2C_IsErrorOccurred:0000000000000000 $t /tmp/cchwqEfL.s:487 .text.I2C_IsErrorOccurred:0000000000000000 I2C_IsErrorOccurred /tmp/cchwqEfL.s:768 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 $t /tmp/cchwqEfL.s:774 .text.I2C_WaitOnTXISFlagUntilTimeout:0000000000000000 I2C_WaitOnTXISFlagUntilTimeout /tmp/cchwqEfL.s:871 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 $t /tmp/cchwqEfL.s:877 .text.I2C_WaitOnFlagUntilTimeout:0000000000000000 I2C_WaitOnFlagUntilTimeout /tmp/cchwqEfL.s:986 .text.I2C_RequestMemoryWrite:0000000000000000 $t /tmp/cchwqEfL.s:992 .text.I2C_RequestMemoryWrite:0000000000000000 I2C_RequestMemoryWrite /tmp/cchwqEfL.s:1111 .text.I2C_RequestMemoryWrite:0000000000000078 $d /tmp/cchwqEfL.s:1116 .text.I2C_RequestMemoryRead:0000000000000000 $t /tmp/cchwqEfL.s:1122 .text.I2C_RequestMemoryRead:0000000000000000 I2C_RequestMemoryRead /tmp/cchwqEfL.s:1241 .text.I2C_RequestMemoryRead:0000000000000074 $d /tmp/cchwqEfL.s:1246 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 $t /tmp/cchwqEfL.s:1252 .text.I2C_WaitOnSTOPFlagUntilTimeout:0000000000000000 I2C_WaitOnSTOPFlagUntilTimeout /tmp/cchwqEfL.s:1349 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 $t /tmp/cchwqEfL.s:1355 .text.I2C_WaitOnRXNEFlagUntilTimeout:0000000000000000 I2C_WaitOnRXNEFlagUntilTimeout /tmp/cchwqEfL.s:1518 .text.HAL_I2C_MspInit:0000000000000000 $t /tmp/cchwqEfL.s:1525 .text.HAL_I2C_MspInit:0000000000000000 HAL_I2C_MspInit /tmp/cchwqEfL.s:1540 .text.HAL_I2C_Init:0000000000000000 $t /tmp/cchwqEfL.s:1547 .text.HAL_I2C_Init:0000000000000000 HAL_I2C_Init /tmp/cchwqEfL.s:1739 .text.HAL_I2C_Init:00000000000000c4 $d /tmp/cchwqEfL.s:1744 .text.HAL_I2C_MspDeInit:0000000000000000 $t /tmp/cchwqEfL.s:1751 .text.HAL_I2C_MspDeInit:0000000000000000 HAL_I2C_MspDeInit /tmp/cchwqEfL.s:1766 .text.HAL_I2C_DeInit:0000000000000000 $t /tmp/cchwqEfL.s:1773 .text.HAL_I2C_DeInit:0000000000000000 HAL_I2C_DeInit /tmp/cchwqEfL.s:1838 .text.HAL_I2C_Master_Transmit:0000000000000000 $t /tmp/cchwqEfL.s:1845 .text.HAL_I2C_Master_Transmit:0000000000000000 HAL_I2C_Master_Transmit /tmp/cchwqEfL.s:2203 .text.HAL_I2C_Master_Transmit:00000000000001a0 $d /tmp/cchwqEfL.s:2208 .text.HAL_I2C_Master_Receive:0000000000000000 $t /tmp/cchwqEfL.s:2215 .text.HAL_I2C_Master_Receive:0000000000000000 HAL_I2C_Master_Receive /tmp/cchwqEfL.s:2524 .text.HAL_I2C_Master_Receive:0000000000000178 $d /tmp/cchwqEfL.s:2529 .text.HAL_I2C_Slave_Transmit:0000000000000000 $t /tmp/cchwqEfL.s:2536 .text.HAL_I2C_Slave_Transmit:0000000000000000 HAL_I2C_Slave_Transmit /tmp/cchwqEfL.s:2980 .text.HAL_I2C_Slave_Receive:0000000000000000 $t /tmp/cchwqEfL.s:2987 .text.HAL_I2C_Slave_Receive:0000000000000000 HAL_I2C_Slave_Receive /tmp/cchwqEfL.s:3331 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 $t /tmp/cchwqEfL.s:3338 .text.HAL_I2C_Master_Transmit_IT:0000000000000000 HAL_I2C_Master_Transmit_IT /tmp/cchwqEfL.s:3536 .text.HAL_I2C_Master_Transmit_IT:00000000000000bc $d /tmp/cchwqEfL.s:12266 .text.I2C_Master_ISR_IT:0000000000000000 I2C_Master_ISR_IT /tmp/cchwqEfL.s:3543 .text.HAL_I2C_Master_Receive_IT:0000000000000000 $t /tmp/cchwqEfL.s:3550 .text.HAL_I2C_Master_Receive_IT:0000000000000000 HAL_I2C_Master_Receive_IT ARM GAS /tmp/cchwqEfL.s page 476 /tmp/cchwqEfL.s:3702 .text.HAL_I2C_Master_Receive_IT:000000000000008c $d /tmp/cchwqEfL.s:3709 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 $t /tmp/cchwqEfL.s:3716 .text.HAL_I2C_Slave_Transmit_IT:0000000000000000 HAL_I2C_Slave_Transmit_IT /tmp/cchwqEfL.s:3859 .text.HAL_I2C_Slave_Transmit_IT:0000000000000084 $d /tmp/cchwqEfL.s:11675 .text.I2C_Slave_ISR_IT:0000000000000000 I2C_Slave_ISR_IT /tmp/cchwqEfL.s:3865 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 $t /tmp/cchwqEfL.s:3872 .text.HAL_I2C_Slave_Receive_IT:0000000000000000 HAL_I2C_Slave_Receive_IT /tmp/cchwqEfL.s:3974 .text.HAL_I2C_Slave_Receive_IT:000000000000005c $d /tmp/cchwqEfL.s:3980 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 $t /tmp/cchwqEfL.s:3987 .text.HAL_I2C_Master_Transmit_DMA:0000000000000000 HAL_I2C_Master_Transmit_DMA /tmp/cchwqEfL.s:4332 .text.HAL_I2C_Master_Transmit_DMA:000000000000015c $d /tmp/cchwqEfL.s:13793 .text.I2C_DMAMasterTransmitCplt:0000000000000000 I2C_DMAMasterTransmitCplt /tmp/cchwqEfL.s:13695 .text.I2C_DMAError:0000000000000000 I2C_DMAError /tmp/cchwqEfL.s:4342 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 $t /tmp/cchwqEfL.s:4349 .text.HAL_I2C_Master_Receive_DMA:0000000000000000 HAL_I2C_Master_Receive_DMA /tmp/cchwqEfL.s:4648 .text.HAL_I2C_Master_Receive_DMA:0000000000000138 $d /tmp/cchwqEfL.s:13900 .text.I2C_DMAMasterReceiveCplt:0000000000000000 I2C_DMAMasterReceiveCplt /tmp/cchwqEfL.s:4658 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 $t /tmp/cchwqEfL.s:4665 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Transmit_DMA /tmp/cchwqEfL.s:4965 .text.HAL_I2C_Slave_Transmit_DMA:0000000000000130 $d /tmp/cchwqEfL.s:10368 .text.I2C_DMASlaveTransmitCplt:0000000000000000 I2C_DMASlaveTransmitCplt /tmp/cchwqEfL.s:4973 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 $t /tmp/cchwqEfL.s:4980 .text.HAL_I2C_Slave_Receive_DMA:0000000000000000 HAL_I2C_Slave_Receive_DMA /tmp/cchwqEfL.s:5198 .text.HAL_I2C_Slave_Receive_DMA:00000000000000e4 $d /tmp/cchwqEfL.s:10426 .text.I2C_DMASlaveReceiveCplt:0000000000000000 I2C_DMASlaveReceiveCplt /tmp/cchwqEfL.s:5206 .text.HAL_I2C_Mem_Write:0000000000000000 $t /tmp/cchwqEfL.s:5213 .text.HAL_I2C_Mem_Write:0000000000000000 HAL_I2C_Mem_Write /tmp/cchwqEfL.s:5571 .text.HAL_I2C_Mem_Read:0000000000000000 $t /tmp/cchwqEfL.s:5578 .text.HAL_I2C_Mem_Read:0000000000000000 HAL_I2C_Mem_Read /tmp/cchwqEfL.s:5936 .text.HAL_I2C_Mem_Read:00000000000001ac $d /tmp/cchwqEfL.s:5941 .text.HAL_I2C_Mem_Write_IT:0000000000000000 $t /tmp/cchwqEfL.s:5948 .text.HAL_I2C_Mem_Write_IT:0000000000000000 HAL_I2C_Mem_Write_IT /tmp/cchwqEfL.s:6123 .text.HAL_I2C_Mem_Write_IT:00000000000000ac $d /tmp/cchwqEfL.s:14019 .text.I2C_Mem_ISR_IT:0000000000000000 I2C_Mem_ISR_IT /tmp/cchwqEfL.s:6130 .text.HAL_I2C_Mem_Read_IT:0000000000000000 $t /tmp/cchwqEfL.s:6137 .text.HAL_I2C_Mem_Read_IT:0000000000000000 HAL_I2C_Mem_Read_IT /tmp/cchwqEfL.s:6309 .text.HAL_I2C_Mem_Read_IT:00000000000000a8 $d /tmp/cchwqEfL.s:6316 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 $t /tmp/cchwqEfL.s:6323 .text.HAL_I2C_Mem_Write_DMA:0000000000000000 HAL_I2C_Mem_Write_DMA /tmp/cchwqEfL.s:6606 .text.HAL_I2C_Mem_Write_DMA:0000000000000120 $d /tmp/cchwqEfL.s:6615 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 $t /tmp/cchwqEfL.s:6622 .text.HAL_I2C_Mem_Read_DMA:0000000000000000 HAL_I2C_Mem_Read_DMA /tmp/cchwqEfL.s:6907 .text.HAL_I2C_Mem_Read_DMA:0000000000000120 $d /tmp/cchwqEfL.s:6916 .text.HAL_I2C_IsDeviceReady:0000000000000000 $t /tmp/cchwqEfL.s:6923 .text.HAL_I2C_IsDeviceReady:0000000000000000 HAL_I2C_IsDeviceReady /tmp/cchwqEfL.s:7213 .text.HAL_I2C_IsDeviceReady:0000000000000134 $d /tmp/cchwqEfL.s:7219 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 $t /tmp/cchwqEfL.s:7226 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000000 HAL_I2C_Master_Seq_Transmit_IT /tmp/cchwqEfL.s:7491 .text.HAL_I2C_Master_Seq_Transmit_IT:0000000000000104 $d /tmp/cchwqEfL.s:7497 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 $t /tmp/cchwqEfL.s:7504 .text.HAL_I2C_Master_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Master_Seq_Transmit_DMA /tmp/cchwqEfL.s:7921 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000000001d0 $d /tmp/cchwqEfL.s:7930 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 $t /tmp/cchwqEfL.s:7937 .text.HAL_I2C_Master_Seq_Receive_IT:0000000000000000 HAL_I2C_Master_Seq_Receive_IT /tmp/cchwqEfL.s:8123 .text.HAL_I2C_Master_Seq_Receive_IT:00000000000000ac $d /tmp/cchwqEfL.s:8129 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 $t /tmp/cchwqEfL.s:8136 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000000 HAL_I2C_Master_Seq_Receive_DMA ARM GAS /tmp/cchwqEfL.s page 477 /tmp/cchwqEfL.s:8464 .text.HAL_I2C_Master_Seq_Receive_DMA:0000000000000160 $d /tmp/cchwqEfL.s:8473 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 $t /tmp/cchwqEfL.s:8480 .text.HAL_I2C_Slave_Seq_Transmit_IT:0000000000000000 HAL_I2C_Slave_Seq_Transmit_IT /tmp/cchwqEfL.s:8689 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000000000dc $d /tmp/cchwqEfL.s:14550 .text.I2C_DMAAbort:0000000000000000 I2C_DMAAbort /tmp/cchwqEfL.s:8695 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 $t /tmp/cchwqEfL.s:8702 .text.HAL_I2C_Slave_Seq_Transmit_DMA:0000000000000000 HAL_I2C_Slave_Seq_Transmit_DMA /tmp/cchwqEfL.s:9086 .text.HAL_I2C_Slave_Seq_Transmit_DMA:000000000000019c $d /tmp/cchwqEfL.s:9094 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 $t /tmp/cchwqEfL.s:9101 .text.HAL_I2C_Slave_Seq_Receive_IT:0000000000000000 HAL_I2C_Slave_Seq_Receive_IT /tmp/cchwqEfL.s:9310 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000000000dc $d /tmp/cchwqEfL.s:9316 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 $t /tmp/cchwqEfL.s:9323 .text.HAL_I2C_Slave_Seq_Receive_DMA:0000000000000000 HAL_I2C_Slave_Seq_Receive_DMA /tmp/cchwqEfL.s:9705 .text.HAL_I2C_Slave_Seq_Receive_DMA:000000000000019c $d /tmp/cchwqEfL.s:9713 .text.HAL_I2C_EnableListen_IT:0000000000000000 $t /tmp/cchwqEfL.s:9720 .text.HAL_I2C_EnableListen_IT:0000000000000000 HAL_I2C_EnableListen_IT /tmp/cchwqEfL.s:9767 .text.HAL_I2C_EnableListen_IT:0000000000000028 $d /tmp/cchwqEfL.s:9772 .text.HAL_I2C_DisableListen_IT:0000000000000000 $t /tmp/cchwqEfL.s:9779 .text.HAL_I2C_DisableListen_IT:0000000000000000 HAL_I2C_DisableListen_IT /tmp/cchwqEfL.s:9845 .text.HAL_I2C_Master_Abort_IT:0000000000000000 $t /tmp/cchwqEfL.s:9852 .text.HAL_I2C_Master_Abort_IT:0000000000000000 HAL_I2C_Master_Abort_IT /tmp/cchwqEfL.s:9999 .text.HAL_I2C_Master_Abort_IT:0000000000000084 $d /tmp/cchwqEfL.s:10004 .text.HAL_I2C_EV_IRQHandler:0000000000000000 $t /tmp/cchwqEfL.s:10011 .text.HAL_I2C_EV_IRQHandler:0000000000000000 HAL_I2C_EV_IRQHandler /tmp/cchwqEfL.s:10049 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 $t /tmp/cchwqEfL.s:10056 .text.HAL_I2C_MasterTxCpltCallback:0000000000000000 HAL_I2C_MasterTxCpltCallback /tmp/cchwqEfL.s:10071 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 $t /tmp/cchwqEfL.s:10078 .text.HAL_I2C_MasterRxCpltCallback:0000000000000000 HAL_I2C_MasterRxCpltCallback /tmp/cchwqEfL.s:10093 .text.I2C_ITMasterSeqCplt:0000000000000000 $t /tmp/cchwqEfL.s:10099 .text.I2C_ITMasterSeqCplt:0000000000000000 I2C_ITMasterSeqCplt /tmp/cchwqEfL.s:10184 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 $t /tmp/cchwqEfL.s:10191 .text.HAL_I2C_SlaveTxCpltCallback:0000000000000000 HAL_I2C_SlaveTxCpltCallback /tmp/cchwqEfL.s:10206 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 $t /tmp/cchwqEfL.s:10213 .text.HAL_I2C_SlaveRxCpltCallback:0000000000000000 HAL_I2C_SlaveRxCpltCallback /tmp/cchwqEfL.s:10228 .text.I2C_ITSlaveSeqCplt:0000000000000000 $t /tmp/cchwqEfL.s:10234 .text.I2C_ITSlaveSeqCplt:0000000000000000 I2C_ITSlaveSeqCplt /tmp/cchwqEfL.s:10362 .text.I2C_DMASlaveTransmitCplt:0000000000000000 $t /tmp/cchwqEfL.s:10420 .text.I2C_DMASlaveReceiveCplt:0000000000000000 $t /tmp/cchwqEfL.s:10481 .text.HAL_I2C_AddrCallback:0000000000000000 $t /tmp/cchwqEfL.s:10488 .text.HAL_I2C_AddrCallback:0000000000000000 HAL_I2C_AddrCallback /tmp/cchwqEfL.s:10505 .text.I2C_ITAddrCplt:0000000000000000 $t /tmp/cchwqEfL.s:10511 .text.I2C_ITAddrCplt:0000000000000000 I2C_ITAddrCplt /tmp/cchwqEfL.s:10671 .text.HAL_I2C_ListenCpltCallback:0000000000000000 $t /tmp/cchwqEfL.s:10678 .text.HAL_I2C_ListenCpltCallback:0000000000000000 HAL_I2C_ListenCpltCallback /tmp/cchwqEfL.s:10693 .text.I2C_ITListenCplt:0000000000000000 $t /tmp/cchwqEfL.s:10699 .text.I2C_ITListenCplt:0000000000000000 I2C_ITListenCplt /tmp/cchwqEfL.s:10802 .text.I2C_ITListenCplt:0000000000000064 $d /tmp/cchwqEfL.s:10807 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 $t /tmp/cchwqEfL.s:10814 .text.HAL_I2C_MemTxCpltCallback:0000000000000000 HAL_I2C_MemTxCpltCallback /tmp/cchwqEfL.s:10829 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 $t /tmp/cchwqEfL.s:10836 .text.HAL_I2C_MemRxCpltCallback:0000000000000000 HAL_I2C_MemRxCpltCallback /tmp/cchwqEfL.s:10851 .text.HAL_I2C_ErrorCallback:0000000000000000 $t /tmp/cchwqEfL.s:10858 .text.HAL_I2C_ErrorCallback:0000000000000000 HAL_I2C_ErrorCallback /tmp/cchwqEfL.s:10873 .text.HAL_I2C_AbortCpltCallback:0000000000000000 $t /tmp/cchwqEfL.s:10880 .text.HAL_I2C_AbortCpltCallback:0000000000000000 HAL_I2C_AbortCpltCallback /tmp/cchwqEfL.s:10895 .text.I2C_TreatErrorCallback:0000000000000000 $t /tmp/cchwqEfL.s:10901 .text.I2C_TreatErrorCallback:0000000000000000 I2C_TreatErrorCallback ARM GAS /tmp/cchwqEfL.s page 478 /tmp/cchwqEfL.s:10958 .text.I2C_ITError:0000000000000000 $t /tmp/cchwqEfL.s:10964 .text.I2C_ITError:0000000000000000 I2C_ITError /tmp/cchwqEfL.s:11236 .text.I2C_ITError:0000000000000124 $d /tmp/cchwqEfL.s:11243 .text.I2C_ITSlaveCplt:0000000000000000 $t /tmp/cchwqEfL.s:11249 .text.I2C_ITSlaveCplt:0000000000000000 I2C_ITSlaveCplt /tmp/cchwqEfL.s:11664 .text.I2C_ITSlaveCplt:00000000000001f0 $d /tmp/cchwqEfL.s:11669 .text.I2C_Slave_ISR_IT:0000000000000000 $t /tmp/cchwqEfL.s:11985 .text.I2C_ITMasterCplt:0000000000000000 $t /tmp/cchwqEfL.s:11991 .text.I2C_ITMasterCplt:0000000000000000 I2C_ITMasterCplt /tmp/cchwqEfL.s:12260 .text.I2C_Master_ISR_IT:0000000000000000 $t /tmp/cchwqEfL.s:12662 .text.I2C_Mem_ISR_DMA:0000000000000000 $t /tmp/cchwqEfL.s:13061 .text.I2C_Mem_ISR_DMA:00000000000001c8 $d /tmp/cchwqEfL.s:13067 .text.I2C_Slave_ISR_DMA:0000000000000000 $t /tmp/cchwqEfL.s:13364 .text.I2C_Master_ISR_DMA:0000000000000000 $t /tmp/cchwqEfL.s:13689 .text.I2C_DMAError:0000000000000000 $t /tmp/cchwqEfL.s:13787 .text.I2C_DMAMasterTransmitCplt:0000000000000000 $t /tmp/cchwqEfL.s:13894 .text.I2C_DMAMasterReceiveCplt:0000000000000000 $t /tmp/cchwqEfL.s:14013 .text.I2C_Mem_ISR_IT:0000000000000000 $t /tmp/cchwqEfL.s:14432 .text.I2C_Mem_ISR_IT:00000000000001b8 $d /tmp/cchwqEfL.s:14438 .text.HAL_I2C_ER_IRQHandler:0000000000000000 $t /tmp/cchwqEfL.s:14445 .text.HAL_I2C_ER_IRQHandler:0000000000000000 HAL_I2C_ER_IRQHandler /tmp/cchwqEfL.s:14544 .text.I2C_DMAAbort:0000000000000000 $t /tmp/cchwqEfL.s:14596 .text.HAL_I2C_GetState:0000000000000000 $t /tmp/cchwqEfL.s:14603 .text.HAL_I2C_GetState:0000000000000000 HAL_I2C_GetState /tmp/cchwqEfL.s:14621 .text.HAL_I2C_GetMode:0000000000000000 $t /tmp/cchwqEfL.s:14628 .text.HAL_I2C_GetMode:0000000000000000 HAL_I2C_GetMode /tmp/cchwqEfL.s:14646 .text.HAL_I2C_GetError:0000000000000000 $t /tmp/cchwqEfL.s:14653 .text.HAL_I2C_GetError:0000000000000000 HAL_I2C_GetError UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort_IT HAL_DMA_GetState HAL_DMA_GetError