ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 1 1 .cpu cortex-m7 2 .arch armv7e-m 3 .fpu fpv5-d16 4 .eabi_attribute 28, 1 5 .eabi_attribute 20, 1 6 .eabi_attribute 21, 1 7 .eabi_attribute 23, 3 8 .eabi_attribute 24, 1 9 .eabi_attribute 25, 1 10 .eabi_attribute 26, 1 11 .eabi_attribute 30, 1 12 .eabi_attribute 34, 1 13 .eabi_attribute 18, 4 14 .file "stm32h7xx_hal_i2c.c" 15 .text 16 .Ltext0: 17 .cfi_sections .debug_frame 18 .file 1 "Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c" 19 .section .text.I2C_Flush_TXDR,"ax",%progbits 20 .align 1 21 .syntax unified 22 .thumb 23 .thumb_func 25 I2C_Flush_TXDR: 26 .LVL0: 27 .LFB400: 1:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ****************************************************************************** 3:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @file stm32h7xx_hal_i2c.c 4:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @author MCD Application Team 5:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C HAL module driver. 6:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * functionalities of the Inter Integrated Circuit (I2C) peripheral: 8:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * + Initialization and de-initialization functions 9:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * + IO operation functions 10:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * + Peripheral State and Errors functions 11:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 12:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ****************************************************************************** 13:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @attention 14:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 15:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * Copyright (c) 2017 STMicroelectronics. 16:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * All rights reserved. 17:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 18:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This software is licensed under terms that can be found in the LICENSE file 19:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in the root directory of this software component. 20:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * If no LICENSE file comes with this software, it is provided AS-IS. 21:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 22:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ****************************************************************************** 23:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim 24:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ============================================================================== 25:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### How to use this driver ##### 26:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ============================================================================== 27:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 28:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The I2C HAL driver can be used as follows: 29:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 30:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Declare a I2C_HandleTypeDef handle structure, for example: 31:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef hi2c; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 2 32:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 33:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#)Initialize the I2C low level resources by implementing the HAL_I2C_MspInit() API: 34:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) Enable the I2Cx interface clock 35:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) I2C pins configuration 36:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Enable the clock for the I2C GPIOs 37:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure I2C pins as alternate function open-drain 38:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) NVIC configuration if you need to use interrupt process 39:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the I2Cx interrupt priority 40:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Enable the NVIC I2C IRQ Channel 41:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (##) DMA Configuration if you need to use DMA process 42:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Declare a DMA_HandleTypeDef handle structure for 43:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the transmit or receive stream or channel depends on Instance 44:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Enable the DMAx interface clock using 45:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the DMA handle parameters 46:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the DMA Tx or Rx stream or channel depends on Instance 47:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle 48:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on 49:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the DMA Tx or Rx stream or channel depends on Instance 50:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 51:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Configure the Communication Clock Timing, Own Address1, Master Addressing mode, Dual Addres 52:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Own Address2, Own Address2 Mask, General call and Nostretch mode in the hi2c Init structure 53:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 54:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level H 55:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API. 56:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 57:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceRead 58:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 59:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) For I2C IO and IO MEM operations, three operation modes are available within this driver : 60:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 61:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Polling mode IO operation *** 62:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ================================= 63:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 64:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in blocking mode using HAL_I2C_Master_Transmit( 65:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in blocking mode using HAL_I2C_Master_Receive() 66:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Transmit() 67:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in blocking mode using HAL_I2C_Slave_Receive() 68:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 69:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Polling mode IO MEM operation *** 70:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ===================================== 71:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 72:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Write an amount of data in blocking mode to a specific memory address using HAL_I2C_Mem_W 73:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Read an amount of data in blocking mode from a specific memory address using HAL_I2C_Mem_ 74:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 75:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 76:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Interrupt mode IO operation *** 77:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =================================== 78:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 79:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Trans 80:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can 81:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() 82:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode using HAL_I2C_Master_Receiv 83:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can 84:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 85:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Transmi 86:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can 87:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() 88:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode using HAL_I2C_Slave_Receive_ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 3 89:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can 90:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 91:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 92:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 93:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() 94:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 95:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 96:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 97:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 98:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 99:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Interrupt mode or DMA mode IO sequential operation *** 101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ========================================================== 102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (@) These interfaces allow to manage a sequential transfer with a repeated start condition 104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** when a direction change during transfer 105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) A specific option field manage the different steps of a sequential transfer 107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Option field values are defined through I2C_XFEROPTIONS and are listed below: 108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functional is same as associated interfac 109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** no sequential mode 110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start con 111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and data to transfer without a final stop condition 112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a 113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** start condition, address and data to transfer without a final stop cond 114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** an then permit a call the same master sequential interface several time 115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (like HAL_I2C_Master_Seq_Transmit_IT() then HAL_I2C_Master_Seq_Transmit 116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA() then HAL_I2C_Master_Seq_Transmit_D 117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart 118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th 119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** transfer 120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if no direction change and without a final stop condition in both cases 121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_LAST_FRAME: Sequential usage, this option allow to manage a sequance with a restart 122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and with new data to transfer if the direction change or manage only th 123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** transfer 124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if no direction change and with a final stop condition in both cases 125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_LAST_FRAME_NO_STOP: Sequential usage (Master only), this option allow to manage a re 126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** after several call of the same master sequential interface several time 127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (link with option I2C_FIRST_AND_NEXT_FRAME). 128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Usage can, transfer several bytes one by one using 129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT 130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT 131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA 132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA 133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** with option I2C_FIRST_AND_NEXT_FRAME then I2C_NEXT_FRAME. 134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Then usage of this option I2C_LAST_FRAME_NO_STOP at the last Transmit 135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Receive sequence permit to call the opposite interface Receive or Tra 136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** without stopping the communication and so generate a restart conditio 137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) I2C_OTHER_FRAME: Sequential usage (Master only), this option allow to manage a restart c 138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** each call of the same master sequential 139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** interface. 140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Usage can, transfer several bytes one by one with a restart with slave 141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** each bytes using 142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT 143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_IT 144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Transmit_DMA 145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Master_Seq_Receive_DMA ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 4 146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** with option I2C_FIRST_FRAME then I2C_OTHER_FRAME. 147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Then usage of this option I2C_OTHER_AND_LAST_FRAME at the last frame to 148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** generation of STOP condition. 149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Different sequential I2C interfaces are listed below: 151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential transmit in master I2C mode an amount of data in non-blocking mode using 152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Master_Seq_Transmit_IT() or using HAL_I2C_Master_Seq_Transmit_DMA() 153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_MasterTxCpltCallback() is execut 154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_MasterTxCpltC 155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential receive in master I2C mode an amount of data in non-blocking mode using 156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Master_Seq_Receive_IT() or using HAL_I2C_Master_Seq_Receive_DMA() 157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_MasterRxCpltCallback() is executed 158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Abort a master IT or DMA I2C process communication with Interrupt using HAL_I2C_Master_A 160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Enable/disable the Address listen mode in slave I2C mode using HAL_I2C_EnableListen_IT() 163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_DisableListen_IT() 164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) When address slave I2C match, HAL_I2C_AddrCallback() is executed and users can 165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code to check the Address Match Code and the transmission direction reques 166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (Write/Read). 167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At Listen mode end HAL_I2C_ListenCpltCallback() is executed and users can 168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ListenCpltCallback() 169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential transmit in slave I2C mode an amount of data in non-blocking mode using 170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Transmit_IT() or using HAL_I2C_Slave_Seq_Transmit_DMA() 171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At transmission end of current frame transfer, HAL_I2C_SlaveTxCpltCallback() is execute 172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** users can add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCa 173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Sequential receive in slave I2C mode an amount of data in non-blocking mode using 174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Slave_Seq_Receive_IT() or using HAL_I2C_Slave_Seq_Receive_DMA() 175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+++) At reception end of current frame transfer, HAL_I2C_SlaveRxCpltCallback() is executed a 176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Interrupt mode IO MEM operation *** 183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ======================================= 184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with Interrupt to a specific memory address 186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Mem_Write_IT() 187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can 188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback() 189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with Interrupt from a specific memory address 190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Mem_Read_IT() 191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can 192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback() 193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** DMA mode IO operation *** 197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ============================== 198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in master mode an amount of data in non-blocking mode (DMA) using 200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Master_Transmit_DMA() 201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_MasterTxCpltCallback() is executed and users can 202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterTxCpltCallback() ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 5 203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in master mode an amount of data in non-blocking mode (DMA) using 204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Master_Receive_DMA() 205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_MasterRxCpltCallback() is executed and users can 206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MasterRxCpltCallback() 207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Transmit in slave mode an amount of data in non-blocking mode (DMA) using 208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Slave_Transmit_DMA() 209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At transmission end of transfer, HAL_I2C_SlaveTxCpltCallback() is executed and users can 210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveTxCpltCallback() 211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Receive in slave mode an amount of data in non-blocking mode (DMA) using 212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Slave_Receive_DMA() 213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At reception end of transfer, HAL_I2C_SlaveRxCpltCallback() is executed and users can 214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_SlaveRxCpltCallback() 215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Abort a master I2C process communication with Interrupt using HAL_I2C_Master_Abort_IT() 218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) End of abort process, HAL_I2C_AbortCpltCallback() is executed and users can 219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_AbortCpltCallback() 220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Discard a slave I2C process communication using __HAL_I2C_GENERATE_NACK() macro. 221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This action will inform Master to generate a Stop condition to discard the communication 222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** DMA mode IO MEM operation *** 224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ================================= 225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Write an amount of data in non-blocking mode with DMA to a specific memory address using 227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Mem_Write_DMA() 228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of write transfer, HAL_I2C_MemTxCpltCallback() is executed and users can 229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemTxCpltCallback() 230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Read an amount of data in non-blocking mode with DMA from a specific memory address using 231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_Mem_Read_DMA() 232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) At Memory end of read transfer, HAL_I2C_MemRxCpltCallback() is executed and users can 233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_MemRxCpltCallback() 234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) In case of transfer Error, HAL_I2C_ErrorCallback() function is executed and users can 235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** add their own code by customization of function pointer HAL_I2C_ErrorCallback() 236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** I2C HAL driver macros list *** 239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ================================== 240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Below the list of most used macros in I2C HAL driver. 242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE: Enable the I2C peripheral 244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE: Disable the I2C peripheral 245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) __HAL_I2C_GENERATE_NACK: Generate a Non-Acknowledge I2C peripheral in Slave mode 246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) __HAL_I2C_GET_FLAG: Check whether the specified I2C flag is set or not 247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) __HAL_I2C_CLEAR_FLAG: Clear the specified I2C pending flag 248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) __HAL_I2C_ENABLE_IT: Enable the specified I2C interrupt 249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) __HAL_I2C_DISABLE_IT: Disable the specified I2C interrupt 250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *** Callback registration *** 252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ============================================= 253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The compilation flag USE_HAL_I2C_REGISTER_CALLBACKS when set to 1 255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** allows the user to configure dynamically the driver callbacks. 256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Use Functions HAL_I2C_RegisterCallback() or HAL_I2C_RegisterAddrCallback() 257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to register an interrupt callback. 258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Function HAL_I2C_RegisterCallback() allows to register following callbacks: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 6 260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. 261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. 262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. 263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. 264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. 265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. 266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. 267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. 268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. 269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. 270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. 271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This function takes as parameters the HAL peripheral handle, the Callback ID 272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and a pointer to the user callback function. 273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** For specific callback AddrCallback use dedicated register callbacks : HAL_I2C_RegisterAddrCall 275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Use function HAL_I2C_UnRegisterCallback to reset a callback to the default 277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** weak function. 278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_UnRegisterCallback takes as parameters the HAL peripheral handle, 279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and the Callback ID. 280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This function allows to reset following callbacks: 281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterTxCpltCallback : callback for Master transmission end of transfer. 282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MasterRxCpltCallback : callback for Master reception end of transfer. 283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveTxCpltCallback : callback for Slave transmission end of transfer. 284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) SlaveRxCpltCallback : callback for Slave reception end of transfer. 285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ListenCpltCallback : callback for end of listen mode. 286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemTxCpltCallback : callback for Memory transmission end of transfer. 287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MemRxCpltCallback : callback for Memory reception end of transfer. 288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) ErrorCallback : callback for error detection. 289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) AbortCpltCallback : callback for abort completion process. 290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspInitCallback : callback for Msp Init. 291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) MspDeInitCallback : callback for Msp DeInit. 292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** For callback AddrCallback use dedicated register callbacks : HAL_I2C_UnRegisterAddrCallback(). 294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** By default, after the HAL_I2C_Init() and when the state is HAL_I2C_STATE_RESET 296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** all callbacks are set to the corresponding weak functions: 297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** examples HAL_I2C_MasterTxCpltCallback(), HAL_I2C_MasterRxCpltCallback(). 298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Exception done for MspInit and MspDeInit functions that are 299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** reset to the legacy weak functions in the HAL_I2C_Init()/ HAL_I2C_DeInit() only when 300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** these callbacks are null (not registered beforehand). 301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** If MspInit or MspDeInit are not null, the HAL_I2C_Init()/ HAL_I2C_DeInit() 302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) whatever the state. 303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Callbacks can be registered/unregistered in HAL_I2C_STATE_READY state only. 305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Exception done MspInit/MspDeInit functions that can be registered/unregistered 306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** in HAL_I2C_STATE_READY or HAL_I2C_STATE_RESET state, 307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. 308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Then, the user first registers the MspInit/MspDeInit user callbacks 309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** using HAL_I2C_RegisterCallback() before calling HAL_I2C_DeInit() 310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or HAL_I2C_Init() function. 311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** When the compilation flag USE_HAL_I2C_REGISTER_CALLBACKS is set to 0 or 313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** not defined, the callback registration feature is not available and all callbacks 314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** are set to the corresponding weak functions. 315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 7 317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (@) You can refer to the I2C HAL driver header file for more useful macros 318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim 320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Includes ------------------------------------------------------------------*/ 323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #include "stm32h7xx_hal.h" 324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @addtogroup STM32H7xx_HAL_Driver 326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C I2C 330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C HAL module driver 331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #ifdef HAL_I2C_MODULE_ENABLED 335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private typedef -----------------------------------------------------------*/ 337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define ------------------------------------------------------------*/ 338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Private_Define I2C Private Define 340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define TIMING_CLEAR_MASK (0xF0FFFFFFU) /*!< I2C TIMING clear register Mask */ 343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_ADDR (10000U) /*!< 10 s */ 344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_BUSY (25U) /*!< 25 ms */ 345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_DIR (25U) /*!< 25 ms */ 346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_RXNE (25U) /*!< 25 ms */ 347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_STOPF (25U) /*!< 25 ms */ 348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_TC (25U) /*!< 25 ms */ 349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_TCR (25U) /*!< 25 ms */ 350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_TXIS (25U) /*!< 25 ms */ 351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_TIMEOUT_FLAG (25U) /*!< 25 ms */ 352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define MAX_NBYTE_SIZE 255U 354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define SLAVE_ADDR_SHIFT 7U 355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define SLAVE_ADDR_MSK 0x06U 356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define for @ref PreviousState usage */ 358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MSK ((uint32_t)((uint32_t)((uint32_t)HAL_I2C_STATE_BUSY_TX | \ 359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)HAL_I2C_STATE_BUSY_RX) & \ 360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)(~((uint32_t)HAL_I2C_STATE_READY)))) 361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Mask State define, keep only RX and TX bits */ 362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_NONE ((uint32_t)(HAL_I2C_MODE_NONE)) 363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Default Value */ 364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) 366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Master Busy TX, combinaison of State LSB and Mode enum */ 367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MASTER_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MASTER)) 369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Master Busy RX, combinaison of State LSB and Mode enum */ 370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) 372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Slave Busy TX, combinaison of State LSB and Mode enum */ 373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_SLAVE_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 8 374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_SLAVE)) 375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Slave Busy RX, combinaison of State LSB and Mode enum */ 376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_TX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | \ 377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) 378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Memory Busy TX, combinaison of State LSB and Mode enum */ 379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_STATE_MEM_BUSY_RX ((uint32_t)(((uint32_t)HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | \ 380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)HAL_I2C_MODE_MEM)) 381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*!< Memory Busy RX, combinaison of State LSB and Mode enum */ 382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define to centralize the enable/disable of Interrupts */ 385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_TX_IT (uint16_t)(0x0001U) /*!< Bit field can be combinated with 386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ 387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_RX_IT (uint16_t)(0x0002U) /*!< Bit field can be combinated with 388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @ref I2C_XFER_LISTEN_IT */ 389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_LISTEN_IT (uint16_t)(0x8000U) /*!< Bit field can be combinated with @ref I2 390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and @ref I2C_XFER_RX_IT */ 391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_ERROR_IT (uint16_t)(0x0010U) /*!< Bit definition to manage addition of glo 393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and NACK treatment */ 394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_CPLT_IT (uint16_t)(0x0020U) /*!< Bit definition to manage only STOP evene 395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_XFER_RELOAD_IT (uint16_t)(0x0040U) /*!< Bit definition to manage only Reload of 396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private define Sequential Transfer Options default/reset value */ 398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_NO_OPTION_FRAME (0xFFFF0000U) 399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private macros ------------------------------------------------------------*/ 404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @addtogroup I2C_Private_Macro 405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Macro to get remaining data to transfer on DMA side */ 408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #define I2C_GET_DMA_REMAIN_DATA(__HANDLE__) __HAL_DMA_GET_COUNTER(__HANDLE__) 409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private variables ---------------------------------------------------------*/ 414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function prototypes -----------------------------------------------*/ 415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Private_Functions I2C Private Functions 417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle DMA transfer */ 420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma); 421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma); 422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma); 423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma); 424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma); 425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma); 426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 9 431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c); 432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags); 435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode); 436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle IT transfer */ 438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart); 441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart); 444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions for I2C transfer IRQ handler */ 446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources); 448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources); 450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources); 452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources); 454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources); 456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources); 458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to handle flags during polling transfer */ 460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart); 462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart); 464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart); 466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart); 468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart); 470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private functions to centralize the enable/disable of Interrupts */ 472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest); 474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to treat different error callback */ 476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c); 477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to flush TXDR register */ 479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c); 480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to handle start, restart or stop a transfer */ 482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Request); 484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Private function to Convert Specific options */ 486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c); 487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 10 488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Exported functions --------------------------------------------------------*/ 492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions I2C Exported Functions 494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group1 Initialization and de-initialization functions 498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Initialization and Configuration functions 499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim 501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================================================== 502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### Initialization and de-initialization functions ##### 503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================================================== 504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] This subsection provides a set of functions allowing to initialize and 505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** deinitialize the I2Cx peripheral: 506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) User must Implement HAL_I2C_MspInit() function in which he configures 508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** all related peripherals resources (CLOCK, GPIO, DMA, IT and NVIC ). 509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Call the function HAL_I2C_Init() to configure the selected device with 511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the selected configuration: 512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Clock Timing 513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Own Address 1 514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Addressing mode (Master, Slave) 515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Dual Addressing mode 516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Own Address 2 517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Own Address 2 Mask 518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) General call mode 519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Nostretch mode 520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (+) Call the function HAL_I2C_DeInit() to restore the default configuration 522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** of the selected I2Cx peripheral. 523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim 525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Initializes the I2C according to the specified parameters 530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in the I2C_InitTypeDef and initialize the associated handle. 531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) 536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c == NULL) 539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 11 545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_RESET) 554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Allocate lock resource and initialize it */ 556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Lock = HAL_UNLOCKED; 557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init the I2C Callback settings */ 560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallback 561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallback 562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallback 563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallback 564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallback 565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback 570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->MspInitCallback == NULL) 572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit */ 574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback(hi2c); 578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ 580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MspInit(hi2c); 581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable the selected I2C peripheral */ 587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx TIMINGR Configuration ------------------*/ 590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Frequency range */ 591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; 592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx OAR1 Configuration ---------------------*/ 594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Own Address1 before set the Own Address1 configuration */ 595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; 596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Own Address1 and ack own address1 mode */ 598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) 599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1); 601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 12 602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else /* I2C_ADDRESSINGMODE_10BIT */ 603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1); 605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx CR2 Configuration ----------------------*/ 608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Addressing Master mode */ 609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** SET_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10); 612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear the I2C ADD10 bit */ 616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** CLEAR_BIT(hi2c->Instance->CR2, I2C_CR2_ADD10); 617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ 619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); 620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx OAR2 Configuration ---------------------*/ 622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Own Address2 before set the Own Address2 configuration */ 623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE; 624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Dual mode and Own Address2 */ 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | \ 627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /*---------------------------- I2Cx CR1 Configuration ----------------------*/ 630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Configure I2Cx: Generalcall and NoStretch mode */ 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); 632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the selected I2C peripheral */ 634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_ENABLE(hi2c); 635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DeInitialize the I2C peripheral. 646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DeInit(I2C_HandleTypeDef *hi2c) 651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c == NULL) 654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 13 659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable the I2C Peripheral Clock */ 664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE(hi2c); 665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->MspDeInitCallback == NULL) 668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit */ 670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback(hi2c); 674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* DeInit the low level hardware: GPIO, CLOCK, NVIC */ 676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MspDeInit(hi2c); 677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Release Lock */ 685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Initialize the I2C MSP. 692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MspInit(I2C_HandleTypeDef *hi2c) 697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MspInit could be implemented in the user file 703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DeInitialize the I2C MSP. 708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c) 713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 14 716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MspDeInit could be implemented in the user file 719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Register a User I2C Callback 725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * To be used instead of the weak predefined callback 726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note The HAL_I2C_RegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_RES 727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * to register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID. 728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param CallbackID ID of the callback to be registered 731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values: 732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pCallback pointer to the Callback function 744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Callb 747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** pI2C_CallbackTypeDef pCallback) 748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (pCallback == NULL) 752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID) 762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = pCallback; 765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = pCallback; 769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = pCallback; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 15 773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = pCallback; 777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback = pCallback; 781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = pCallback; 785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = pCallback; 789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback = pCallback; 793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback = pCallback; 797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default : 808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID) 819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = pCallback; 822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = pCallback; 826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default : 829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 16 830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status; 847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Unregister an I2C Callback 851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * I2C callback is redirected to the weak predefined callback 852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note The HAL_I2C_UnRegisterCallback() may be called before HAL_I2C_Init() in HAL_I2C_STATE_R 853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * to un-register callbacks for HAL_I2C_MSPINIT_CB_ID and HAL_I2C_MSPDEINIT_CB_ID. 854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param CallbackID ID of the callback to be unregistered 857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values: 858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values: 859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_TX_COMPLETE_CB_ID Master Tx Transfer completed callback ID 860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MASTER_RX_COMPLETE_CB_ID Master Rx Transfer completed callback ID 861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_TX_COMPLETE_CB_ID Slave Tx Transfer completed callback ID 862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_SLAVE_RX_COMPLETE_CB_ID Slave Rx Transfer completed callback ID 863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_LISTEN_COMPLETE_CB_ID Listen Complete callback ID 864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_TX_COMPLETE_CB_ID Memory Tx Transfer callback ID 865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MEM_RX_COMPLETE_CB_ID Memory Rx Transfer completed callback ID 866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ERROR_CB_ID Error callback ID 867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_ABORT_CB_ID Abort callback ID 868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPINIT_CB_ID MspInit callback ID 869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref HAL_I2C_MSPDEINIT_CB_ID MspDeInit callback ID 870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterCallback(I2C_HandleTypeDef *hi2c, HAL_I2C_CallbackIDTypeDef Cal 873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID) 879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_TX_COMPLETE_CB_ID : 881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback = HAL_I2C_MasterTxCpltCallback; /* Legacy weak MasterTxCpltCallb 882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MASTER_RX_COMPLETE_CB_ID : 885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback = HAL_I2C_MasterRxCpltCallback; /* Legacy weak MasterRxCpltCallb 886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 17 887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_TX_COMPLETE_CB_ID : 889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback = HAL_I2C_SlaveTxCpltCallback; /* Legacy weak SlaveTxCpltCallba 890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_SLAVE_RX_COMPLETE_CB_ID : 893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback = HAL_I2C_SlaveRxCpltCallback; /* Legacy weak SlaveRxCpltCallba 894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_LISTEN_COMPLETE_CB_ID : 897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback = HAL_I2C_ListenCpltCallback; /* Legacy weak ListenCpltCallbac 898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_TX_COMPLETE_CB_ID : 901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback = HAL_I2C_MemTxCpltCallback; /* Legacy weak MemTxCpltCallback 902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MEM_RX_COMPLETE_CB_ID : 905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback = HAL_I2C_MemRxCpltCallback; /* Legacy weak MemRxCpltCallback 906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ERROR_CB_ID : 909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback = HAL_I2C_ErrorCallback; /* Legacy weak ErrorCallback 910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_ABORT_CB_ID : 913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback = HAL_I2C_AbortCpltCallback; /* Legacy weak AbortCpltCallback 914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default : 925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (HAL_I2C_STATE_RESET == hi2c->State) 934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** switch (CallbackID) 936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPINIT_CB_ID : 938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspInitCallback = HAL_I2C_MspInit; /* Legacy weak MspInit 939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** case HAL_I2C_MSPDEINIT_CB_ID : 942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MspDeInitCallback = HAL_I2C_MspDeInit; /* Legacy weak MspDeInit 943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 18 944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** default : 946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status; 964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Register the Slave Address Match I2C Callback 968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * To be used instead of the weak HAL_I2C_AddrCallback() predefined callback 969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pCallback pointer to the Address Match Callback function 972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_RegisterAddrCallback(I2C_HandleTypeDef *hi2c, pI2C_AddrCallbackTypeDef pC 975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (pCallback == NULL) 979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback = pCallback; 989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status; 1000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 19 1001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief UnRegister the Slave Address Match I2C Callback 1004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * Info Ready I2C Callback is redirected to the weak HAL_I2C_AddrCallback() predefined cal 1005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_UnRegisterAddrCallback(I2C_HandleTypeDef *hi2c) 1010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_I2C_STATE_READY == hi2c->State) 1014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback = HAL_I2C_AddrCallback; /* Legacy weak AddrCallback */ 1016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update the error code */ 1020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_INVALID_CALLBACK; 1021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return error status */ 1023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 1024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status; 1027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 1033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group2 Input and Output operation functions 1036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Data transfers functions 1037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 1038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim 1039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================================================== 1040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### IO operation functions ##### 1041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================================================== 1042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 1043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This subsection provides a set of functions allowing to manage the I2C data 1044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** transfers. 1045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) There are two modes of transfer: 1047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) Blocking mode : The communication is performed in the polling mode. 1048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The status of all data processing is returned by the same function 1049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** after finishing transfer. 1050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) No-Blocking mode : The communication is performed using Interrupts 1051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** or DMA. These functions return the status of the transfer startup. 1052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** The end of the data processing will be indicated through the 1053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dedicated I2C IRQ when using Interrupt mode or the DMA IRQ when 1054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** using DMA mode. 1055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) Blocking mode functions are : 1057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit() ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 20 1058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive() 1059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit() 1060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive() 1061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write() 1062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read() 1063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_IsDeviceReady() 1064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) No-Blocking mode functions with Interrupt are : 1066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_IT() 1067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_IT() 1068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_IT() 1069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_IT() 1070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_IT() 1071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_IT() 1072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_IT() 1073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_IT() 1074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_IT() 1075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_IT() 1076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_EnableListen_IT() 1077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_DisableListen_IT() 1078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Abort_IT() 1079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) No-Blocking mode functions with DMA are : 1081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Transmit_DMA() 1082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Receive_DMA() 1083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Transmit_DMA() 1084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Receive_DMA() 1085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Write_DMA() 1086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Mem_Read_DMA() 1087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Transmit_DMA() 1088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Master_Seq_Receive_DMA() 1089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Transmit_DMA() 1090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_Slave_Seq_Receive_DMA() 1091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (#) A set of Transfer Complete Callbacks are provided in non Blocking mode: 1093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MasterTxCpltCallback() 1094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MasterRxCpltCallback() 1095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_SlaveTxCpltCallback() 1096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_SlaveRxCpltCallback() 1097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MemTxCpltCallback() 1098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_MemRxCpltCallback() 1099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_AddrCallback() 1100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_ListenCpltCallback() 1101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_ErrorCallback() 1102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (++) HAL_I2C_AbortCpltCallback() 1103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim 1105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 1106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmits in master mode an amount of data in blocking mode. 1110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 21 1115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 1117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pD 1120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 1124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 1161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 1171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 22 1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode, 1173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 1178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, 1180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 1223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 23 1229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receives in master mode an amount of data in blocking mode. 1251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 1258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pDa 1261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t Timeout) 1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 1274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 24 1286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 1288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 1300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 1320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 1323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 1331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 25 1343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is set */ 1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 1350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 1354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmits in slave mode an amount of data in blocking mode. 1371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 1376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout) 1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t tmpXferCount; 1383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef error; 1384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 26 1400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 1419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 1420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 1422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 1432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If 10bit addressing mode is selected */ 1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 1436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 1446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until DIR flag is set Transmitter mode */ 1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, RESET, Timeout, tickstart) != HAL_OK) 1451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 27 1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until AF flag is set */ 1477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error = I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_AF, RESET, Timeout, tickstart); 1478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (error != HAL_OK) 1480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */ 1482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 1483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0 */ 1484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpXferCount = hi2c->XferCount; 1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 1487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset ErrorCode to NONE */ 1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 1502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear AF flag */ 1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 1505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 28 1514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP flag */ 1516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in blocking mode 1546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 1551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, 1554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout) 1555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 1561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 1563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 1570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 29 1571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until ADDR flag is set */ 1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_ADDR, RESET, Timeout, tickstart) != HAL_OK) 1586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 1594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until DIR flag is reset Receiver mode */ 1596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_DIR, SET, Timeout, tickstart) != HAL_OK) 1597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (hi2c->XferCount > 0U) 1604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 1606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */ 1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) 1613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 30 1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 1629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP flag is set */ 1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 1639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP flag */ 1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 1647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until BUSY flag is reset */ 1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, Timeout, tickstart) != HAL_OK) 1650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 1654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 1658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt 1675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 31 1685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 1687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 1720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 1724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 1725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), xfermode, 1734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, 1739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 32 1742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 1748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 1751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 1754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt 1765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t * 1774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size) 1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 1777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 1797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 33 1799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 1810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_READ 1812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 1819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 1822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 1825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with Interrupt 1836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 34 1856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 1865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 1867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 1869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 1872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 1874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 1883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 1885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 1886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); 1889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt 1900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 1907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 35 1913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 1915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 1919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 1926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 1928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 1929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 1931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 1932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 1933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 1935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 1936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 1937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 1938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 1939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 1941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 1945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 1949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in master mode an amount of data in non-blocking mode with DMA 1950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 1951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 1952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 1953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 1954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 1955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 1956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 1957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 1958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 1959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size) 1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 1962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 1963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 1964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 1966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 1968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 36 1970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 1974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 1981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 1984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 1986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 1991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 1997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 1999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 2003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 2004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 2016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, 2026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 37 2027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 2046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART 2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)(hi2c->XferSize + 1U), 2048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 2049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 2051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 38 2084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 2086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, I2C_AUTOEND_MODE, 2088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 2089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 2098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in master mode an amount of data in non-blocking mode with DMA 2113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t 2122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size) 2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 2125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 39 2141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 2146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 2151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 2156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 2159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 2164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 2173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 2174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 2175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 2194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART * 2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, I2C_GENERATE_START_ 2196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 40 2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 2199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 2208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 2230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 2231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 2233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 2244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 2245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 2248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 41 2255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA 2260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size 2267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 2290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX data if no stretch enable */ 2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.NoStretchMode == I2C_NOSTRETCH_ENABLE) 2293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 2295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 2296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 2300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 2306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 2308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 2311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 42 2312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 2314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 2318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 2320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, 2321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 2322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 2323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 2355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 2364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 43 2369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Receive in slave mode an amount of data in non-blocking mode with DMA 2396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) 2403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 44 2426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 2428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; 2431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 2434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 2438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 2440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 2441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 2442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 2451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 2459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 2461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 2462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 2471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 2474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 2478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 2479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 45 2483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Write an amount of data in blocking mode to a specific memory address 2500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 2509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddre 2512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Ti 2513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 46 2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL 2549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE */ 2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 2560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 2565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do 2568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 2577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 2580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 47 2597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 2616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Read an amount of data in blocking mode from a specific memory address 2637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 2646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddres 2649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Tim 2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 48 2654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Init tickstart for timeout management*/ 2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 2669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_BUSY, SET, I2C_TIMEOUT_BUSY, tickstart) != HAL_OK 2671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_RequestMemoryRead(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_ 2686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 2693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do 2708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until RXNE flag is set */ 2710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 49 2711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 2717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 2720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 2725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 2727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, tickstart) != HAL_OK) 2728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 2733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 2736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (hi2c->XferCount > 0U); 2746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 2748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnSTOPFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) 2750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 2756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 2758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 2759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 50 2768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with Interrupt to a specific memory addres 2775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 2786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0U; 2813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 2818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 2821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */ 2823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 2824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 51 2825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */ 2826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 2827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 2829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 2833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 2836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_W 2839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 2849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 2852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Read an amount of data in non-blocking mode with Interrupt from a specific memory addre 2863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAdd 2874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 52 2882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 2896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 2904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 2905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 2907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 2908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */ 2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 2911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */ 2913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 2914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 2916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 2920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 2923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 2925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_ 2926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 2928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 2929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 2931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 2932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 2933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 2935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 2936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 2937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 2938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 53 2939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 2941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 2943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 2949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Write an amount of data in non-blocking mode with DMA to a specific memory address 2950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 2951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 2952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 2953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 2954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 2955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 2956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 2957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 2958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 2959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 2960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemA 2961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 2962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 2964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 2966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 2967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 2969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 2971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 2973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 2977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 2979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 2983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 2985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 2986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 2989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 2992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 2994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 54 2996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 2998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 3005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 3006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */ 3008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 3009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */ 3011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 3012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 3014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 3018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); 3021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 3037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 3038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 55 3053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 3057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START 3058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 3067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Reads an amount of data in non-blocking mode with DMA from a specific memory address. 3096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 3101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 3102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be read 3104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAd 3107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddSize, uint8_t *pData, uint16_t Size) 3108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 56 3110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); 3113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 3132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 3139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 3140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 3151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 3152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address */ 3154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 3155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */ 3157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 3158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 3160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prefetch Memory Address (MSB part, LSB will be manage through interrupt) */ 3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 3164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare Memaddress buffer for LSB part */ 3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = I2C_MEM_ADD_LSB(MemAddress); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 57 3167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 3182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)pDa 3183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 3184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and Memory Address */ 3203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_STAR 3204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 3213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 58 3224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Checks if target device is ready for communication. 3242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This function is used with Memory devices 3243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Trials Number of trials 3248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 3249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint32_t Tria 3252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout) 3253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 3255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t I2C_Trials = 0UL; 3257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp1; 3259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp2; 3260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) == SET) 3264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY; 3272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do 3275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Start */ 3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 = I2C_GENERATE_START(hi2c->Init.AddressingMode, DevAddress); 3278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to Check TC flag, with AUTOEND mode the stop is automatically generated */ 3280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is set or a NACK flag is set*/ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 59 3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 3282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while ((tmp1 == RESET) && (tmp2 == RESET)) 3287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 3289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 3291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF); 3306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 3307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if the NACKF flag has not been set */ 3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == RESET) 3311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 3319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Device is ready */ 3322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOPF flag is reset */ 3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_STOPF, RESET, Timeout, tickstart) != HAL_OK) 3333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 60 3338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 3339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag, auto generated with autoend*/ 3341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 3342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Trials */ 3345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Trials++; 3346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (I2C_Trials < Trials); 3347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 3353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with Inte 3367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 3383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 61 3395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \ 3415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 3416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 3418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 3420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 3423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */ 3431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 62 3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 3467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in master I2C mode an amount of data in non-blocking mode with DMA. 3481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uin 3492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 3496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 3498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX; 3508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 63 3509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U) && ((XferOptions == I2C_FIRST_FRAME) || \ 3530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 3531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Preload TX register */ 3533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 3535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 3538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** sizetoxfer = hi2c->XferSize; 3540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 3541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */ 3546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) && \ 3548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 64 3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 3567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMAMasterTransmitCplt; 3570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 3573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 3576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 3577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 3579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, 3580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 3581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to write */ 3600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 3622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 65 3623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 3645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate START condition */ 3646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((XferOptions == I2C_FIRST_FRAME) || (XferOptions == I2C_FIRST_AND_LAST_FRAME)) 3647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)sizetoxfer, xfermode, xferrequest); 3649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, TXI interrupt */ 3662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 3663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT); 3666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with Inter 3678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 66 3680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8 3689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */ 3726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 67 3737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in master I2C mode an amount of data in non-blocking mode with DMA 3765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 3769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 3770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint 3776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t Size, uint32_t XferOptions) 3777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 3780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX; 3791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 68 3794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 3795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 3798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If hi2c->XferCount > MAX_NBYTE_SIZE, use reload mode */ 3801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 3802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 3804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If transfer direction not change and there is no request to start another frame, 3813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** do not generate Restart Condition */ 3814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean Previous state is same as current state */ 3815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) && \ 3816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 3817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xferrequest = I2C_NO_STARTSTOP; 3819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Convert OTHER_xxx XferOptions if any */ 3823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ConvertOtherXferOptions(hi2c); 3824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update xfermode accordingly if no reload is necessary */ 3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount <= MAX_NBYTE_SIZE) 3827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 3829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferSize > 0U) 3833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 3837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMAMasterReceiveCplt; 3838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 3840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 3841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 3845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 3847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)p 3848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 3849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 69 3851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 3858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 3866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address and set NBYTES to read */ 3868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, xfermode, xferrequest); 3869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 3871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 3872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 3880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 3881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 3884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 3889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 3892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 3893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Transfer ISR function pointer */ 3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Slave Address */ 3906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to read and generate START condition */ 3907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 70 3908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 3909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 3911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 3912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 3914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 3915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 3916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK, RXI interrupt */ 3917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* possible to enable all of these */ 3918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | 3919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_IT_ADDRI | I2C_IT_RXI | I2C_IT_TXI */ 3920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 3921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 3924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 3926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 3928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 3932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 3933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 3934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 3935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 3936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 3937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 3938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 3939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 3940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 3941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 3942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions) 3943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 3945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp; 3946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 3948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 3949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 3951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 3953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 3955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 3959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 3960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 3963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 71 3965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 3966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 3967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */ 3969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 3970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 3973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 3975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 3977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 3979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 3981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */ 3983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 3984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 3987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 3993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 3997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 3998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 4008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 4020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_TX_IT | I2C_XFER_LISTEN_IT); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 72 4022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential transmit in slave/device I2C mode an amount of data in non-blocking mode wit 4033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 4037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 4038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t 4042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions) 4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp; 4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 4049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 4064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave RX state to TX state */ 4067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */ 4070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 73 4079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */ 4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */ 4106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 4117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_TX_LISTEN; 4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 4127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 74 4136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferCpltCallback = I2C_DMASlaveTransmitCplt; 4137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 4139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferErrorCallback = I2C_DMAError; 4140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferHalfCpltCallback = NULL; 4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 4146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)pData, (uint32_t)&hi2c->Instance->TX 4147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 4148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 4152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 4156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 4167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset XferSize */ 4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0; 4171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 4175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 4189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 75 4193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 4199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 4200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 4204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK, ADDR interrupts */ 4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 4221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 4222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Si 4226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions) 4227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp; 4230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 4232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 76 4250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */ 4253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */ 4267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 4284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 4292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 4304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 77 4307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Sequential receive in slave/device I2C mode an amount of data in non-blocking mode with 4317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @note This interface allow to manage repeated start condition when a direction change during 4318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param pData Pointer to data buffer 4321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Amount of data to be sent 4322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param XferOptions Options of Transfer, value of @ref I2C_XFEROPTIONS 4323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Slave_Seq_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t S 4326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t XferOptions) 4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp; 4330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 4333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); 4334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 4336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((pData == NULL) || (Size == 0U)) 4338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_INVALID_PARAM; 4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts, to prevent preemption during treatment in case of multicall */ 4344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 4345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C cannot manage full duplex exchange so disable previous IT enabled if any */ 4350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* and then toggle the HAL slave TX state to RX state */ 4351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 4352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable associated Interrupts */ 4354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 4357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 4360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 4362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 78 4364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 4366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */ 4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 4369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 4372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 4377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 4379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 4381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA Xfer if any */ 4383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 4386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 4387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 4388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */ 4390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 4391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 4393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 4394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 4401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_BUSY_RX_LISTEN; 4404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable Address Acknowledge */ 4408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 &= ~I2C_CR2_NACK; 4409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare transfer parameters */ 4411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 4415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 4418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA transfer complete callback */ 4420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferCpltCallback = I2C_DMASlaveReceiveCplt; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 79 4421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the DMA error callback */ 4423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferErrorCallback = I2C_DMAError; 4424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the unused DMA callbacks to NULL */ 4426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferHalfCpltCallback = NULL; 4427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 4430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** dmaxferstatus = HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, 4431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 4432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 4436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 4440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA_PARAM; 4441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (dmaxferstatus == HAL_OK) 4449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 4451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 4452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset XferSize */ 4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = 0; 4455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C state */ 4459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update I2C error code */ 4463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; 4464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_ADDR); 4472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 4473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag after prepare the transfer parameters */ 4475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This action will generate an acknowledge to the Master */ 4476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 4477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 80 4478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 4483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 4484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 4488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* REnable ADDR interrupt */ 4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_LISTEN_IT); 4490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Enable the Address listen mode with Interrupt. 4501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) 4506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 4508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 4510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 4511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the Address Match interrupt */ 4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 4520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Disable the Address listen mode with Interrupt. 4525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C 4527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) 4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 4532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp; 4533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address listen mode only if a transfer is not ongoing */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 81 4535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 4536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp = (uint32_t)(hi2c->State) & I2C_STATE_MSK; 4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 4539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 4540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 4542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable the Address Match interrupt */ 4544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 4545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_BUSY; 4551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Abort a master I2C IT or DMA process communication with Interrupt. 4556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 4559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 4560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) 4563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 4565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 4570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 4571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 4573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 4574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 4576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 4578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 4579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 4583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set State at HAL_I2C_STATE_ABORT */ 4586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_ABORT; 4587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to 1 to generate a dummy read on I2C peripheral */ 4589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set AUTOEND mode, this will generate a NACK then STOP condition to abort the current transfe 4590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, 1, I2C_AUTOEND_MODE, I2C_GENERATE_STOP); 4591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 82 4592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 4594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Note : The I2C interrupts must be enabled after unlocking current process 4596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** to avoid the risk of I2C interrupt handle execution before current 4597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** process unlock */ 4598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 4599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 4601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong usage of abort function */ 4605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This function should be used only in case of abort monitored by master device */ 4606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 4612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks 4615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 4616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C event interrupt request. 4620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** void HAL_I2C_EV_IRQHandler(I2C_HandleTypeDef *hi2c) /* Derogation MISRAC2012-Rule-8.13 */ 4625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 4627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C events treatment -------------------------------------*/ 4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferISR != NULL) 4632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR(hi2c, itflags, itsources); 4634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C error interrupt request. 4639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** void HAL_I2C_ER_IRQHandler(I2C_HandleTypeDef *hi2c) 4644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 4646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 4647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 4648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 83 4649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Bus error interrupt occurred ------------------------------------*/ 4650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_BERR) != RESET) && \ 4651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_BERR; 4654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear BERR flag */ 4656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 4657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Over-Run/Under-Run interrupt occurred ----------------------------------------*/ 4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_OVR) != RESET) && \ 4661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_OVR; 4664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear OVR flag */ 4666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 4667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* I2C Arbitration Loss error interrupt occurred -------------------------------------*/ 4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(itflags, I2C_FLAG_ARLO) != RESET) && \ 4671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 4672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_ARLO; 4674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ARLO flag */ 4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 4677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 4680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 4681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Error Callback in case of Error detected */ 4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmperror & (HAL_I2C_ERROR_BERR | HAL_I2C_ERROR_OVR | HAL_I2C_ERROR_ARLO)) != HAL_I2C_ERROR_ 4684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, tmperror); 4686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master Tx Transfer completed callback. 4691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *hi2c) 4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MasterTxCpltCallback could be implemented in the user file 4702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 84 4706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master Rx Transfer completed callback. 4707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c) 4712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MasterRxCpltCallback could be implemented in the user file 4718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @brief Slave Tx Transfer completed callback. 4722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) 4727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_SlaveTxCpltCallback could be implemented in the user file 4733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Slave Rx Transfer completed callback. 4738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) 4743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_SlaveRxCpltCallback could be implemented in the user file 4749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Slave Address Match callback. 4754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param TransferDirection Master request Transfer Direction (Write/Read), value of @ref I2C_XFE 4757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param AddrMatchCode Address Match Code 4758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrM 4761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 85 4763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(TransferDirection); 4765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(AddrMatchCode); 4766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_AddrCallback() could be implemented in the user file 4769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Listen Complete callback. 4774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c) 4779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_ListenCpltCallback() could be implemented in the user file 4785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Memory Tx Transfer completed callback. 4790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c) 4795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MemTxCpltCallback could be implemented in the user file 4801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Memory Rx Transfer completed callback. 4806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c) 4811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_MemRxCpltCallback could be implemented in the user file 4817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 86 4820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C error callback. 4822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) 4827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_ErrorCallback could be implemented in the user file 4833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C abort callback. 4838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 4841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __weak void HAL_I2C_AbortCpltCallback(I2C_HandleTypeDef *hi2c) 4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 4845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(hi2c); 4846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* NOTE : This function should not be modified, when the callback is needed, 4848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** the HAL_I2C_AbortCpltCallback could be implemented in the user file 4849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 4854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @defgroup I2C_Exported_Functions_Group3 Peripheral State, Mode and Error functions 4857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Peripheral State, Mode and Error functions 4858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * 4859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @verbatim 4860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================================================== 4861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ##### Peripheral State, Mode and Error functions ##### 4862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** =============================================================================== 4863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** [..] 4864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** This subsection permit to get in run-time the status of the peripheral 4865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** and the data flow. 4866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** @endverbatim 4868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 4869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Return the I2C handle state. 4873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL state 4876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 87 4877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef HAL_I2C_GetState(const I2C_HandleTypeDef *hi2c) 4878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return I2C handle state */ 4880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->State; 4881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Returns the I2C Master, Slave, Memory or no mode. 4885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for I2C module 4887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL mode 4888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef HAL_I2C_GetMode(const I2C_HandleTypeDef *hi2c) 4890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->Mode; 4892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Return the I2C error code. 4896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval I2C Error Code 4899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t HAL_I2C_GetError(const I2C_HandleTypeDef *hi2c) 4901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->ErrorCode; 4903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 4907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @} 4911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** @addtogroup I2C_Private_Functions 4914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @{ 4915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 4918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with Interrupt. 4919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 4920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 4921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 4922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 4923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 4924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 4925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 4926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources) 4927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 4929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 4930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 4933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 88 4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 4935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 4936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 4938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 4939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */ 4941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 4942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 4943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 4944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 4947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 4949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 4950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 4953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 4956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 4958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 4959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 4962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) == RESET) && \ 4964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 4965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))) 4966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 4968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 4969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 4972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 4974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 4975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 4978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ 4981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 4982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 4984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 4986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 4988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 4990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 89 4991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 4993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 4996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 4999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, 5003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 5010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 5024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 5032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */ 5034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 5035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 5046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 90 5048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */ 5059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 5060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with Interrupt. 5070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources) 5078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 5080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 5086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */ 5092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 5097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 5100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 5101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 5103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 5104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 91 5105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 5115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Memaddress == 0xFFFFFFFFU) 5118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 5121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write LSB part of Memory Address */ 5131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress; 5132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */ 5134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 5135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TCR) != RESET) && \ 5138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount != 0U) && (hi2c->XferSize == 0U)) 5141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 5147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 92 5162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TC) != RESET) && \ 5163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 5169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RX_IT); 5170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ; 5174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 5183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */ 5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 5191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */ 5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, tmpITFlags); 5203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with Interrupt. 5213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 93 5219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_IT(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources) 5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 5224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */ 5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if STOPF is set */ 5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_STOPF) != RESET) && \ 5230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, tmpITFlags); 5234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 5236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 5240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0*/ 5241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 5250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 5252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 5257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 5272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 94 5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) && \ 5286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 5287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 5289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 5292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferCount == 0U) && \ 5301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 5302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_ADDR) != RESET) && \ 5308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, tmpITFlags); 5311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 5313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR only if XferCount not reach "0" */ 5316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* A TXIS flag can be set, during STOP treatment */ 5317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if all Data have already been sent */ 5318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If it is the case, this last write in TXDR is not sent, correspond to a dummy TXIS event */ 5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > 0U) 5320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write data to TXDR */ 5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = *hi2c->pBuffPtr; 5323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 5325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 5326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 95 5333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Master Mode with DMA. 5353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Master_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources) 5361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 5363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 5364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */ 5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 5379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 5383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ 5386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC interrupt */ 5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_TCI); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 96 5390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Recover Slave address */ 5394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** devaddress = (uint16_t)(hi2c->Instance->CR2 & I2C_CR2_SADD); 5395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 5401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 5406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 5408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 5412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the new XferSize in Nbytes register */ 5416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, xfermode, I2C_NO_STARTSTOP); 5417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 5419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 5422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call TxCpltCallback() if no stop mode is set */ 5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 97 5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ 5448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 5451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_STOP_MODE(hi2c) != I2C_AUTOEND_MODE) 5453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate a stop condition in case of no transfer option */ 5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_NO_OPTION_FRAME) 5456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */ 5458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 5459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master Sequential complete process */ 5463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterSeqCplt(hi2c); 5464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TC flag event */ 5470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */ 5478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Memory Mode with DMA. 5493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Mem_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources) 5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 5503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 98 5504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Locked */ 5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set corresponding Error Code */ 5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No need to generate STOP, it is automatically done */ 5517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* But enable STOP interrupt, to treat it */ 5518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Error callback will be send during stop flag treatment */ 5519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 5520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 5522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TXIS) != RESET) && \ 5525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 5526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write LSB part of Memory Address */ 5528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = hi2c->Memaddress; 5529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Memaddress content */ 5531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Memaddress = 0xFFFFFFFFU; 5532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TCR) != RESET) && \ 5534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable only Error interrupt */ 5540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 5541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 5543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prepare the new XferSize to transfer */ 5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 5550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 5556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 99 5561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wrong size Status regarding TCR flag event */ 5574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_SIZE); 5576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_TC) != RESET) && \ 5579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 5580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupt related to address step */ 5582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 5583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable only Error and NACK interrupt for data transfer */ 5585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_ERROR_IT); 5586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** direction = I2C_GENERATE_START_READ; 5590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 5593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 5595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and reload if hi2c->XferCount > MAX_NBYTE_SIZE and generate RESTART */ 5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 5599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 5603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set NBYTES to write and generate RESTART */ 5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 5606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 5607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update XferCount value */ 5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount -= hi2c->XferSize; 5611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable DMA Request */ 5613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 5614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_RXDMAEN; 5616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 100 5618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 |= I2C_CR1_TXDMAEN; 5620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Master complete process */ 5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITMasterCplt(hi2c, ITFlags); 5627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Interrupt Sub-Routine which handle the Interrupt Flags Slave Mode with DMA. 5641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITSources Interrupt sources enabled. 5645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_Slave_ISR_DMA(struct __I2C_HandleTypeDef *hi2c, uint32_t ITFlags, 5648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t ITSources) 5649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 5651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 5652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 5653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process locked */ 5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_LOCK(hi2c); 5656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if STOPF is set */ 5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_STOPF) != RESET) && \ 5659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 5660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave complete process */ 5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveCplt(hi2c, ITFlags); 5663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_AF) != RESET) && \ 5665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 5666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */ 5668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 5669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0 */ 5670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */ 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) || 5672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 5673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Split check of hdmarx, for MISRA compliance */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 101 5675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 5676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET) 5678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) 5680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmanack = 1U; 5682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Split check of hdmatx, for MISRA compliance */ 5687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 5688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_TXDMAEN) != RESET) 5690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U) 5692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmanack = 1U; 5694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (treatdmanack == 1U) 5699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 5701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 5702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 5703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, ITFlags); 5706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAM 5708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 5713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 5714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 5716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 5717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 5718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 5728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 5729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 102 5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 5733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current hi2c->State, solve MISRA2012-Rule-13.5 */ 5735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpstate = hi2c->State; 5736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 5738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 5740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 5742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN 5744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 5746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 5754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Only Clear NACK Flag, no DMA treatment is pending */ 5760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 5761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((I2C_CHECK_FLAG(ITFlags, I2C_FLAG_ADDR) != RESET) && \ 5764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 5765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITAddrCplt(hi2c, ITFlags); 5767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 5771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for write reques 5781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 5786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 5788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 103 5789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryWrite(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t 5793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart) 5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 5796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Memory Address */ 5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TCR flag is set */ 5826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TCR, RESET, Timeout, Tickstart) != HAL_OK) 5827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Master sends target device address followed by internal memory address for read request 5836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 5837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 5838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Target device address: The device 7 bits address value 5839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * in datasheet must be shifted to the left before calling the interface 5840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddress Internal memory address 5841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param MemAddSize Size of internal memory address 5842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 5843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 5844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 5845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 104 5846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, 5847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t MemAddress, uint16_t MemAddSize, uint32_t T 5848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart) 5849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 5851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 8Bit */ 5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (MemAddSize == I2C_MEMADD_SIZE_8BIT) 5860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send Memory Address */ 5862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If Memory address size is 16Bit */ 5865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send MSB of Memory Address */ 5868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_MSB(MemAddress); 5869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TXIS flag is set */ 5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnTXISFlagUntilTimeout(hi2c, Timeout, Tickstart) != HAL_OK) 5872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Send LSB of Memory Address */ 5877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = I2C_MEM_ADD_LSB(MemAddress); 5878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until TC flag is set */ 5881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_WaitOnFlagUntilTimeout(hi2c, I2C_FLAG_TC, RESET, Timeout, Tickstart) != HAL_OK) 5882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 5887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Address complete process callback. 5891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 5892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 5893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 5894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITAddrCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection; 5898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t slaveaddrcode; 5899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd1code; 5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd2code; 5901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 105 5903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(ITFlags); 5904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* In case of Listen state, need to inform upper layer of address match code event */ 5906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) == (uint32_t)HAL_I2C_STATE_LISTEN) 5907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** transferdirection = I2C_GET_DIR(hi2c); 5909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 5910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 5912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If 10bits addressing mode is selected */ 5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) 5915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((slaveaddrcode & SLAVE_ADDR_MSK) == ((ownadd1code >> SLAVE_ADDR_SHIFT) & SLAVE_ADDR_MSK)) 5917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = ownadd1code; 5919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount++; 5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 5921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset Address Event counter */ 5923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount = 0U; 5924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 5926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */ 5932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = ownadd2code; 5942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 5945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */ 5950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else 7 bits addressing mode is selected */ 5958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 106 5960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR Interrupts */ 5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT); 5962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Slave Addr callback */ 5967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 5968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrCallback(hi2c, transferdirection, slaveaddrcode); 5969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 5970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AddrCallback(hi2c, transferdirection, slaveaddrcode); 5971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 5972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Else clear address flag only */ 5975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 5976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ADDR flag */ 5978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ADDR); 5979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 5981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 5982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Master sequential complete process. 5987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 5988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 5989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 5990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterSeqCplt(I2C_HandleTypeDef *hi2c) 5991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */ 5993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No Generate Stop, to permit restart mode */ 5996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* The stop will be done at the end of transfer, when I2C_AUTOEND_MODE enable */ 5997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 5998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 6001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 6004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 6005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 6012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 6014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 107 6017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 6021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 6032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); 6034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Slave sequential complete process. 6040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveSeqCplt(I2C_HandleTypeDef *hi2c) 6044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 6046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */ 6048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 6051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) 6052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 6057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 6064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) 6067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_TX, keep only HAL_I2C_STATE_LISTEN */ 6069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 6071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 6073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 108 6074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 6081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 6083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX_LISTEN) 6087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove HAL_I2C_STATE_SLAVE_BUSY_RX, keep only HAL_I2C_STATE_LISTEN */ 6089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 6091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 6101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 6103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 6108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Master complete process. 6113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITMasterCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 6120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 6121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t tmpreg; 6122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 6124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 6127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_TX_IT); 6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 109 6131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT); 6135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 6136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 6140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 6146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) 6150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 6152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set acknowledge error code */ 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Fetch Last receive data if any */ 6159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) && (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET)) 6160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpreg = (uint8_t)hi2c->Instance->RXDR; 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 6164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 6167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store current volatile hi2c->ErrorCode, misra rule */ 6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmperror = hi2c->ErrorCode; 6171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_ABORT) || (tmperror != HAL_I2C_ERROR_NONE)) 6174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_TX */ 6179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_TX) 6180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 6185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 110 6188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemTxCpltCallback(hi2c); 6194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MemTxCpltCallback(hi2c); 6196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterTxCpltCallback(hi2c); 6208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterTxCpltCallback(hi2c); 6210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* hi2c->State == HAL_I2C_STATE_BUSY_RX */ 6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MEM) 6220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MemRxCpltCallback(hi2c); 6229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MemRxCpltCallback(hi2c); 6231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->MasterRxCpltCallback(hi2c); 6243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_MasterRxCpltCallback(hi2c); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 111 6245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 6251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Slave complete process. 6256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITSlaveCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 6263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 6264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 6266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 6268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts and Store Previous state */ 6271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_BUSY_TX) || (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN)) 6272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT); 6274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 6275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((tmpstate == HAL_I2C_STATE_BUSY_RX) || (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT); 6279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 6280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (tmpstate == HAL_I2C_STATE_LISTEN) 6282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_TX_IT | I2C_XFER_RX_IT); 6284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 6289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Address Acknowledge */ 6292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 6296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 6298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a DMA is ongoing, Update handle size context */ 6301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_TXDMAEN) != RESET) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 112 6302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx); 6309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_CR1_RXDMAEN) != RESET) 6312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = (uint16_t)I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx); 6319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Do nothing */ 6324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */ 6327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_RXNE) != RESET) 6328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Remove RXNE flag on temporary variable as read done */ 6330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpITFlags &= ~I2C_FLAG_RXNE; 6331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 6334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 6336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 6337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 6339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 6342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* All data are not transferred, so set error code accordingly */ 6346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount != 0U) 6347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_AF) != RESET) && \ 6353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 6354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check that I2C transfer finished */ 6356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if yes, normal use case, a NACK is sent by the MASTER when Transfer is finished */ 6357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean XferCount == 0*/ 6358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So clear Flag NACKF only */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 113 6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->State == HAL_I2C_STATE_LISTEN) && (tmpoptions == I2C_FIRST_AND_LAST_FRAME)) 6362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 6363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** Warning[Pa134]: left and right operands are identical */ 6364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 6366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); 6367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->State == HAL_I2C_STATE_BUSY_TX_LISTEN) && (tmpoptions != I2C_NO_OPTION_FRAME) 6369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 6371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 6374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if no, error use case, a Non-Acknowledge of last Data is generated by the MASTER*/ 6389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 6390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_FIRST_FRAME) || (tmpoptions == I2C_NEXT_FRAME)) 6396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->ErrorCode != HAL_I2C_ERROR_NONE) 6407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, hi2c->ErrorCode); 6410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_LISTEN) 6413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Listen complete process */ 6415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITListenCplt(hi2c, tmpITFlags); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 114 6416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 6419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Sequential Complete callback, to inform upper layer of the end of Transfer */ 6421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 6433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 6435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->State == HAL_I2C_STATE_BUSY_RX) 6439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveRxCpltCallback(hi2c); 6449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveRxCpltCallback(hi2c); 6451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->SlaveTxCpltCallback(hi2c); 6464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_SlaveTxCpltCallback(hi2c); 6466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Listen complete process. 6472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 115 6473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ITFlags Interrupt flags to handle. 6474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITListenCplt(I2C_HandleTypeDef *hi2c, uint32_t ITFlags) 6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 6479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */ 6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_CHECK_FLAG(ITFlags, I2C_FLAG_RXNE) != RESET) 6487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Read data from RXDR */ 6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** *hi2c->pBuffPtr = (uint8_t)hi2c->Instance->RXDR; 6490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Increment Buffer pointer */ 6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr++; 6493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferSize > 0U)) 6495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 6497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 6498:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6499:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set ErrorCode corresponding to a Non-Acknowledge */ 6500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6503:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all Interrupts*/ 6505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACK Flag */ 6508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ 6514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ListenCpltCallback(hi2c); 6516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ListenCpltCallback(hi2c); 6518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C interrupts error process. 6523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param ErrorCode Error code to handle. 6525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6527:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ITError(I2C_HandleTypeDef *hi2c, uint32_t ErrorCode) 6528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 116 6530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmppreviousstate; 6532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 6534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U; 6537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set new error code */ 6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= ErrorCode; 6540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Interrupts */ 6542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpstate == HAL_I2C_STATE_LISTEN) || 6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 6544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 6545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all interrupts, except interrupts related to LISTEN state */ 6547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* keep HAL_I2C_STATE_LISTEN if set */ 6550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_LISTEN; 6551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 6552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable all interrupts */ 6556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Disable_IRQ(hi2c, I2C_XFER_LISTEN_IT | I2C_XFER_RX_IT | I2C_XFER_TX_IT); 6557:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 6559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 6560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6561:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If state is an abort treatment on going, don't change state */ 6562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* This change will be do later */ 6563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State != HAL_I2C_STATE_ABORT) 6564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6565:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set HAL_I2C_STATE_READY */ 6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a STOPF is detected */ 6569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) 6570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 6572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 6574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 6575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 6579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 6583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX transfer if any */ 6586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmppreviousstate = hi2c->PreviousState; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 117 6587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->hdmatx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_TX) || \ 6589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 6590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_TXDMAEN) == I2C_CR1_TXDMAEN) 6592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmatx) != HAL_DMA_STATE_READY) 6597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; 6601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA TX */ 6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmatx) != HAL_OK) 6607:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly XferAbortCallback function in case of error */ 6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback(hi2c->hdmatx); 6610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6617:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX transfer if any */ 6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if ((hi2c->hdmarx != NULL) && ((tmppreviousstate == I2C_STATE_MASTER_BUSY_RX) || \ 6619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 6620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->Instance->CR1 & I2C_CR1_RXDMAEN) == I2C_CR1_RXDMAEN) 6622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_GetState(hi2c->hdmarx) != HAL_DMA_STATE_READY) 6627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the I2C DMA Abort callback : 6629:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ 6630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; 6631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6632:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Abort DMA RX */ 6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Abort_IT(hi2c->hdmarx) != HAL_OK) 6637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call Directly hi2c->hdmarx->XferAbortCallback function in case of error */ 6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback(hi2c->hdmarx); 6640:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6643:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 118 6644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Error callback treatment. 6655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TreatErrorCallback(I2C_HandleTypeDef *hi2c) 6659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 6661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6667:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AbortCpltCallback(hi2c); 6671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_AbortCpltCallback(hi2c); 6673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 6678:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #if (USE_HAL_I2C_REGISTER_CALLBACKS == 1) 6684:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCallback(hi2c); 6685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #else 6686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ErrorCallback(hi2c); 6687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 6688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief I2C Tx data register flush process. 6693:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 6694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Flush_TXDR(I2C_HandleTypeDef *hi2c) 6697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 28 .loc 1 6697 1 view -0 29 .cfi_startproc 30 @ args = 0, pretend = 0, frame = 0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 119 31 @ frame_needed = 0, uses_anonymous_args = 0 32 @ link register save eliminated. 6698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If a pending TXIS flag is set */ 6699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Write a dummy data in TXDR to clear it */ 6700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) != RESET) 33 .loc 1 6700 3 view .LVU1 34 .loc 1 6700 7 is_stmt 0 view .LVU2 35 0000 0368 ldr r3, [r0] 36 0002 9A69 ldr r2, [r3, #24] 37 .loc 1 6700 6 view .LVU3 38 0004 12F0020F tst r2, #2 39 0008 01D0 beq .L2 6701:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->TXDR = 0x00U; 40 .loc 1 6702 5 is_stmt 1 view .LVU4 41 .loc 1 6702 26 is_stmt 0 view .LVU5 42 000a 0022 movs r2, #0 43 000c 9A62 str r2, [r3, #40] 44 .L2: 6703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register if not empty */ 6706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) 45 .loc 1 6706 3 is_stmt 1 view .LVU6 46 .loc 1 6706 7 is_stmt 0 view .LVU7 47 000e 0368 ldr r3, [r0] 48 0010 9A69 ldr r2, [r3, #24] 49 .loc 1 6706 6 view .LVU8 50 0012 12F0010F tst r2, #1 51 0016 03D1 bne .L1 6707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_TXE); 52 .loc 1 6708 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: 6709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 57 .loc 1 6710 1 is_stmt 0 view .LVU10 58 0020 7047 bx lr 59 .cfi_endproc 60 .LFE400: 62 .section .text.I2C_TransferConfig,"ax",%progbits 63 .align 1 64 .syntax unified 65 .thumb 66 .thumb_func 68 I2C_TransferConfig: 69 .LVL1: 70 .LFB412: 6711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C master transmit process complete callback. 6714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle 6715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 120 6717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterTransmitCplt(DMA_HandleTypeDef *hdma) 6718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupt */ 6729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Buffer pointer */ 6735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6736:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6742:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6746:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6747:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 6748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmatx, (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 6749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6754:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6756:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */ 6757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6762:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C slave transmit process complete callback. 6765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle 6766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6767:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6768:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveTransmitCplt(DMA_HandleTypeDef *hdma) 6769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6773:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 121 6774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((tmpoptions == I2C_NEXT_FRAME) || (tmpoptions == I2C_FIRST_FRAME)) 6775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_TXDMAEN; 6778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Last Byte is Transmitted */ 6780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6784:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C master receive process complete callback. 6794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle 6795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAMasterReceiveCplt(DMA_HandleTypeDef *hdma) 6798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* If last transfer, enable STOP interrupt */ 6806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount == 0U) 6807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupt */ 6809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_CPLT_IT); 6810:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else prepare a new DMA transfer and enable TCReload interrupt */ 6812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Buffer pointer */ 6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr += hi2c->XferSize; 6816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Set the XferSize to transfer */ 6818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferCount > MAX_NBYTE_SIZE) 6819:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = MAX_NBYTE_SIZE; 6821:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 6825:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable the DMA stream or channel depends on Instance */ 6828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_DMA_Start_IT(hi2c->hdmarx, (uint32_t)&hi2c->Instance->RXDR, (uint32_t)hi2c->pBuffPtr, 6829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 6830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 122 6831:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6833:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6836:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */ 6837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Enable_IRQ(hi2c, I2C_XFER_RELOAD_IT); 6838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6839:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6842:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C slave receive process complete callback. 6845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle 6846:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6848:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMASlaveReceiveCplt(DMA_HandleTypeDef *hdma) 6849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 6853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) && \ 6855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 6856:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable DMA Request */ 6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR1 &= ~I2C_CR1_RXDMAEN; 6859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call I2C Slave Sequential complete process */ 6861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITSlaveSeqCplt(hi2c); 6862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6863:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 6864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* No specific action, Master fully manage the generation of STOP condition */ 6866:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Mean that this generation can arrive at any time, at the end or during DMA process */ 6867:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* So STOP condition should be manage through Interrupt treatment */ 6868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6870:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6872:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C communication error callback. 6874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle 6875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6876:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAError(DMA_HandleTypeDef *hdma) 6878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U; 6880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6882:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmatx) == 0U) 6886:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmaerror = 1U; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 123 6888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_GET_DMA_REMAIN_DATA(hi2c->hdmarx) == 0U) 6894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** treatdmaerror = 1U; 6896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a FIFO error is detected, if true normal use case, so no specific action to perform * 6900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (!((HAL_DMA_GetError(hdma) == HAL_DMA_ERROR_FE)) && (treatdmaerror != 0U)) 6901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable Acknowledge */ 6903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_NACK; 6904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6905:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Call the corresponding callback to inform upper layer of End of Transfer */ 6906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_ITError(hi2c, HAL_I2C_ERROR_DMA); 6907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6912:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief DMA I2C communication abort callback 6913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * (To be called at end of DMA Abort procedure). 6914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hdma DMA handle. 6915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 6916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6917:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) 6918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 6920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_HandleTypeDef *hi2c = (I2C_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); 6921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset AbortCpltCallback */ 6923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmatx != NULL) 6924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->hdmarx != NULL) 6928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6930:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6931:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TreatErrorCallback(hi2c); 6933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6936:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6937:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout. It waits 6938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * until a flag is no longer in the specified status. 6939:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 6941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Flag Specifies the I2C flag to check. 6942:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Status The actual Flag status (SET or RESET). 6943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 6944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 124 6945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 6946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagSta 6948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Timeout, uint32_t Tickstart) 6949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 6951:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */ 6953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 6954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6956:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6957:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 6959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 6960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 6962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, Flag) == Status)) 6964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 6966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 6967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 6971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 6977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6979:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 6980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of TXIS flag. 6981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 6982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 6983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 6984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 6985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 6986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 6987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnTXISFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 6988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart) 6989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 6991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */ 6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 6994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 6999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 7000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 125 7002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET)) 7004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7009:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 7010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 7013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7014:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7016:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 7018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 7021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of STOP flag. 7022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 7025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 7026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 7027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 7028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 7029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart) 7030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 7032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */ 7034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 7037:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 7040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) 7041:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET)) 7043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 7049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7050:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 7052:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_OK; 7056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7058:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 126 7059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles I2C Communication Timeout for specific usage of RXNE flag. 7060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7061:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7062:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 7063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 7064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 7065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 7066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, 7067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Tickstart) 7068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 7070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) && (status == HAL_OK)) 7072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an error is detected */ 7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (I2C_IsErrorOccurred(hi2c, Timeout, Tickstart) != HAL_OK) 7075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a STOPF is detected */ 7080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == SET) && (status == HAL_OK)) 7081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an RXNE is pending */ 7083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Store Last receive data if any */ 7084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == SET) && (hi2c->XferSize > 0U)) 7085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return HAL_OK */ 7087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* The Reading of data from RXDR will be done in caller function */ 7088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_OK; 7089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check a no-acknowledge have been detected */ 7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF) == SET) 7093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 7095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 7096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 7098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 7099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 7101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 7102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7105:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 7107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7110:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 7112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7115:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 127 7116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((((HAL_GetTick() - Tickstart) > Timeout) || (Timeout == 0U)) && (status == HAL_OK)) 7119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET)) 7121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_TIMEOUT; 7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 7126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status; 7133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 7136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief This function handles errors detection during an I2C Communication. 7137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Timeout Timeout duration 7140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Tickstart Tick start value 7141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval HAL status 7142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 7143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static HAL_StatusTypeDef I2C_IsErrorOccurred(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Ti 7144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 7146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 7147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0; 7148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 7149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp1; 7150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 7151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_AF)) 7153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear NACKF Flag */ 7155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); 7156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Wait until STOP Flag is set or timeout occurred */ 7158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* AutoEnd should be initiate after AF */ 7159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) && (status == HAL_OK)) 7160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 7162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (Timeout != HAL_MAX_DELAY) 7163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U)) 7165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp1 = (uint32_t)(hi2c->Instance->CR2 & I2C_CR2_STOP); 7167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 7168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* In case of I2C still busy, try to regenerate a STOP manually */ 7170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET) && \ 7171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 7172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 128 7173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7174:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Generate Stop */ 7175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Instance->CR2 |= I2C_CR2_STOP; 7176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7177:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Update Tick with new reference */ 7178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tickstart = HAL_GetTick(); 7179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 7182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check for the Timeout */ 7184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((HAL_GetTick() - tickstart) > I2C_TIMEOUT_STOPF) 7185:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_TIMEOUT; 7187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** break; 7191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7193:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* In case STOP Flag is detected, clear it */ 7198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (status == HAL_OK) 7199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear STOP Flag */ 7201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_STOPF); 7202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_AF; 7205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Refresh Content of Status register */ 7210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** itflag = hi2c->Instance->ISR; 7211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7212:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Then verify if an additional errors occurs */ 7213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if a Bus error occurred */ 7214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_BERR)) 7215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_BERR; 7217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7218:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear BERR flag */ 7219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_BERR); 7220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an Over-Run/Under-Run error occurred */ 7225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_OVR)) 7226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_OVR; 7228:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear OVR flag */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 129 7230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_OVR); 7231:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check if an Arbitration Loss error occurred */ 7236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (HAL_IS_BIT_SET(itflag, I2C_FLAG_ARLO)) 7237:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** error_code |= HAL_I2C_ERROR_ARLO; 7239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7240:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear ARLO flag */ 7241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_ARLO); 7242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** status = HAL_ERROR; 7244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (status != HAL_OK) 7247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7248:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Flush TX register */ 7249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_Flush_TXDR(hi2c); 7250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Clear Configuration Register 2 */ 7252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RESET_CR2(hi2c); 7253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= error_code; 7255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 7256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Process Unlocked */ 7259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_UNLOCK(hi2c); 7260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return status; 7263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 7266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Handles I2Cx communication when starting transfer or during transfer (TC or TCR flag ar 7267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 7268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param DevAddress Specifies the slave address to be programmed. 7269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Size Specifies the number of bytes to be programmed. 7270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter must be a value between 0 and 255. 7271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Mode New state of the I2C START condition generation. 7272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values: 7273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_RELOAD_MODE Enable Reload mode . 7274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_AUTOEND_MODE Enable Automatic end mode. 7275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_SOFTEND_MODE Enable Software end mode. 7276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param Request New state of the I2C START condition generation. 7277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * This parameter can be one of the following values: 7278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_NO_STARTSTOP Don't Generate stop and start condition. 7279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_STOP Generate stop condition (Size should be set to 0). 7280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_READ Generate Restart for read request. 7281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @arg @ref I2C_GENERATE_START_WRITE Generate Restart for write request. 7282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 7283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 7284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t Size, uint32_t 7285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t Request) 7286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 130 71 .loc 1 7286 1 is_stmt 1 view -0 72 .cfi_startproc 73 @ args = 4, pretend = 0, frame = 0 74 @ frame_needed = 0, uses_anonymous_args = 0 75 @ link register save eliminated. 76 .loc 1 7286 1 is_stmt 0 view .LVU12 77 0000 10B4 push {r4} 78 .cfi_def_cfa_offset 4 79 .cfi_offset 4, -4 80 0002 019C ldr r4, [sp, #4] 7287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 7288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); 81 .loc 1 7288 3 is_stmt 1 view .LVU13 7289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_TRANSFER_MODE(Mode)); 82 .loc 1 7289 3 view .LVU14 7290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_TRANSFER_REQUEST(Request)); 83 .loc 1 7290 3 view .LVU15 7291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 7293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp = ((uint32_t)(((uint32_t)DevAddress & I2C_CR2_SADD) | \ 84 .loc 1 7293 3 view .LVU16 85 .loc 1 7293 52 is_stmt 0 view .LVU17 86 0004 C1F30901 ubfx r1, r1, #0, #10 87 .LVL2: 88 .loc 1 7293 68 view .LVU18 89 0008 41EA0241 orr r1, r1, r2, lsl #16 7294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 90 .loc 1 7294 88 view .LVU19 91 000c 1943 orrs r1, r1, r3 7293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 92 .loc 1 7293 19 view .LVU20 93 000e 2143 orrs r1, r1, r4 7293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (((uint32_t)Size << I2C_CR2_NBYTES_Pos) & I2C_CR2_NBYTES) | \ 94 .loc 1 7293 12 view .LVU21 95 0010 21F00041 bic r1, r1, #-2147483648 96 .LVL3: 7295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)Mode | (uint32_t)Request) & (~0x80000000U)); 7296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* update CR2 register */ 7298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** MODIFY_REG(hi2c->Instance->CR2, \ 97 .loc 1 7298 3 is_stmt 1 view .LVU22 98 0014 0268 ldr r2, [r0] 99 .LVL4: 100 .loc 1 7298 3 is_stmt 0 view .LVU23 101 0016 5368 ldr r3, [r2, #4] 102 .LVL5: 103 .loc 1 7298 3 view .LVU24 104 0018 640D lsrs r4, r4, #21 105 001a 04F48064 and r4, r4, #1024 106 001e 44F07F74 orr r4, r4, #66846720 107 0022 44F45834 orr r4, r4, #221184 108 0026 44F47F74 orr r4, r4, #1020 109 002a 44F00304 orr r4, r4, #3 110 002e 23EA0403 bic r3, r3, r4 111 0032 0B43 orrs r3, r3, r1 112 0034 5360 str r3, [r2, #4] 7299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CR2_SADD | I2C_CR2_NBYTES | I2C_CR2_RELOAD | I2C_CR2_AUTOEND | \ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 131 7300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CR2_RD_WRN & (uint32_t)(Request >> (31U - I2C_CR2_RD_WRN_Pos))) | \ 7301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_CR2_START | I2C_CR2_STOP)), tmp); 7302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 113 .loc 1 7302 1 view .LVU25 114 0036 5DF8044B ldr r4, [sp], #4 115 .cfi_restore 4 116 .cfi_def_cfa_offset 0 117 .LVL6: 118 .loc 1 7302 1 view .LVU26 119 003a 7047 bx lr 120 .cfi_endproc 121 .LFE412: 123 .section .text.I2C_Enable_IRQ,"ax",%progbits 124 .align 1 125 .syntax unified 126 .thumb 127 .thumb_func 129 I2C_Enable_IRQ: 130 .LVL7: 131 .LFB413: 7303:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 7305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Manage the enabling of Interrupts. 7306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 7309:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 7310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 7311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Enable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 7312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 132 .loc 1 7312 1 is_stmt 1 view -0 133 .cfi_startproc 134 @ args = 0, pretend = 0, frame = 0 135 @ frame_needed = 0, uses_anonymous_args = 0 136 @ link register save eliminated. 7313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpisr = 0U; 137 .loc 1 7313 3 view .LVU28 7314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->XferISR != I2C_Master_ISR_DMA) && \ 138 .loc 1 7315 3 view .LVU29 139 .loc 1 7315 12 is_stmt 0 view .LVU30 140 0000 436B ldr r3, [r0, #52] 141 .loc 1 7315 6 view .LVU31 142 0002 234A ldr r2, .L22 143 0004 9342 cmp r3, r2 144 0006 1FD0 beq .L7 145 .loc 1 7315 45 discriminator 1 view .LVU32 146 0008 224A ldr r2, .L22+4 147 000a 9342 cmp r3, r2 148 000c 1CD0 beq .L7 7316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->XferISR != I2C_Slave_ISR_DMA) && \ 149 .loc 1 7316 44 view .LVU33 150 000e 224A ldr r2, .L22+8 151 0010 9342 cmp r3, r2 152 0012 19D0 beq .L7 7317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->XferISR != I2C_Mem_ISR_DMA)) 7318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 132 7319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 153 .loc 1 7319 5 is_stmt 1 view .LVU34 154 .loc 1 7319 8 is_stmt 0 view .LVU35 155 0014 11F4004F tst r1, #32768 156 0018 0FD1 bne .L18 7313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 157 .loc 1 7313 12 view .LVU36 158 001a 0023 movs r3, #0 159 .L8: 160 .LVL8: 7320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 7322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7323:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 161 .loc 1 7325 5 is_stmt 1 view .LVU37 162 .loc 1 7325 8 is_stmt 0 view .LVU38 163 001c 11F0010F tst r1, #1 164 0020 01D0 beq .L9 7326:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 7328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; 165 .loc 1 7328 7 is_stmt 1 view .LVU39 166 .loc 1 7328 14 is_stmt 0 view .LVU40 167 0022 43F0F203 orr r3, r3, #242 168 .LVL9: 169 .L9: 7329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 170 .loc 1 7331 5 is_stmt 1 view .LVU41 171 .loc 1 7331 8 is_stmt 0 view .LVU42 172 0026 11F0020F tst r1, #2 173 002a 08D0 beq .L10 7332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 7334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; 174 .loc 1 7334 7 is_stmt 1 view .LVU43 175 .loc 1 7334 14 is_stmt 0 view .LVU44 176 002c 43F0F403 orr r3, r3, #244 177 .LVL10: 7335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 178 .loc 1 7337 5 is_stmt 1 view .LVU45 179 .L11: 7338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 180 .loc 1 7343 5 view .LVU46 181 .loc 1 7343 8 is_stmt 0 view .LVU47 182 0030 2029 cmp r1, #32 183 0032 1BD1 bne .L12 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 133 7344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */ 7346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 184 .loc 1 7346 7 is_stmt 1 view .LVU48 185 .loc 1 7346 14 is_stmt 0 view .LVU49 186 0034 43F02003 orr r3, r3, #32 187 .LVL11: 188 .loc 1 7346 14 view .LVU50 189 0038 18E0 b .L12 190 .LVL12: 191 .L18: 7322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 192 .loc 1 7322 14 view .LVU51 193 003a B823 movs r3, #184 194 003c EEE7 b .L8 195 .LVL13: 196 .L10: 7337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 197 .loc 1 7337 5 is_stmt 1 view .LVU52 7337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 198 .loc 1 7337 8 is_stmt 0 view .LVU53 199 003e 1029 cmp r1, #16 200 0040 F6D1 bne .L11 7340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 201 .loc 1 7340 7 is_stmt 1 view .LVU54 7340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 202 .loc 1 7340 14 is_stmt 0 view .LVU55 203 0042 43F09003 orr r3, r3, #144 204 .LVL14: 7343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 205 .loc 1 7343 5 is_stmt 1 view .LVU56 206 0046 11E0 b .L12 207 .LVL15: 208 .L7: 7347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 7351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 209 .loc 1 7352 5 view .LVU57 210 .loc 1 7352 8 is_stmt 0 view .LVU58 211 0048 11F4004F tst r1, #32768 212 004c 13D1 bne .L19 7313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 213 .loc 1 7313 12 view .LVU59 214 004e 0023 movs r3, #0 215 .L13: 216 .LVL16: 7353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, STOP, NACK and ADDR interrupts */ 7355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7358:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 217 .loc 1 7358 5 is_stmt 1 view .LVU60 218 .loc 1 7358 8 is_stmt 0 view .LVU61 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 134 219 0050 11F0010F tst r1, #1 220 0054 01D0 beq .L14 7359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and TXI interrupts */ 7361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_TXI; 221 .loc 1 7361 7 is_stmt 1 view .LVU62 222 .loc 1 7361 14 is_stmt 0 view .LVU63 223 0056 43F0F203 orr r3, r3, #242 224 .LVL17: 225 .L14: 7362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7364:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 226 .loc 1 7364 5 is_stmt 1 view .LVU64 227 .loc 1 7364 8 is_stmt 0 view .LVU65 228 005a 11F0020F tst r1, #2 229 005e 0CD0 beq .L15 7365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR, TC, STOP, NACK and RXI interrupts */ 7367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_TCI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_RXI; 230 .loc 1 7367 7 is_stmt 1 view .LVU66 231 .loc 1 7367 14 is_stmt 0 view .LVU67 232 0060 43F0F403 orr r3, r3, #244 233 .LVL18: 7368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7369:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 234 .loc 1 7370 5 is_stmt 1 view .LVU68 235 .L16: 7371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 7374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 236 .loc 1 7376 5 view .LVU69 237 .loc 1 7376 8 is_stmt 0 view .LVU70 238 0064 2029 cmp r1, #32 239 0066 0DD0 beq .L20 240 .L17: 7377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */ 7379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= (I2C_IT_STOPI | I2C_IT_TCI); 7380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 241 .loc 1 7382 5 is_stmt 1 view .LVU71 242 .loc 1 7382 8 is_stmt 0 view .LVU72 243 0068 4029 cmp r1, #64 244 006a 0ED0 beq .L21 245 .LVL19: 246 .L12: 7383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7384:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */ 7385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 7386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 135 7388:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable interrupts only at the end */ 7390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* to avoid the risk of I2C interrupt handle execution before */ 7391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* all interrupts requested done */ 7392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_ENABLE_IT(hi2c, tmpisr); 247 .loc 1 7392 3 is_stmt 1 view .LVU73 248 006c 0168 ldr r1, [r0] 249 .LVL20: 250 .loc 1 7392 3 is_stmt 0 view .LVU74 251 006e 0A68 ldr r2, [r1] 252 0070 1343 orrs r3, r3, r2 253 .LVL21: 254 .loc 1 7392 3 view .LVU75 255 0072 0B60 str r3, [r1] 7393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 256 .loc 1 7393 1 view .LVU76 257 0074 7047 bx lr 258 .LVL22: 259 .L19: 7355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 260 .loc 1 7355 14 view .LVU77 261 0076 B823 movs r3, #184 262 0078 EAE7 b .L13 263 .LVL23: 264 .L15: 7370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 265 .loc 1 7370 5 is_stmt 1 view .LVU78 7370:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 266 .loc 1 7370 8 is_stmt 0 view .LVU79 267 007a 1029 cmp r1, #16 268 007c F2D1 bne .L16 7373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 269 .loc 1 7373 7 is_stmt 1 view .LVU80 7373:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 270 .loc 1 7373 14 is_stmt 0 view .LVU81 271 007e 43F09003 orr r3, r3, #144 272 .LVL24: 7376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 273 .loc 1 7376 5 is_stmt 1 view .LVU82 274 0082 F1E7 b .L17 275 .L20: 7379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 276 .loc 1 7379 7 view .LVU83 7379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 277 .loc 1 7379 14 is_stmt 0 view .LVU84 278 0084 43F06003 orr r3, r3, #96 279 .LVL25: 7382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 280 .loc 1 7382 5 is_stmt 1 view .LVU85 281 0088 F0E7 b .L12 282 .L21: 7385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 283 .loc 1 7385 7 view .LVU86 7385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 284 .loc 1 7385 14 is_stmt 0 view .LVU87 285 008a 43F04003 orr r3, r3, #64 286 .LVL26: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 136 7385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 287 .loc 1 7385 14 view .LVU88 288 008e EDE7 b .L12 289 .L23: 290 .align 2 291 .L22: 292 0090 00000000 .word I2C_Master_ISR_DMA 293 0094 00000000 .word I2C_Slave_ISR_DMA 294 0098 00000000 .word I2C_Mem_ISR_DMA 295 .cfi_endproc 296 .LFE413: 298 .section .text.I2C_Disable_IRQ,"ax",%progbits 299 .align 1 300 .syntax unified 301 .thumb 302 .thumb_func 304 I2C_Disable_IRQ: 305 .LVL27: 306 .LFB414: 7394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 7396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Manage the disabling of Interrupts. 7397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains 7398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * the configuration information for the specified I2C. 7399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param InterruptRequest Value of @ref I2C_Interrupt_configuration_definition. 7400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 7401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ 7402:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_Disable_IRQ(I2C_HandleTypeDef *hi2c, uint16_t InterruptRequest) 7403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 307 .loc 1 7403 1 is_stmt 1 view -0 308 .cfi_startproc 309 @ args = 0, pretend = 0, frame = 0 310 @ frame_needed = 0, uses_anonymous_args = 0 311 @ link register save eliminated. 7404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpisr = 0U; 312 .loc 1 7404 3 view .LVU90 7405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_TX_IT) == I2C_XFER_TX_IT) 313 .loc 1 7406 3 view .LVU91 314 .loc 1 7406 6 is_stmt 0 view .LVU92 315 0000 11F0010F tst r1, #1 316 0004 09D0 beq .L31 7407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC and TXI interrupts */ 7409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_TXI; 317 .loc 1 7409 5 is_stmt 1 view .LVU93 318 .LVL28: 7410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 319 .loc 1 7411 5 view .LVU94 320 .loc 1 7411 24 is_stmt 0 view .LVU95 321 0006 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 322 .loc 1 7411 8 view .LVU96 323 000a 03F02803 and r3, r3, #40 324 000e 282B cmp r3, #40 325 0010 01D0 beq .L34 7412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 137 7413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 7414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 326 .loc 1 7414 14 view .LVU97 327 0012 F223 movs r3, #242 328 0014 02E0 b .L25 329 .L34: 7409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 330 .loc 1 7409 12 view .LVU98 331 0016 4223 movs r3, #66 332 0018 00E0 b .L25 333 .LVL29: 334 .L31: 7404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 335 .loc 1 7404 12 view .LVU99 336 001a 0023 movs r3, #0 337 .LVL30: 338 .L25: 7415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_RX_IT) == I2C_XFER_RX_IT) 339 .loc 1 7418 3 is_stmt 1 view .LVU100 340 .loc 1 7418 6 is_stmt 0 view .LVU101 341 001c 11F0020F tst r1, #2 342 0020 09D0 beq .L26 7419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable TC and RXI interrupts */ 7421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI | I2C_IT_RXI; 343 .loc 1 7421 5 is_stmt 1 view .LVU102 344 .loc 1 7421 12 is_stmt 0 view .LVU103 345 0022 43F0440C orr ip, r3, #68 346 .LVL31: 7422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (((uint32_t)hi2c->State & (uint32_t)HAL_I2C_STATE_LISTEN) != (uint32_t)HAL_I2C_STATE_LISTEN) 347 .loc 1 7423 5 is_stmt 1 view .LVU104 348 .loc 1 7423 24 is_stmt 0 view .LVU105 349 0026 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 350 .loc 1 7423 8 view .LVU106 351 002a 02F02802 and r2, r2, #40 352 002e 282A cmp r2, #40 353 0030 09D0 beq .L33 7424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable NACK and STOP interrupts */ 7426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 354 .loc 1 7426 7 is_stmt 1 view .LVU107 355 .loc 1 7426 14 is_stmt 0 view .LVU108 356 0032 43F0F403 orr r3, r3, #244 357 .LVL32: 358 .L26: 7427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7429:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((InterruptRequest & I2C_XFER_LISTEN_IT) == I2C_XFER_LISTEN_IT) 359 .loc 1 7430 3 is_stmt 1 view .LVU109 360 .loc 1 7430 6 is_stmt 0 view .LVU110 361 0036 11F4004F tst r1, #32768 362 003a 06D1 bne .L35 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 138 7431:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable ADDR, NACK and STOP interrupts */ 7433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ADDRI | I2C_IT_STOPI | I2C_IT_NACKI | I2C_IT_ERRI; 7434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_ERROR_IT) 363 .loc 1 7436 3 is_stmt 1 view .LVU111 364 .loc 1 7436 6 is_stmt 0 view .LVU112 365 003c 1029 cmp r1, #16 366 003e 06D1 bne .L28 7437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable ERR and NACK interrupts */ 7439:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_ERRI | I2C_IT_NACKI; 367 .loc 1 7439 5 is_stmt 1 view .LVU113 368 .loc 1 7439 12 is_stmt 0 view .LVU114 369 0040 43F09003 orr r3, r3, #144 370 .LVL33: 7440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_CPLT_IT) 371 .loc 1 7442 3 is_stmt 1 view .LVU115 372 0044 05E0 b .L29 373 .LVL34: 374 .L33: 7421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 375 .loc 1 7421 12 is_stmt 0 view .LVU116 376 0046 6346 mov r3, ip 377 0048 F5E7 b .L26 378 .LVL35: 379 .L35: 7433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 380 .loc 1 7433 5 is_stmt 1 view .LVU117 7433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 381 .loc 1 7433 12 is_stmt 0 view .LVU118 382 004a 43F0B803 orr r3, r3, #184 383 .LVL36: 7436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 384 .loc 1 7436 3 is_stmt 1 view .LVU119 385 .L28: 386 .loc 1 7442 3 view .LVU120 387 .loc 1 7442 6 is_stmt 0 view .LVU121 388 004e 2029 cmp r1, #32 389 0050 07D0 beq .L36 390 .L29: 7443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable STOP interrupts */ 7445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_STOPI; 7446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (InterruptRequest == I2C_XFER_RELOAD_IT) 391 .loc 1 7448 3 is_stmt 1 view .LVU122 392 .loc 1 7448 6 is_stmt 0 view .LVU123 393 0052 4029 cmp r1, #64 394 0054 08D0 beq .L37 395 .LVL37: 396 .L30: 7449:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 139 7450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Enable TC interrupts */ 7451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmpisr |= I2C_IT_TCI; 7452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Disable interrupts only at the end */ 7455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* to avoid a breaking situation like at "t" time */ 7456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* all disable interrupts request are not done */ 7457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __HAL_I2C_DISABLE_IT(hi2c, tmpisr); 397 .loc 1 7457 3 is_stmt 1 view .LVU124 398 0056 0168 ldr r1, [r0] 399 .LVL38: 400 .loc 1 7457 3 is_stmt 0 view .LVU125 401 0058 0A68 ldr r2, [r1] 402 005a 22EA0303 bic r3, r2, r3 403 .LVL39: 404 .loc 1 7457 3 view .LVU126 405 005e 0B60 str r3, [r1] 7458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 406 .loc 1 7458 1 view .LVU127 407 0060 7047 bx lr 408 .LVL40: 409 .L36: 7445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 410 .loc 1 7445 5 is_stmt 1 view .LVU128 7445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 411 .loc 1 7445 12 is_stmt 0 view .LVU129 412 0062 43F02003 orr r3, r3, #32 413 .LVL41: 7448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 414 .loc 1 7448 3 is_stmt 1 view .LVU130 415 0066 F6E7 b .L30 416 .L37: 7451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 417 .loc 1 7451 5 view .LVU131 7451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 418 .loc 1 7451 12 is_stmt 0 view .LVU132 419 0068 43F04003 orr r3, r3, #64 420 .LVL42: 7451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 421 .loc 1 7451 12 view .LVU133 422 006c F3E7 b .L30 423 .cfi_endproc 424 .LFE414: 426 .section .text.I2C_ConvertOtherXferOptions,"ax",%progbits 427 .align 1 428 .syntax unified 429 .thumb 430 .thumb_func 432 I2C_ConvertOtherXferOptions: 433 .LVL43: 434 .LFB415: 7459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 7461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @brief Convert I2Cx OTHER_xxx XferOptions to functional XferOptions. 7462:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @param hi2c I2C handle. 7463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** * @retval None 7464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** */ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 140 7465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** static void I2C_ConvertOtherXferOptions(I2C_HandleTypeDef *hi2c) 7466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 435 .loc 1 7466 1 is_stmt 1 view -0 436 .cfi_startproc 437 @ args = 0, pretend = 0, frame = 0 438 @ frame_needed = 0, uses_anonymous_args = 0 439 @ link register save eliminated. 7467:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* if user set XferOptions to I2C_OTHER_FRAME */ 7468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 7469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_FRAME */ 7470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions == I2C_OTHER_FRAME) 440 .loc 1 7470 3 view .LVU135 441 .loc 1 7470 11 is_stmt 0 view .LVU136 442 0000 C36A ldr r3, [r0, #44] 443 .loc 1 7470 6 view .LVU137 444 0002 AA2B cmp r3, #170 445 0004 04D0 beq .L41 7471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_FRAME; 7473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* else if user set XferOptions to I2C_OTHER_AND_LAST_FRAME */ 7475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* it request implicitly to generate a restart condition */ 7476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* then generate a stop condition at the end of transfer */ 7477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* set XferOptions to I2C_FIRST_AND_LAST_FRAME */ 7478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else if (hi2c->XferOptions == I2C_OTHER_AND_LAST_FRAME) 446 .loc 1 7478 8 is_stmt 1 view .LVU138 447 .loc 1 7478 16 is_stmt 0 view .LVU139 448 0006 C36A ldr r3, [r0, #44] 449 .loc 1 7478 11 view .LVU140 450 0008 B3F52A4F cmp r3, #43520 451 000c 03D0 beq .L42 452 .L38: 7479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_FIRST_AND_LAST_FRAME; 7481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** else 7483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7484:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Nothing to do */ 7485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 453 .loc 1 7486 1 view .LVU141 454 000e 7047 bx lr 455 .L41: 7472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 456 .loc 1 7472 5 is_stmt 1 view .LVU142 7472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 457 .loc 1 7472 23 is_stmt 0 view .LVU143 458 0010 0023 movs r3, #0 459 0012 C362 str r3, [r0, #44] 460 0014 7047 bx lr 461 .L42: 7480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 462 .loc 1 7480 5 is_stmt 1 view .LVU144 7480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 463 .loc 1 7480 23 is_stmt 0 view .LVU145 464 0016 4FF00073 mov r3, #33554432 465 001a C362 str r3, [r0, #44] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 141 7485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 466 .loc 1 7485 3 is_stmt 1 view .LVU146 467 .loc 1 7486 1 is_stmt 0 view .LVU147 468 001c F7E7 b .L38 469 .cfi_endproc 470 .LFE415: 472 .section .text.I2C_IsErrorOccurred,"ax",%progbits 473 .align 1 474 .syntax unified 475 .thumb 476 .thumb_func 478 I2C_IsErrorOccurred: 479 .LVL44: 480 .LFB411: 7144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 481 .loc 1 7144 1 is_stmt 1 view -0 482 .cfi_startproc 483 @ args = 0, pretend = 0, frame = 0 484 @ frame_needed = 0, uses_anonymous_args = 0 7144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 485 .loc 1 7144 1 is_stmt 0 view .LVU149 486 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 487 .cfi_def_cfa_offset 24 488 .cfi_offset 4, -24 489 .cfi_offset 5, -20 490 .cfi_offset 6, -16 491 .cfi_offset 7, -12 492 .cfi_offset 8, -8 493 .cfi_offset 14, -4 494 0004 0446 mov r4, r0 7145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 495 .loc 1 7145 3 is_stmt 1 view .LVU150 496 .LVL45: 7146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0; 497 .loc 1 7146 3 view .LVU151 7146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0; 498 .loc 1 7146 27 is_stmt 0 view .LVU152 499 0006 0368 ldr r3, [r0] 7146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t error_code = 0; 500 .loc 1 7146 12 view .LVU153 501 0008 9E69 ldr r6, [r3, #24] 502 .LVL46: 7147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 503 .loc 1 7147 3 is_stmt 1 view .LVU154 7148:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmp1; 504 .loc 1 7148 3 view .LVU155 7149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_ModeTypeDef tmp2; 505 .loc 1 7149 3 view .LVU156 7150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 506 .loc 1 7150 3 view .LVU157 7152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 507 .loc 1 7152 3 view .LVU158 7152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 508 .loc 1 7152 6 is_stmt 0 view .LVU159 509 000a 16F01006 ands r6, r6, #16 510 .LVL47: 7152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 142 511 .loc 1 7152 6 view .LVU160 512 000e 7ED0 beq .L60 513 0010 0D46 mov r5, r1 514 0012 9046 mov r8, r2 7155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 515 .loc 1 7155 5 is_stmt 1 view .LVU161 516 0014 1022 movs r2, #16 517 .LVL48: 7155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 518 .loc 1 7155 5 is_stmt 0 view .LVU162 519 0016 DA61 str r2, [r3, #28] 7159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 520 .loc 1 7159 5 is_stmt 1 view .LVU163 7147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart = Tickstart; 521 .loc 1 7147 12 is_stmt 0 view .LVU164 522 0018 0026 movs r6, #0 7145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 523 .loc 1 7145 21 view .LVU165 524 001a 3746 mov r7, r6 525 .LVL49: 526 .L46: 7159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 527 .loc 1 7159 64 is_stmt 1 view .LVU166 7159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 528 .loc 1 7159 13 is_stmt 0 view .LVU167 529 001c 2368 ldr r3, [r4] 530 001e 9869 ldr r0, [r3, #24] 7159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 531 .loc 1 7159 64 view .LVU168 532 0020 10F0200F tst r0, #32 533 0024 32D1 bne .L52 7159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 534 .loc 1 7159 64 discriminator 1 view .LVU169 535 0026 8FBB cbnz r7, .L52 7162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 536 .loc 1 7162 7 is_stmt 1 view .LVU170 7162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 537 .loc 1 7162 10 is_stmt 0 view .LVU171 538 0028 B5F1FF3F cmp r5, #-1 539 002c F6D0 beq .L46 7164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 540 .loc 1 7164 9 is_stmt 1 view .LVU172 7164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 541 .loc 1 7164 15 is_stmt 0 view .LVU173 542 002e FFF7FEFF bl HAL_GetTick 543 .LVL50: 7164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 544 .loc 1 7164 29 discriminator 1 view .LVU174 545 0032 A0EB0800 sub r0, r0, r8 7164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 546 .loc 1 7164 12 discriminator 1 view .LVU175 547 0036 A842 cmp r0, r5 548 0038 01D8 bhi .L47 7164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 549 .loc 1 7164 53 discriminator 1 view .LVU176 550 003a 002D cmp r5, #0 551 003c EED1 bne .L46 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 143 552 .L47: 7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 553 .loc 1 7166 11 is_stmt 1 view .LVU177 7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 554 .loc 1 7166 33 is_stmt 0 view .LVU178 555 003e 2168 ldr r1, [r4] 7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 556 .loc 1 7166 43 view .LVU179 557 0040 4A68 ldr r2, [r1, #4] 7166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = hi2c->Mode; 558 .loc 1 7166 16 view .LVU180 559 0042 02F48042 and r2, r2, #16384 560 .LVL51: 7167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 561 .loc 1 7167 11 is_stmt 1 view .LVU181 7167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 562 .loc 1 7167 16 is_stmt 0 view .LVU182 563 0046 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 564 004a DBB2 uxtb r3, r3 565 .LVL52: 7170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 566 .loc 1 7170 11 is_stmt 1 view .LVU183 7170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 567 .loc 1 7170 16 is_stmt 0 view .LVU184 568 004c 8869 ldr r0, [r1, #24] 7170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp1 != I2C_CR2_STOP) && \ 569 .loc 1 7170 14 view .LVU185 570 004e 10F4004F tst r0, #32768 571 0052 04D0 beq .L50 7172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 572 .loc 1 7172 21 view .LVU186 573 0054 203B subs r3, r3, #32 574 .LVL53: 7172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 575 .loc 1 7172 21 view .LVU187 576 0056 18BF it ne 577 0058 0123 movne r3, #1 578 .LVL54: 7171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmp2 != HAL_I2C_MODE_SLAVE)) 579 .loc 1 7171 38 view .LVU188 580 005a 02B9 cbnz r2, .L50 581 005c 73B9 cbnz r3, .L62 582 .LVL55: 583 .L50: 7181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 584 .loc 1 7181 59 is_stmt 1 view .LVU189 7181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 585 .loc 1 7181 18 is_stmt 0 view .LVU190 586 005e 2368 ldr r3, [r4] 587 0060 9B69 ldr r3, [r3, #24] 7181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 588 .loc 1 7181 59 view .LVU191 589 0062 13F0200F tst r3, #32 590 0066 D9D1 bne .L46 7184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 591 .loc 1 7184 13 is_stmt 1 view .LVU192 7184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 144 592 .loc 1 7184 18 is_stmt 0 view .LVU193 593 0068 FFF7FEFF bl HAL_GetTick 594 .LVL56: 7184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 595 .loc 1 7184 32 discriminator 1 view .LVU194 596 006c A0EB0800 sub r0, r0, r8 7184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 597 .loc 1 7184 16 discriminator 1 view .LVU195 598 0070 1928 cmp r0, #25 599 0072 F4D9 bls .L50 7186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 600 .loc 1 7186 15 is_stmt 1 view .LVU196 7186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 601 .loc 1 7186 26 is_stmt 0 view .LVU197 602 0074 46F02006 orr r6, r6, #32 603 .LVL57: 7188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 604 .loc 1 7188 15 is_stmt 1 view .LVU198 7190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 605 .loc 1 7190 15 view .LVU199 7188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 606 .loc 1 7188 22 is_stmt 0 view .LVU200 607 0078 0127 movs r7, #1 7190:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 608 .loc 1 7190 15 view .LVU201 609 007a CFE7 b .L46 610 .LVL58: 611 .L62: 7175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 612 .loc 1 7175 13 is_stmt 1 view .LVU202 7175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 613 .loc 1 7175 27 is_stmt 0 view .LVU203 614 007c 4B68 ldr r3, [r1, #4] 7175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 615 .loc 1 7175 33 view .LVU204 616 007e 43F48043 orr r3, r3, #16384 617 0082 4B60 str r3, [r1, #4] 7178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 618 .loc 1 7178 13 is_stmt 1 view .LVU205 7178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 619 .loc 1 7178 25 is_stmt 0 view .LVU206 620 0084 FFF7FEFF bl HAL_GetTick 621 .LVL59: 7178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 622 .loc 1 7178 25 view .LVU207 623 0088 8046 mov r8, r0 624 .LVL60: 7178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 625 .loc 1 7178 25 view .LVU208 626 008a E8E7 b .L50 627 .LVL61: 628 .L52: 7198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 629 .loc 1 7198 5 is_stmt 1 view .LVU209 7198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 630 .loc 1 7198 8 is_stmt 0 view .LVU210 631 008c 0FB9 cbnz r7, .L54 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 145 7201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 632 .loc 1 7201 7 is_stmt 1 view .LVU211 633 008e 2022 movs r2, #32 634 0090 DA61 str r2, [r3, #28] 635 .L54: 7204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 636 .loc 1 7204 5 view .LVU212 7204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 637 .loc 1 7204 16 is_stmt 0 view .LVU213 638 0092 46F00406 orr r6, r6, #4 639 .LVL62: 7206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 640 .loc 1 7206 5 is_stmt 1 view .LVU214 7206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 641 .loc 1 7206 12 is_stmt 0 view .LVU215 642 0096 0125 movs r5, #1 643 .LVL63: 644 .L44: 7210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 645 .loc 1 7210 3 is_stmt 1 view .LVU216 7210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 646 .loc 1 7210 16 is_stmt 0 view .LVU217 647 0098 2268 ldr r2, [r4] 7210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 648 .loc 1 7210 10 view .LVU218 649 009a 9369 ldr r3, [r2, #24] 650 .LVL64: 7214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 651 .loc 1 7214 3 is_stmt 1 view .LVU219 7214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 652 .loc 1 7214 6 is_stmt 0 view .LVU220 653 009c 13F4807F tst r3, #256 654 00a0 05D0 beq .L55 7216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 655 .loc 1 7216 5 is_stmt 1 view .LVU221 7216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 656 .loc 1 7216 16 is_stmt 0 view .LVU222 657 00a2 46F00106 orr r6, r6, #1 658 .LVL65: 7219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 659 .loc 1 7219 5 is_stmt 1 view .LVU223 660 00a6 4FF48071 mov r1, #256 661 00aa D161 str r1, [r2, #28] 7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 662 .loc 1 7221 5 view .LVU224 663 .LVL66: 7221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 664 .loc 1 7221 12 is_stmt 0 view .LVU225 665 00ac 0125 movs r5, #1 666 .LVL67: 667 .L55: 7225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 668 .loc 1 7225 3 is_stmt 1 view .LVU226 7225:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 669 .loc 1 7225 6 is_stmt 0 view .LVU227 670 00ae 13F4806F tst r3, #1024 671 00b2 06D0 beq .L56 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 146 7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 672 .loc 1 7227 5 is_stmt 1 view .LVU228 7227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 673 .loc 1 7227 16 is_stmt 0 view .LVU229 674 00b4 46F00806 orr r6, r6, #8 675 .LVL68: 7230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 676 .loc 1 7230 5 is_stmt 1 view .LVU230 677 00b8 2268 ldr r2, [r4] 678 00ba 4FF48061 mov r1, #1024 679 00be D161 str r1, [r2, #28] 7232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 680 .loc 1 7232 5 view .LVU231 681 .LVL69: 7232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 682 .loc 1 7232 12 is_stmt 0 view .LVU232 683 00c0 0125 movs r5, #1 684 .LVL70: 685 .L56: 7236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 686 .loc 1 7236 3 is_stmt 1 view .LVU233 7236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 687 .loc 1 7236 6 is_stmt 0 view .LVU234 688 00c2 13F4007F tst r3, #512 689 00c6 24D0 beq .L57 7238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 690 .loc 1 7238 5 is_stmt 1 view .LVU235 7238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 691 .loc 1 7238 16 is_stmt 0 view .LVU236 692 00c8 46F00206 orr r6, r6, #2 693 .LVL71: 7241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 694 .loc 1 7241 5 is_stmt 1 view .LVU237 695 00cc 2368 ldr r3, [r4] 696 .LVL72: 7241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 697 .loc 1 7241 5 is_stmt 0 view .LVU238 698 00ce 4FF40072 mov r2, #512 699 00d2 DA61 str r2, [r3, #28] 7243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 700 .loc 1 7243 5 is_stmt 1 view .LVU239 701 .LVL73: 7246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 702 .loc 1 7246 3 view .LVU240 7243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 703 .loc 1 7243 12 is_stmt 0 view .LVU241 704 00d4 0125 movs r5, #1 705 .LVL74: 706 .L58: 7249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 707 .loc 1 7249 5 is_stmt 1 view .LVU242 708 00d6 2046 mov r0, r4 709 00d8 FFF7FEFF bl I2C_Flush_TXDR 710 .LVL75: 7252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 711 .loc 1 7252 5 view .LVU243 712 00dc 2268 ldr r2, [r4] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 147 713 00de 5368 ldr r3, [r2, #4] 714 00e0 23F0FF73 bic r3, r3, #33423360 715 00e4 23F48B33 bic r3, r3, #71168 716 00e8 23F4FF73 bic r3, r3, #510 717 00ec 23F00103 bic r3, r3, #1 718 00f0 5360 str r3, [r2, #4] 7254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 719 .loc 1 7254 5 view .LVU244 7254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 720 .loc 1 7254 9 is_stmt 0 view .LVU245 721 00f2 636C ldr r3, [r4, #68] 7254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 722 .loc 1 7254 21 view .LVU246 723 00f4 3343 orrs r3, r3, r6 724 00f6 6364 str r3, [r4, #68] 7255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 725 .loc 1 7255 5 is_stmt 1 view .LVU247 7255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 726 .loc 1 7255 17 is_stmt 0 view .LVU248 727 00f8 2023 movs r3, #32 728 00fa 84F84130 strb r3, [r4, #65] 7256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 729 .loc 1 7256 5 is_stmt 1 view .LVU249 7256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 730 .loc 1 7256 16 is_stmt 0 view .LVU250 731 00fe 0023 movs r3, #0 732 0100 84F84230 strb r3, [r4, #66] 7259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 733 .loc 1 7259 5 is_stmt 1 view .LVU251 7259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 734 .loc 1 7259 5 view .LVU252 735 0104 84F84030 strb r3, [r4, #64] 736 .L59: 7259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 737 .loc 1 7259 5 discriminator 1 view .LVU253 7262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 738 .loc 1 7262 3 view .LVU254 7263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 739 .loc 1 7263 1 is_stmt 0 view .LVU255 740 0108 2846 mov r0, r5 741 010a BDE8F081 pop {r4, r5, r6, r7, r8, pc} 742 .LVL76: 743 .L60: 7145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflag = hi2c->Instance->ISR; 744 .loc 1 7145 21 view .LVU256 745 010e 0025 movs r5, #0 746 0110 C2E7 b .L44 747 .LVL77: 748 .L57: 7246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 749 .loc 1 7246 3 is_stmt 1 view .LVU257 7246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 750 .loc 1 7246 6 is_stmt 0 view .LVU258 751 0112 002D cmp r5, #0 752 0114 F8D0 beq .L59 753 0116 DEE7 b .L58 754 .cfi_endproc ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 148 755 .LFE411: 757 .section .text.I2C_WaitOnTXISFlagUntilTimeout,"ax",%progbits 758 .align 1 759 .syntax unified 760 .thumb 761 .thumb_func 763 I2C_WaitOnTXISFlagUntilTimeout: 764 .LVL78: 765 .LFB408: 6989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 766 .loc 1 6989 1 is_stmt 1 view -0 767 .cfi_startproc 768 @ args = 0, pretend = 0, frame = 0 769 @ frame_needed = 0, uses_anonymous_args = 0 6989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXIS) == RESET) 770 .loc 1 6989 1 is_stmt 0 view .LVU260 771 0000 70B5 push {r4, r5, r6, lr} 772 .cfi_def_cfa_offset 16 773 .cfi_offset 4, -16 774 .cfi_offset 5, -12 775 .cfi_offset 6, -8 776 .cfi_offset 14, -4 777 0002 0446 mov r4, r0 778 0004 0D46 mov r5, r1 779 0006 1646 mov r6, r2 6990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 780 .loc 1 6990 3 is_stmt 1 view .LVU261 781 .LVL79: 782 .L66: 6990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 783 .loc 1 6990 50 view .LVU262 6990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 784 .loc 1 6990 10 is_stmt 0 view .LVU263 785 0008 2368 ldr r3, [r4] 786 000a 9B69 ldr r3, [r3, #24] 6990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 787 .loc 1 6990 50 view .LVU264 788 000c 13F0020F tst r3, #2 789 0010 22D1 bne .L71 6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 790 .loc 1 6993 5 is_stmt 1 view .LVU265 6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 791 .loc 1 6993 9 is_stmt 0 view .LVU266 792 0012 3246 mov r2, r6 793 0014 2946 mov r1, r5 794 0016 2046 mov r0, r4 795 0018 FFF7FEFF bl I2C_IsErrorOccurred 796 .LVL80: 6993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 797 .loc 1 6993 8 discriminator 1 view .LVU267 798 001c F0B9 cbnz r0, .L69 6999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 799 .loc 1 6999 5 is_stmt 1 view .LVU268 6999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 800 .loc 1 6999 8 is_stmt 0 view .LVU269 801 001e B5F1FF3F cmp r5, #-1 802 0022 F1D0 beq .L66 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 149 7001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 803 .loc 1 7001 7 is_stmt 1 view .LVU270 7001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 804 .loc 1 7001 13 is_stmt 0 view .LVU271 805 0024 FFF7FEFF bl HAL_GetTick 806 .LVL81: 7001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 807 .loc 1 7001 27 discriminator 1 view .LVU272 808 0028 801B subs r0, r0, r6 7001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 809 .loc 1 7001 10 discriminator 1 view .LVU273 810 002a A842 cmp r0, r5 811 002c 01D8 bhi .L67 7001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 812 .loc 1 7001 51 discriminator 1 view .LVU274 813 002e 002D cmp r5, #0 814 0030 EAD1 bne .L66 815 .L67: 7003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 816 .loc 1 7003 9 is_stmt 1 view .LVU275 7003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 817 .loc 1 7003 14 is_stmt 0 view .LVU276 818 0032 2368 ldr r3, [r4] 819 0034 9B69 ldr r3, [r3, #24] 7003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 820 .loc 1 7003 12 view .LVU277 821 0036 13F0020F tst r3, #2 822 003a E5D1 bne .L66 7005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 823 .loc 1 7005 11 is_stmt 1 view .LVU278 7005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 824 .loc 1 7005 15 is_stmt 0 view .LVU279 825 003c 636C ldr r3, [r4, #68] 7005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 826 .loc 1 7005 27 view .LVU280 827 003e 43F02003 orr r3, r3, #32 828 0042 6364 str r3, [r4, #68] 7006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 829 .loc 1 7006 11 is_stmt 1 view .LVU281 7006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 830 .loc 1 7006 23 is_stmt 0 view .LVU282 831 0044 2023 movs r3, #32 832 0046 84F84130 strb r3, [r4, #65] 7007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 833 .loc 1 7007 11 is_stmt 1 view .LVU283 7007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 834 .loc 1 7007 22 is_stmt 0 view .LVU284 835 004a 0023 movs r3, #0 836 004c 84F84230 strb r3, [r4, #66] 7010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 837 .loc 1 7010 11 is_stmt 1 view .LVU285 7010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 838 .loc 1 7010 11 view .LVU286 839 0050 84F84030 strb r3, [r4, #64] 7010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 840 .loc 1 7010 11 view .LVU287 7012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 150 841 .loc 1 7012 11 view .LVU288 7012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 842 .loc 1 7012 18 is_stmt 0 view .LVU289 843 0054 0120 movs r0, #1 844 0056 00E0 b .L65 845 .L71: 7017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 846 .loc 1 7017 10 view .LVU290 847 0058 0020 movs r0, #0 848 .L65: 7018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 849 .loc 1 7018 1 view .LVU291 850 005a 70BD pop {r4, r5, r6, pc} 851 .LVL82: 852 .L69: 6995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 853 .loc 1 6995 14 view .LVU292 854 005c 0120 movs r0, #1 855 005e FCE7 b .L65 856 .cfi_endproc 857 .LFE408: 859 .section .text.I2C_WaitOnFlagUntilTimeout,"ax",%progbits 860 .align 1 861 .syntax unified 862 .thumb 863 .thumb_func 865 I2C_WaitOnFlagUntilTimeout: 866 .LVL83: 867 .LFB407: 6949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 868 .loc 1 6949 1 is_stmt 1 view -0 869 .cfi_startproc 870 @ args = 4, pretend = 0, frame = 0 871 @ frame_needed = 0, uses_anonymous_args = 0 6949:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, Flag) == Status) 872 .loc 1 6949 1 is_stmt 0 view .LVU294 873 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 874 .cfi_def_cfa_offset 32 875 .cfi_offset 3, -32 876 .cfi_offset 4, -28 877 .cfi_offset 5, -24 878 .cfi_offset 6, -20 879 .cfi_offset 7, -16 880 .cfi_offset 8, -12 881 .cfi_offset 9, -8 882 .cfi_offset 14, -4 883 0004 0546 mov r5, r0 884 0006 8846 mov r8, r1 885 0008 1746 mov r7, r2 886 000a 1E46 mov r6, r3 887 000c DDF82090 ldr r9, [sp, #32] 6950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 888 .loc 1 6950 3 is_stmt 1 view .LVU295 889 .LVL84: 890 .L75: 6950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 891 .loc 1 6950 41 view .LVU296 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 151 6950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 892 .loc 1 6950 10 is_stmt 0 view .LVU297 893 0010 2B68 ldr r3, [r5] 894 0012 9C69 ldr r4, [r3, #24] 895 0014 38EA0404 bics r4, r8, r4 896 0018 0CBF ite eq 897 001a 0123 moveq r3, #1 898 001c 0023 movne r3, #0 6950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 899 .loc 1 6950 41 view .LVU298 900 001e BB42 cmp r3, r7 901 0020 27D1 bne .L80 6953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 902 .loc 1 6953 5 is_stmt 1 view .LVU299 6953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 903 .loc 1 6953 9 is_stmt 0 view .LVU300 904 0022 4A46 mov r2, r9 905 0024 3146 mov r1, r6 906 0026 2846 mov r0, r5 907 0028 FFF7FEFF bl I2C_IsErrorOccurred 908 .LVL85: 6953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 909 .loc 1 6953 8 discriminator 1 view .LVU301 910 002c 20BB cbnz r0, .L78 6959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 911 .loc 1 6959 5 is_stmt 1 view .LVU302 6959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 912 .loc 1 6959 8 is_stmt 0 view .LVU303 913 002e B6F1FF3F cmp r6, #-1 914 0032 EDD0 beq .L75 6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 915 .loc 1 6961 7 is_stmt 1 view .LVU304 6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 916 .loc 1 6961 13 is_stmt 0 view .LVU305 917 0034 FFF7FEFF bl HAL_GetTick 918 .LVL86: 6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 919 .loc 1 6961 27 discriminator 1 view .LVU306 920 0038 A0EB0900 sub r0, r0, r9 6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 921 .loc 1 6961 10 discriminator 1 view .LVU307 922 003c B042 cmp r0, r6 923 003e 01D8 bhi .L76 6961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 924 .loc 1 6961 51 discriminator 1 view .LVU308 925 0040 002E cmp r6, #0 926 0042 E5D1 bne .L75 927 .L76: 6963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 928 .loc 1 6963 9 is_stmt 1 view .LVU309 6963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 929 .loc 1 6963 14 is_stmt 0 view .LVU310 930 0044 2B68 ldr r3, [r5] 931 0046 9B69 ldr r3, [r3, #24] 932 0048 38EA0303 bics r3, r8, r3 933 004c 0CBF ite eq 934 004e 0123 moveq r3, #1 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 152 935 0050 0023 movne r3, #0 6963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 936 .loc 1 6963 12 view .LVU311 937 0052 BB42 cmp r3, r7 938 0054 DCD1 bne .L75 6965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 939 .loc 1 6965 11 is_stmt 1 view .LVU312 6965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 940 .loc 1 6965 15 is_stmt 0 view .LVU313 941 0056 6B6C ldr r3, [r5, #68] 6965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 942 .loc 1 6965 27 view .LVU314 943 0058 43F02003 orr r3, r3, #32 944 005c 6B64 str r3, [r5, #68] 6966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 945 .loc 1 6966 11 is_stmt 1 view .LVU315 6966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 946 .loc 1 6966 23 is_stmt 0 view .LVU316 947 005e 2023 movs r3, #32 948 0060 85F84130 strb r3, [r5, #65] 6967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 949 .loc 1 6967 11 is_stmt 1 view .LVU317 6967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 950 .loc 1 6967 22 is_stmt 0 view .LVU318 951 0064 0023 movs r3, #0 952 0066 85F84230 strb r3, [r5, #66] 6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 953 .loc 1 6970 11 is_stmt 1 view .LVU319 6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 954 .loc 1 6970 11 view .LVU320 955 006a 85F84030 strb r3, [r5, #64] 6970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 956 .loc 1 6970 11 view .LVU321 6971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 957 .loc 1 6971 11 view .LVU322 6971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 958 .loc 1 6971 18 is_stmt 0 view .LVU323 959 006e 0120 movs r0, #1 960 0070 00E0 b .L74 961 .L80: 6976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 962 .loc 1 6976 10 view .LVU324 963 0072 0020 movs r0, #0 964 .L74: 6977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 965 .loc 1 6977 1 view .LVU325 966 0074 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 967 .LVL87: 968 .L78: 6955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 969 .loc 1 6955 14 view .LVU326 970 0078 0120 movs r0, #1 971 007a FBE7 b .L74 972 .cfi_endproc 973 .LFE407: 975 .section .text.I2C_RequestMemoryWrite,"ax",%progbits 976 .align 1 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 153 977 .syntax unified 978 .thumb 979 .thumb_func 981 I2C_RequestMemoryWrite: 982 .LVL88: 983 .LFB390: 5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 984 .loc 1 5794 1 is_stmt 1 view -0 985 .cfi_startproc 986 @ args = 8, pretend = 0, frame = 0 987 @ frame_needed = 0, uses_anonymous_args = 0 5794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_RELOAD_MODE, I2C_GENERATE_START_WRI 988 .loc 1 5794 1 is_stmt 0 view .LVU328 989 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 990 .cfi_def_cfa_offset 24 991 .cfi_offset 4, -24 992 .cfi_offset 5, -20 993 .cfi_offset 6, -16 994 .cfi_offset 7, -12 995 .cfi_offset 8, -8 996 .cfi_offset 14, -4 997 0004 82B0 sub sp, sp, #8 998 .cfi_def_cfa_offset 32 999 0006 0446 mov r4, r0 1000 0008 9046 mov r8, r2 1001 000a 1D46 mov r5, r3 1002 000c 089E ldr r6, [sp, #32] 1003 000e 099F ldr r7, [sp, #36] 5795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1004 .loc 1 5795 3 is_stmt 1 view .LVU329 1005 0010 194B ldr r3, .L90 1006 .LVL89: 5795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1007 .loc 1 5795 3 is_stmt 0 view .LVU330 1008 0012 0093 str r3, [sp] 1009 0014 4FF08073 mov r3, #16777216 1010 0018 EAB2 uxtb r2, r5 1011 .LVL90: 5795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1012 .loc 1 5795 3 view .LVU331 1013 001a FFF7FEFF bl I2C_TransferConfig 1014 .LVL91: 5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1015 .loc 1 5798 3 is_stmt 1 view .LVU332 5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1016 .loc 1 5798 7 is_stmt 0 view .LVU333 1017 001e 3A46 mov r2, r7 1018 0020 3146 mov r1, r6 1019 0022 2046 mov r0, r4 1020 0024 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1021 .LVL92: 5798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1022 .loc 1 5798 6 discriminator 1 view .LVU334 1023 0028 F8B9 cbnz r0, .L85 5804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1024 .loc 1 5804 3 is_stmt 1 view .LVU335 5804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 154 1025 .loc 1 5804 6 is_stmt 0 view .LVU336 1026 002a 012D cmp r5, #1 1027 002c 0ED1 bne .L83 5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1028 .loc 1 5807 5 is_stmt 1 view .LVU337 5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1029 .loc 1 5807 9 is_stmt 0 view .LVU338 1030 002e 2368 ldr r3, [r4] 5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1031 .loc 1 5807 28 view .LVU339 1032 0030 5FFA88F2 uxtb r2, r8 5807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1033 .loc 1 5807 26 view .LVU340 1034 0034 9A62 str r2, [r3, #40] 1035 .L84: 5826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1036 .loc 1 5826 3 is_stmt 1 view .LVU341 5826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1037 .loc 1 5826 7 is_stmt 0 view .LVU342 1038 0036 0097 str r7, [sp] 1039 0038 3346 mov r3, r6 1040 003a 0022 movs r2, #0 1041 003c 8021 movs r1, #128 1042 003e 2046 mov r0, r4 1043 0040 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1044 .LVL93: 5826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1045 .loc 1 5826 6 discriminator 1 view .LVU343 1046 0044 A8B9 cbnz r0, .L89 1047 .L82: 5832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1048 .loc 1 5832 1 view .LVU344 1049 0046 02B0 add sp, sp, #8 1050 .cfi_remember_state 1051 .cfi_def_cfa_offset 24 1052 @ sp needed 1053 0048 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1054 .LVL94: 1055 .L83: 1056 .cfi_restore_state 5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1057 .loc 1 5813 5 is_stmt 1 view .LVU345 5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1058 .loc 1 5813 9 is_stmt 0 view .LVU346 1059 004c 2368 ldr r3, [r4] 5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1060 .loc 1 5813 28 view .LVU347 1061 004e 4FEA1822 lsr r2, r8, #8 5813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1062 .loc 1 5813 26 view .LVU348 1063 0052 9A62 str r2, [r3, #40] 5816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1064 .loc 1 5816 5 is_stmt 1 view .LVU349 5816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1065 .loc 1 5816 9 is_stmt 0 view .LVU350 1066 0054 3A46 mov r2, r7 1067 0056 3146 mov r1, r6 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 155 1068 0058 2046 mov r0, r4 1069 005a FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1070 .LVL95: 5816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1071 .loc 1 5816 8 discriminator 1 view .LVU351 1072 005e 30B9 cbnz r0, .L86 5822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1073 .loc 1 5822 5 is_stmt 1 view .LVU352 5822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1074 .loc 1 5822 9 is_stmt 0 view .LVU353 1075 0060 2368 ldr r3, [r4] 5822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1076 .loc 1 5822 28 view .LVU354 1077 0062 5FFA88F2 uxtb r2, r8 5822:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1078 .loc 1 5822 26 view .LVU355 1079 0066 9A62 str r2, [r3, #40] 1080 0068 E5E7 b .L84 1081 .L85: 5800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1082 .loc 1 5800 12 view .LVU356 1083 006a 0120 movs r0, #1 1084 006c EBE7 b .L82 1085 .L86: 5818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1086 .loc 1 5818 14 view .LVU357 1087 006e 0120 movs r0, #1 1088 0070 E9E7 b .L82 1089 .L89: 5828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1090 .loc 1 5828 12 view .LVU358 1091 0072 0120 movs r0, #1 1092 0074 E7E7 b .L82 1093 .L91: 1094 0076 00BF .align 2 1095 .L90: 1096 0078 00200080 .word -2147475456 1097 .cfi_endproc 1098 .LFE390: 1100 .section .text.I2C_RequestMemoryRead,"ax",%progbits 1101 .align 1 1102 .syntax unified 1103 .thumb 1104 .thumb_func 1106 I2C_RequestMemoryRead: 1107 .LVL96: 1108 .LFB391: 5849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 1109 .loc 1 5849 1 is_stmt 1 view -0 1110 .cfi_startproc 1111 @ args = 8, pretend = 0, frame = 0 1112 @ frame_needed = 0, uses_anonymous_args = 0 5849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)MemAddSize, I2C_SOFTEND_MODE, I2C_GENERATE_START_WR 1113 .loc 1 5849 1 is_stmt 0 view .LVU360 1114 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 1115 .cfi_def_cfa_offset 24 1116 .cfi_offset 4, -24 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 156 1117 .cfi_offset 5, -20 1118 .cfi_offset 6, -16 1119 .cfi_offset 7, -12 1120 .cfi_offset 8, -8 1121 .cfi_offset 14, -4 1122 0004 82B0 sub sp, sp, #8 1123 .cfi_def_cfa_offset 32 1124 0006 0446 mov r4, r0 1125 0008 9046 mov r8, r2 1126 000a 1D46 mov r5, r3 1127 000c 089E ldr r6, [sp, #32] 1128 000e 099F ldr r7, [sp, #36] 5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1129 .loc 1 5850 3 is_stmt 1 view .LVU361 1130 0010 184B ldr r3, .L101 1131 .LVL97: 5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1132 .loc 1 5850 3 is_stmt 0 view .LVU362 1133 0012 0093 str r3, [sp] 1134 0014 0023 movs r3, #0 1135 0016 EAB2 uxtb r2, r5 1136 .LVL98: 5850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1137 .loc 1 5850 3 view .LVU363 1138 0018 FFF7FEFF bl I2C_TransferConfig 1139 .LVL99: 5853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1140 .loc 1 5853 3 is_stmt 1 view .LVU364 5853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1141 .loc 1 5853 7 is_stmt 0 view .LVU365 1142 001c 3A46 mov r2, r7 1143 001e 3146 mov r1, r6 1144 0020 2046 mov r0, r4 1145 0022 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1146 .LVL100: 5853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1147 .loc 1 5853 6 discriminator 1 view .LVU366 1148 0026 F8B9 cbnz r0, .L96 5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1149 .loc 1 5859 3 is_stmt 1 view .LVU367 5859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1150 .loc 1 5859 6 is_stmt 0 view .LVU368 1151 0028 012D cmp r5, #1 1152 002a 0ED1 bne .L94 5862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1153 .loc 1 5862 5 is_stmt 1 view .LVU369 5862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1154 .loc 1 5862 9 is_stmt 0 view .LVU370 1155 002c 2368 ldr r3, [r4] 5862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1156 .loc 1 5862 28 view .LVU371 1157 002e 5FFA88F2 uxtb r2, r8 5862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1158 .loc 1 5862 26 view .LVU372 1159 0032 9A62 str r2, [r3, #40] 1160 .L95: 5881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 157 1161 .loc 1 5881 3 is_stmt 1 view .LVU373 5881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1162 .loc 1 5881 7 is_stmt 0 view .LVU374 1163 0034 0097 str r7, [sp] 1164 0036 3346 mov r3, r6 1165 0038 0022 movs r2, #0 1166 003a 4021 movs r1, #64 1167 003c 2046 mov r0, r4 1168 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1169 .LVL101: 5881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1170 .loc 1 5881 6 discriminator 1 view .LVU375 1171 0042 A8B9 cbnz r0, .L100 1172 .L93: 5887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1173 .loc 1 5887 1 view .LVU376 1174 0044 02B0 add sp, sp, #8 1175 .cfi_remember_state 1176 .cfi_def_cfa_offset 24 1177 @ sp needed 1178 0046 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1179 .LVL102: 1180 .L94: 1181 .cfi_restore_state 5868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1182 .loc 1 5868 5 is_stmt 1 view .LVU377 5868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1183 .loc 1 5868 9 is_stmt 0 view .LVU378 1184 004a 2368 ldr r3, [r4] 5868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1185 .loc 1 5868 28 view .LVU379 1186 004c 4FEA1822 lsr r2, r8, #8 5868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1187 .loc 1 5868 26 view .LVU380 1188 0050 9A62 str r2, [r3, #40] 5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1189 .loc 1 5871 5 is_stmt 1 view .LVU381 5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1190 .loc 1 5871 9 is_stmt 0 view .LVU382 1191 0052 3A46 mov r2, r7 1192 0054 3146 mov r1, r6 1193 0056 2046 mov r0, r4 1194 0058 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 1195 .LVL103: 5871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1196 .loc 1 5871 8 discriminator 1 view .LVU383 1197 005c 30B9 cbnz r0, .L97 5877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1198 .loc 1 5877 5 is_stmt 1 view .LVU384 5877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1199 .loc 1 5877 9 is_stmt 0 view .LVU385 1200 005e 2368 ldr r3, [r4] 5877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1201 .loc 1 5877 28 view .LVU386 1202 0060 5FFA88F2 uxtb r2, r8 5877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1203 .loc 1 5877 26 view .LVU387 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 158 1204 0064 9A62 str r2, [r3, #40] 1205 0066 E5E7 b .L95 1206 .L96: 5855:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1207 .loc 1 5855 12 view .LVU388 1208 0068 0120 movs r0, #1 1209 006a EBE7 b .L93 1210 .L97: 5873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1211 .loc 1 5873 14 view .LVU389 1212 006c 0120 movs r0, #1 1213 006e E9E7 b .L93 1214 .L100: 5883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1215 .loc 1 5883 12 view .LVU390 1216 0070 0120 movs r0, #1 1217 0072 E7E7 b .L93 1218 .L102: 1219 .align 2 1220 .L101: 1221 0074 00200080 .word -2147475456 1222 .cfi_endproc 1223 .LFE391: 1225 .section .text.I2C_WaitOnSTOPFlagUntilTimeout,"ax",%progbits 1226 .align 1 1227 .syntax unified 1228 .thumb 1229 .thumb_func 1231 I2C_WaitOnSTOPFlagUntilTimeout: 1232 .LVL104: 1233 .LFB409: 7030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1234 .loc 1 7030 1 is_stmt 1 view -0 1235 .cfi_startproc 1236 @ args = 0, pretend = 0, frame = 0 1237 @ frame_needed = 0, uses_anonymous_args = 0 7030:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** while (__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) 1238 .loc 1 7030 1 is_stmt 0 view .LVU392 1239 0000 70B5 push {r4, r5, r6, lr} 1240 .cfi_def_cfa_offset 16 1241 .cfi_offset 4, -16 1242 .cfi_offset 5, -12 1243 .cfi_offset 6, -8 1244 .cfi_offset 14, -4 1245 0002 0446 mov r4, r0 1246 0004 0D46 mov r5, r1 1247 0006 1646 mov r6, r2 7031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1248 .loc 1 7031 3 is_stmt 1 view .LVU393 7031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1249 .loc 1 7031 9 is_stmt 0 view .LVU394 1250 0008 04E0 b .L104 1251 .LVL105: 1252 .L106: 7042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1253 .loc 1 7042 7 is_stmt 1 view .LVU395 7042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 159 1254 .loc 1 7042 12 is_stmt 0 view .LVU396 1255 000a 2368 ldr r3, [r4] 1256 000c 9B69 ldr r3, [r3, #24] 7042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1257 .loc 1 7042 10 view .LVU397 1258 000e 13F0200F tst r3, #32 1259 0012 12D0 beq .L110 1260 .L104: 7031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1261 .loc 1 7031 51 is_stmt 1 view .LVU398 7031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1262 .loc 1 7031 10 is_stmt 0 view .LVU399 1263 0014 2368 ldr r3, [r4] 1264 0016 9B69 ldr r3, [r3, #24] 7031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1265 .loc 1 7031 51 view .LVU400 1266 0018 13F0200F tst r3, #32 1267 001c 1BD1 bne .L111 7034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1268 .loc 1 7034 5 is_stmt 1 view .LVU401 7034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1269 .loc 1 7034 9 is_stmt 0 view .LVU402 1270 001e 3246 mov r2, r6 1271 0020 2946 mov r1, r5 1272 0022 2046 mov r0, r4 1273 0024 FFF7FEFF bl I2C_IsErrorOccurred 1274 .LVL106: 7034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1275 .loc 1 7034 8 discriminator 1 view .LVU403 1276 0028 B8B9 cbnz r0, .L108 7040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1277 .loc 1 7040 5 is_stmt 1 view .LVU404 7040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1278 .loc 1 7040 11 is_stmt 0 view .LVU405 1279 002a FFF7FEFF bl HAL_GetTick 1280 .LVL107: 7040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1281 .loc 1 7040 25 discriminator 1 view .LVU406 1282 002e 801B subs r0, r0, r6 7040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1283 .loc 1 7040 8 discriminator 1 view .LVU407 1284 0030 A842 cmp r0, r5 1285 0032 EAD8 bhi .L106 7040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1286 .loc 1 7040 49 discriminator 1 view .LVU408 1287 0034 002D cmp r5, #0 1288 0036 EDD1 bne .L104 1289 0038 E7E7 b .L106 1290 .L110: 7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1291 .loc 1 7044 9 is_stmt 1 view .LVU409 7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1292 .loc 1 7044 13 is_stmt 0 view .LVU410 1293 003a 636C ldr r3, [r4, #68] 7044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1294 .loc 1 7044 25 view .LVU411 1295 003c 43F02003 orr r3, r3, #32 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 160 1296 0040 6364 str r3, [r4, #68] 7045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1297 .loc 1 7045 9 is_stmt 1 view .LVU412 7045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1298 .loc 1 7045 21 is_stmt 0 view .LVU413 1299 0042 2023 movs r3, #32 1300 0044 84F84130 strb r3, [r4, #65] 7046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1301 .loc 1 7046 9 is_stmt 1 view .LVU414 7046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1302 .loc 1 7046 20 is_stmt 0 view .LVU415 1303 0048 0023 movs r3, #0 1304 004a 84F84230 strb r3, [r4, #66] 7049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1305 .loc 1 7049 9 is_stmt 1 view .LVU416 7049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1306 .loc 1 7049 9 view .LVU417 1307 004e 84F84030 strb r3, [r4, #64] 7049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1308 .loc 1 7049 9 view .LVU418 7051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1309 .loc 1 7051 9 view .LVU419 7051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1310 .loc 1 7051 16 is_stmt 0 view .LVU420 1311 0052 0120 movs r0, #1 1312 0054 00E0 b .L105 1313 .L111: 7055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1314 .loc 1 7055 10 view .LVU421 1315 0056 0020 movs r0, #0 1316 .L105: 7056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1317 .loc 1 7056 1 view .LVU422 1318 0058 70BD pop {r4, r5, r6, pc} 1319 .LVL108: 1320 .L108: 7036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1321 .loc 1 7036 14 view .LVU423 1322 005a 0120 movs r0, #1 1323 005c FCE7 b .L105 1324 .cfi_endproc 1325 .LFE409: 1327 .section .text.I2C_WaitOnRXNEFlagUntilTimeout,"ax",%progbits 1328 .align 1 1329 .syntax unified 1330 .thumb 1331 .thumb_func 1333 I2C_WaitOnRXNEFlagUntilTimeout: 1334 .LVL109: 1335 .LFB410: 7068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1336 .loc 1 7068 1 is_stmt 1 view -0 1337 .cfi_startproc 1338 @ args = 0, pretend = 0, frame = 0 1339 @ frame_needed = 0, uses_anonymous_args = 0 7068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef status = HAL_OK; 1340 .loc 1 7068 1 is_stmt 0 view .LVU425 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 161 1341 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 1342 .cfi_def_cfa_offset 24 1343 .cfi_offset 3, -24 1344 .cfi_offset 4, -20 1345 .cfi_offset 5, -16 1346 .cfi_offset 6, -12 1347 .cfi_offset 7, -8 1348 .cfi_offset 14, -4 1349 0002 0446 mov r4, r0 1350 0004 0E46 mov r6, r1 1351 0006 1746 mov r7, r2 7069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1352 .loc 1 7069 3 is_stmt 1 view .LVU426 1353 .LVL110: 7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1354 .loc 1 7071 3 view .LVU427 7069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1355 .loc 1 7069 21 is_stmt 0 view .LVU428 1356 0008 0025 movs r5, #0 7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1357 .loc 1 7071 9 view .LVU429 1358 000a 18E0 b .L113 1359 .LVL111: 1360 .L116: 7113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1361 .loc 1 7113 9 is_stmt 1 view .LVU430 7113:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1362 .loc 1 7113 25 is_stmt 0 view .LVU431 1363 000c 0023 movs r3, #0 1364 000e 6364 str r3, [r4, #68] 1365 .LVL112: 1366 .L115: 7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1367 .loc 1 7118 5 is_stmt 1 view .LVU432 7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1368 .loc 1 7118 12 is_stmt 0 view .LVU433 1369 0010 FFF7FEFF bl HAL_GetTick 1370 .LVL113: 7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1371 .loc 1 7118 26 discriminator 1 view .LVU434 1372 0014 C01B subs r0, r0, r7 7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1373 .loc 1 7118 8 discriminator 1 view .LVU435 1374 0016 B042 cmp r0, r6 1375 0018 00D8 bhi .L117 7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1376 .loc 1 7118 50 discriminator 2 view .LVU436 1377 001a 86B9 cbnz r6, .L113 1378 .L117: 7118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1379 .loc 1 7118 70 discriminator 3 view .LVU437 1380 001c 7DB9 cbnz r5, .L113 7120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1381 .loc 1 7120 7 is_stmt 1 view .LVU438 7120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1382 .loc 1 7120 12 is_stmt 0 view .LVU439 1383 001e 2368 ldr r3, [r4] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 162 1384 0020 9B69 ldr r3, [r3, #24] 7120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1385 .loc 1 7120 10 view .LVU440 1386 0022 13F0040F tst r3, #4 1387 0026 0AD1 bne .L113 7122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1388 .loc 1 7122 9 is_stmt 1 view .LVU441 7122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1389 .loc 1 7122 13 is_stmt 0 view .LVU442 1390 0028 636C ldr r3, [r4, #68] 7122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1391 .loc 1 7122 25 view .LVU443 1392 002a 43F02003 orr r3, r3, #32 1393 002e 6364 str r3, [r4, #68] 7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1394 .loc 1 7123 9 is_stmt 1 view .LVU444 7123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1395 .loc 1 7123 21 is_stmt 0 view .LVU445 1396 0030 2023 movs r3, #32 1397 0032 84F84130 strb r3, [r4, #65] 7126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1398 .loc 1 7126 9 is_stmt 1 view .LVU446 7126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1399 .loc 1 7126 9 view .LVU447 1400 0036 0023 movs r3, #0 1401 0038 84F84030 strb r3, [r4, #64] 7126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1402 .loc 1 7126 9 view .LVU448 7128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1403 .loc 1 7128 9 view .LVU449 1404 .LVL114: 7128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1405 .loc 1 7128 16 is_stmt 0 view .LVU450 1406 003c 0125 movs r5, #1 1407 .LVL115: 1408 .L113: 7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1409 .loc 1 7071 61 is_stmt 1 view .LVU451 7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1410 .loc 1 7071 11 is_stmt 0 view .LVU452 1411 003e 2368 ldr r3, [r4] 1412 0040 9B69 ldr r3, [r3, #24] 7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1413 .loc 1 7071 61 view .LVU453 1414 0042 13F0040F tst r3, #4 1415 0046 2ED1 bne .L119 7071:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1416 .loc 1 7071 61 discriminator 1 view .LVU454 1417 0048 6DBB cbnz r5, .L119 7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1418 .loc 1 7074 5 is_stmt 1 view .LVU455 7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1419 .loc 1 7074 9 is_stmt 0 view .LVU456 1420 004a 3A46 mov r2, r7 1421 004c 3146 mov r1, r6 1422 004e 2046 mov r0, r4 1423 0050 FFF7FEFF bl I2C_IsErrorOccurred ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 163 1424 .LVL116: 7074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1425 .loc 1 7074 8 discriminator 1 view .LVU457 1426 0054 00B1 cbz r0, .L114 7076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1427 .loc 1 7076 14 view .LVU458 1428 0056 0125 movs r5, #1 1429 .LVL117: 1430 .L114: 7080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1431 .loc 1 7080 5 is_stmt 1 view .LVU459 7080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1432 .loc 1 7080 10 is_stmt 0 view .LVU460 1433 0058 2368 ldr r3, [r4] 1434 005a 9A69 ldr r2, [r3, #24] 7080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1435 .loc 1 7080 8 view .LVU461 1436 005c 12F0200F tst r2, #32 1437 0060 D6D0 beq .L115 7080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1438 .loc 1 7080 59 discriminator 1 view .LVU462 1439 0062 002D cmp r5, #0 1440 0064 D4D1 bne .L115 7084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1441 .loc 1 7084 7 is_stmt 1 view .LVU463 7084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1442 .loc 1 7084 12 is_stmt 0 view .LVU464 1443 0066 9A69 ldr r2, [r3, #24] 7088:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1444 .loc 1 7088 9 is_stmt 1 view .LVU465 7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1445 .loc 1 7092 7 view .LVU466 7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1446 .loc 1 7092 11 is_stmt 0 view .LVU467 1447 0068 9A69 ldr r2, [r3, #24] 7092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1448 .loc 1 7092 10 view .LVU468 1449 006a 12F0100F tst r2, #16 1450 006e CDD0 beq .L116 7094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_AF; 1451 .loc 1 7094 9 is_stmt 1 view .LVU469 1452 0070 1022 movs r2, #16 1453 0072 DA61 str r2, [r3, #28] 7095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1454 .loc 1 7095 9 view .LVU470 7095:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1455 .loc 1 7095 25 is_stmt 0 view .LVU471 1456 0074 0423 movs r3, #4 1457 0076 6364 str r3, [r4, #68] 7098:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1458 .loc 1 7098 9 is_stmt 1 view .LVU472 1459 0078 2368 ldr r3, [r4] 1460 007a 2022 movs r2, #32 1461 007c DA61 str r2, [r3, #28] 7101:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1462 .loc 1 7101 9 view .LVU473 1463 007e 2168 ldr r1, [r4] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 164 1464 0080 4B68 ldr r3, [r1, #4] 1465 0082 23F0FF73 bic r3, r3, #33423360 1466 0086 23F48B33 bic r3, r3, #71168 1467 008a 23F4FF73 bic r3, r3, #510 1468 008e 23F00103 bic r3, r3, #1 1469 0092 4B60 str r3, [r1, #4] 7103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1470 .loc 1 7103 9 view .LVU474 7103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1471 .loc 1 7103 21 is_stmt 0 view .LVU475 1472 0094 84F84120 strb r2, [r4, #65] 7104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1473 .loc 1 7104 9 is_stmt 1 view .LVU476 7104:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1474 .loc 1 7104 20 is_stmt 0 view .LVU477 1475 0098 0023 movs r3, #0 1476 009a 84F84230 strb r3, [r4, #66] 7107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1477 .loc 1 7107 9 is_stmt 1 view .LVU478 7107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1478 .loc 1 7107 9 view .LVU479 1479 009e 84F84030 strb r3, [r4, #64] 7107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1480 .loc 1 7107 9 view .LVU480 7109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1481 .loc 1 7109 9 view .LVU481 1482 .LVL118: 7109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1483 .loc 1 7109 16 is_stmt 0 view .LVU482 1484 00a2 0125 movs r5, #1 1485 00a4 B4E7 b .L115 1486 .LVL119: 1487 .L119: 7132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1488 .loc 1 7132 3 is_stmt 1 view .LVU483 7133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1489 .loc 1 7133 1 is_stmt 0 view .LVU484 1490 00a6 2846 mov r0, r5 1491 00a8 F8BD pop {r3, r4, r5, r6, r7, pc} 7133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1492 .loc 1 7133 1 view .LVU485 1493 .cfi_endproc 1494 .LFE410: 1496 .section .text.HAL_I2C_MspInit,"ax",%progbits 1497 .align 1 1498 .weak HAL_I2C_MspInit 1499 .syntax unified 1500 .thumb 1501 .thumb_func 1503 HAL_I2C_MspInit: 1504 .LVL120: 1505 .LFB337: 697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1506 .loc 1 697 1 is_stmt 1 view -0 1507 .cfi_startproc 1508 @ args = 0, pretend = 0, frame = 0 1509 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 165 1510 @ link register save eliminated. 699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1511 .loc 1 699 3 view .LVU487 704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1512 .loc 1 704 1 is_stmt 0 view .LVU488 1513 0000 7047 bx lr 1514 .cfi_endproc 1515 .LFE337: 1517 .section .text.HAL_I2C_Init,"ax",%progbits 1518 .align 1 1519 .global HAL_I2C_Init 1520 .syntax unified 1521 .thumb 1522 .thumb_func 1524 HAL_I2C_Init: 1525 .LVL121: 1526 .LFB335: 536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1527 .loc 1 536 1 is_stmt 1 view -0 1528 .cfi_startproc 1529 @ args = 0, pretend = 0, frame = 0 1530 @ frame_needed = 0, uses_anonymous_args = 0 538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1531 .loc 1 538 3 view .LVU490 538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1532 .loc 1 538 6 is_stmt 0 view .LVU491 1533 0000 0028 cmp r0, #0 1534 0002 5DD0 beq .L131 536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1535 .loc 1 536 1 view .LVU492 1536 0004 10B5 push {r4, lr} 1537 .cfi_def_cfa_offset 8 1538 .cfi_offset 4, -8 1539 .cfi_offset 14, -4 1540 0006 0446 mov r4, r0 544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); 1541 .loc 1 544 3 is_stmt 1 view .LVU493 545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_ADDRESSING_MODE(hi2c->Init.AddressingMode)); 1542 .loc 1 545 3 view .LVU494 546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_DUAL_ADDRESS(hi2c->Init.DualAddressMode)); 1543 .loc 1 546 3 view .LVU495 547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2(hi2c->Init.OwnAddress2)); 1544 .loc 1 547 3 view .LVU496 548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_OWN_ADDRESS2_MASK(hi2c->Init.OwnAddress2Masks)); 1545 .loc 1 548 3 view .LVU497 549:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_GENERAL_CALL(hi2c->Init.GeneralCallMode)); 1546 .loc 1 549 3 view .LVU498 550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** assert_param(IS_I2C_NO_STRETCH(hi2c->Init.NoStretchMode)); 1547 .loc 1 550 3 view .LVU499 551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1548 .loc 1 551 3 view .LVU500 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1549 .loc 1 553 3 view .LVU501 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1550 .loc 1 553 11 is_stmt 0 view .LVU502 1551 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 166 1552 .loc 1 553 6 view .LVU503 1553 000c 002B cmp r3, #0 1554 000e 46D0 beq .L136 1555 .LVL122: 1556 .L126: 584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1557 .loc 1 584 3 is_stmt 1 view .LVU504 584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1558 .loc 1 584 15 is_stmt 0 view .LVU505 1559 0010 2423 movs r3, #36 1560 0012 84F84130 strb r3, [r4, #65] 587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1561 .loc 1 587 3 is_stmt 1 view .LVU506 1562 0016 2268 ldr r2, [r4] 1563 0018 1368 ldr r3, [r2] 1564 001a 23F00103 bic r3, r3, #1 1565 001e 1360 str r3, [r2] 591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1566 .loc 1 591 3 view .LVU507 591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1567 .loc 1 591 39 is_stmt 0 view .LVU508 1568 0020 6368 ldr r3, [r4, #4] 591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1569 .loc 1 591 7 view .LVU509 1570 0022 2268 ldr r2, [r4] 591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1571 .loc 1 591 47 view .LVU510 1572 0024 23F07063 bic r3, r3, #251658240 591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1573 .loc 1 591 27 view .LVU511 1574 0028 1361 str r3, [r2, #16] 595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1575 .loc 1 595 3 is_stmt 1 view .LVU512 595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1576 .loc 1 595 7 is_stmt 0 view .LVU513 1577 002a 2268 ldr r2, [r4] 595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1578 .loc 1 595 17 view .LVU514 1579 002c 9368 ldr r3, [r2, #8] 595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1580 .loc 1 595 24 view .LVU515 1581 002e 23F40043 bic r3, r3, #32768 1582 0032 9360 str r3, [r2, #8] 598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1583 .loc 1 598 3 is_stmt 1 view .LVU516 598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1584 .loc 1 598 17 is_stmt 0 view .LVU517 1585 0034 E368 ldr r3, [r4, #12] 598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1586 .loc 1 598 6 view .LVU518 1587 0036 012B cmp r3, #1 1588 0038 36D0 beq .L137 604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1589 .loc 1 604 5 is_stmt 1 view .LVU519 604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1590 .loc 1 604 75 is_stmt 0 view .LVU520 1591 003a A368 ldr r3, [r4, #8] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 167 604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1592 .loc 1 604 9 view .LVU521 1593 003c 2268 ldr r2, [r4] 604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1594 .loc 1 604 63 view .LVU522 1595 003e 43F40443 orr r3, r3, #33792 604:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1596 .loc 1 604 26 view .LVU523 1597 0042 9360 str r3, [r2, #8] 1598 .L128: 609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1599 .loc 1 609 3 is_stmt 1 view .LVU524 609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1600 .loc 1 609 17 is_stmt 0 view .LVU525 1601 0044 E368 ldr r3, [r4, #12] 609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1602 .loc 1 609 6 view .LVU526 1603 0046 022B cmp r3, #2 1604 0048 34D0 beq .L138 616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1605 .loc 1 616 5 is_stmt 1 view .LVU527 1606 004a 2268 ldr r2, [r4] 1607 004c 5368 ldr r3, [r2, #4] 1608 004e 23F40063 bic r3, r3, #2048 1609 0052 5360 str r3, [r2, #4] 1610 .L130: 619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1611 .loc 1 619 3 view .LVU528 619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1612 .loc 1 619 7 is_stmt 0 view .LVU529 1613 0054 2268 ldr r2, [r4] 619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1614 .loc 1 619 17 view .LVU530 1615 0056 5168 ldr r1, [r2, #4] 619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1616 .loc 1 619 23 view .LVU531 1617 0058 1A4B ldr r3, .L139 1618 005a 0B43 orrs r3, r3, r1 1619 005c 5360 str r3, [r2, #4] 623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1620 .loc 1 623 3 is_stmt 1 view .LVU532 623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1621 .loc 1 623 7 is_stmt 0 view .LVU533 1622 005e 2268 ldr r2, [r4] 623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1623 .loc 1 623 17 view .LVU534 1624 0060 D368 ldr r3, [r2, #12] 623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1625 .loc 1 623 24 view .LVU535 1626 0062 23F40043 bic r3, r3, #32768 1627 0066 D360 str r3, [r2, #12] 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1628 .loc 1 626 3 is_stmt 1 view .LVU536 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1629 .loc 1 626 37 is_stmt 0 view .LVU537 1630 0068 2369 ldr r3, [r4, #16] 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 168 1631 .loc 1 626 66 view .LVU538 1632 006a 6269 ldr r2, [r4, #20] 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1633 .loc 1 626 54 view .LVU539 1634 006c 1343 orrs r3, r3, r2 627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1635 .loc 1 627 38 view .LVU540 1636 006e A169 ldr r1, [r4, #24] 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1637 .loc 1 626 7 view .LVU541 1638 0070 2268 ldr r2, [r4] 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1639 .loc 1 626 79 view .LVU542 1640 0072 43EA0123 orr r3, r3, r1, lsl #8 626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (hi2c->Init.OwnAddress2Masks << 8)); 1641 .loc 1 626 24 view .LVU543 1642 0076 D360 str r3, [r2, #12] 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1643 .loc 1 631 3 is_stmt 1 view .LVU544 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1644 .loc 1 631 36 is_stmt 0 view .LVU545 1645 0078 E369 ldr r3, [r4, #28] 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1646 .loc 1 631 65 view .LVU546 1647 007a 216A ldr r1, [r4, #32] 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1648 .loc 1 631 7 view .LVU547 1649 007c 2268 ldr r2, [r4] 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1650 .loc 1 631 53 view .LVU548 1651 007e 0B43 orrs r3, r3, r1 631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1652 .loc 1 631 23 view .LVU549 1653 0080 1360 str r3, [r2] 634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1654 .loc 1 634 3 is_stmt 1 view .LVU550 1655 0082 2268 ldr r2, [r4] 1656 0084 1368 ldr r3, [r2] 1657 0086 43F00103 orr r3, r3, #1 1658 008a 1360 str r3, [r2] 636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1659 .loc 1 636 3 view .LVU551 636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 1660 .loc 1 636 19 is_stmt 0 view .LVU552 1661 008c 0020 movs r0, #0 1662 008e 6064 str r0, [r4, #68] 637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1663 .loc 1 637 3 is_stmt 1 view .LVU553 637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1664 .loc 1 637 15 is_stmt 0 view .LVU554 1665 0090 2023 movs r3, #32 1666 0092 84F84130 strb r3, [r4, #65] 638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1667 .loc 1 638 3 is_stmt 1 view .LVU555 638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1668 .loc 1 638 23 is_stmt 0 view .LVU556 1669 0096 2063 str r0, [r4, #48] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 169 639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1670 .loc 1 639 3 is_stmt 1 view .LVU557 639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1671 .loc 1 639 14 is_stmt 0 view .LVU558 1672 0098 84F84200 strb r0, [r4, #66] 641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1673 .loc 1 641 3 is_stmt 1 view .LVU559 642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1674 .loc 1 642 1 is_stmt 0 view .LVU560 1675 009c 10BD pop {r4, pc} 1676 .LVL123: 1677 .L136: 556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1678 .loc 1 556 5 is_stmt 1 view .LVU561 556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1679 .loc 1 556 16 is_stmt 0 view .LVU562 1680 009e 80F84030 strb r3, [r0, #64] 580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1681 .loc 1 580 5 is_stmt 1 view .LVU563 1682 00a2 FFF7FEFF bl HAL_I2C_MspInit 1683 .LVL124: 580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1684 .loc 1 580 5 is_stmt 0 view .LVU564 1685 00a6 B3E7 b .L126 1686 .L137: 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1687 .loc 1 600 5 is_stmt 1 view .LVU565 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1688 .loc 1 600 56 is_stmt 0 view .LVU566 1689 00a8 A368 ldr r3, [r4, #8] 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1690 .loc 1 600 9 view .LVU567 1691 00aa 2268 ldr r2, [r4] 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1692 .loc 1 600 44 view .LVU568 1693 00ac 43F40043 orr r3, r3, #32768 600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1694 .loc 1 600 26 view .LVU569 1695 00b0 9360 str r3, [r2, #8] 1696 00b2 C7E7 b .L128 1697 .L138: 611:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1698 .loc 1 611 5 is_stmt 1 view .LVU570 1699 00b4 2268 ldr r2, [r4] 1700 00b6 5368 ldr r3, [r2, #4] 1701 00b8 43F40063 orr r3, r3, #2048 1702 00bc 5360 str r3, [r2, #4] 1703 00be C9E7 b .L130 1704 .LVL125: 1705 .L131: 1706 .cfi_def_cfa_offset 0 1707 .cfi_restore 4 1708 .cfi_restore 14 540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1709 .loc 1 540 12 is_stmt 0 view .LVU571 1710 00c0 0120 movs r0, #1 1711 .LVL126: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 170 642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1712 .loc 1 642 1 view .LVU572 1713 00c2 7047 bx lr 1714 .L140: 1715 .align 2 1716 .L139: 1717 00c4 00800002 .word 33587200 1718 .cfi_endproc 1719 .LFE335: 1721 .section .text.HAL_I2C_MspDeInit,"ax",%progbits 1722 .align 1 1723 .weak HAL_I2C_MspDeInit 1724 .syntax unified 1725 .thumb 1726 .thumb_func 1728 HAL_I2C_MspDeInit: 1729 .LVL127: 1730 .LFB338: 713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 1731 .loc 1 713 1 is_stmt 1 view -0 1732 .cfi_startproc 1733 @ args = 0, pretend = 0, frame = 0 1734 @ frame_needed = 0, uses_anonymous_args = 0 1735 @ link register save eliminated. 715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1736 .loc 1 715 3 view .LVU574 720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1737 .loc 1 720 1 is_stmt 0 view .LVU575 1738 0000 7047 bx lr 1739 .cfi_endproc 1740 .LFE338: 1742 .section .text.HAL_I2C_DeInit,"ax",%progbits 1743 .align 1 1744 .global HAL_I2C_DeInit 1745 .syntax unified 1746 .thumb 1747 .thumb_func 1749 HAL_I2C_DeInit: 1750 .LVL128: 1751 .LFB336: 651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1752 .loc 1 651 1 is_stmt 1 view -0 1753 .cfi_startproc 1754 @ args = 0, pretend = 0, frame = 0 1755 @ frame_needed = 0, uses_anonymous_args = 0 653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1756 .loc 1 653 3 view .LVU577 653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1757 .loc 1 653 6 is_stmt 0 view .LVU578 1758 0000 A8B1 cbz r0, .L144 651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the I2C handle allocation */ 1759 .loc 1 651 1 view .LVU579 1760 0002 10B5 push {r4, lr} 1761 .cfi_def_cfa_offset 8 1762 .cfi_offset 4, -8 1763 .cfi_offset 14, -4 1764 0004 0446 mov r4, r0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 171 659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1765 .loc 1 659 3 is_stmt 1 view .LVU580 661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1766 .loc 1 661 3 view .LVU581 661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1767 .loc 1 661 15 is_stmt 0 view .LVU582 1768 0006 2423 movs r3, #36 1769 0008 80F84130 strb r3, [r0, #65] 664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1770 .loc 1 664 3 is_stmt 1 view .LVU583 1771 000c 0268 ldr r2, [r0] 1772 000e 1368 ldr r3, [r2] 1773 0010 23F00103 bic r3, r3, #1 1774 0014 1360 str r3, [r2] 676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 1775 .loc 1 676 3 view .LVU584 1776 0016 FFF7FEFF bl HAL_I2C_MspDeInit 1777 .LVL129: 679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1778 .loc 1 679 3 view .LVU585 679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_RESET; 1779 .loc 1 679 19 is_stmt 0 view .LVU586 1780 001a 0020 movs r0, #0 1781 001c 6064 str r0, [r4, #68] 680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1782 .loc 1 680 3 is_stmt 1 view .LVU587 680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 1783 .loc 1 680 15 is_stmt 0 view .LVU588 1784 001e 84F84100 strb r0, [r4, #65] 681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1785 .loc 1 681 3 is_stmt 1 view .LVU589 681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 1786 .loc 1 681 23 is_stmt 0 view .LVU590 1787 0022 2063 str r0, [r4, #48] 682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1788 .loc 1 682 3 is_stmt 1 view .LVU591 682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1789 .loc 1 682 14 is_stmt 0 view .LVU592 1790 0024 84F84200 strb r0, [r4, #66] 685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1791 .loc 1 685 3 is_stmt 1 view .LVU593 685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1792 .loc 1 685 3 view .LVU594 1793 0028 84F84000 strb r0, [r4, #64] 685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1794 .loc 1 685 3 view .LVU595 687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1795 .loc 1 687 3 view .LVU596 688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1796 .loc 1 688 1 is_stmt 0 view .LVU597 1797 002c 10BD pop {r4, pc} 1798 .LVL130: 1799 .L144: 1800 .cfi_def_cfa_offset 0 1801 .cfi_restore 4 1802 .cfi_restore 14 655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 172 1803 .loc 1 655 12 view .LVU598 1804 002e 0120 movs r0, #1 1805 .LVL131: 688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1806 .loc 1 688 1 view .LVU599 1807 0030 7047 bx lr 1808 .cfi_endproc 1809 .LFE336: 1811 .section .text.HAL_I2C_Master_Transmit,"ax",%progbits 1812 .align 1 1813 .global HAL_I2C_Master_Transmit 1814 .syntax unified 1815 .thumb 1816 .thumb_func 1818 HAL_I2C_Master_Transmit: 1819 .LVL132: 1820 .LFB339: 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1821 .loc 1 1121 1 is_stmt 1 view -0 1822 .cfi_startproc 1823 @ args = 4, pretend = 0, frame = 0 1824 @ frame_needed = 0, uses_anonymous_args = 0 1121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 1825 .loc 1 1121 1 is_stmt 0 view .LVU601 1826 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 1827 .cfi_def_cfa_offset 32 1828 .cfi_offset 4, -32 1829 .cfi_offset 5, -28 1830 .cfi_offset 6, -24 1831 .cfi_offset 7, -20 1832 .cfi_offset 8, -16 1833 .cfi_offset 9, -12 1834 .cfi_offset 10, -8 1835 .cfi_offset 14, -4 1836 0004 82B0 sub sp, sp, #8 1837 .cfi_def_cfa_offset 40 1838 0006 0F46 mov r7, r1 1839 0008 0A9E ldr r6, [sp, #40] 1122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 1840 .loc 1 1122 3 is_stmt 1 view .LVU602 1123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1841 .loc 1 1123 3 view .LVU603 1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1842 .loc 1 1125 3 view .LVU604 1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1843 .loc 1 1125 11 is_stmt 0 view .LVU605 1844 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 1845 .LVL133: 1125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1846 .loc 1 1125 6 view .LVU606 1847 000e 2029 cmp r1, #32 1848 0010 40F0B780 bne .L159 1849 0014 0446 mov r4, r0 1850 0016 9146 mov r9, r2 1851 0018 9846 mov r8, r3 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1852 .loc 1 1128 5 is_stmt 1 view .LVU607 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 173 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1853 .loc 1 1128 5 view .LVU608 1854 001a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 1855 .LVL134: 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1856 .loc 1 1128 5 is_stmt 0 view .LVU609 1857 001e 012B cmp r3, #1 1858 0020 00F0B380 beq .L160 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1859 .loc 1 1128 5 is_stmt 1 discriminator 2 view .LVU610 1860 0024 4FF0010A mov r10, #1 1861 0028 80F840A0 strb r10, [r0, #64] 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1862 .loc 1 1128 5 view .LVU611 1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1863 .loc 1 1131 5 view .LVU612 1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1864 .loc 1 1131 17 is_stmt 0 view .LVU613 1865 002c FFF7FEFF bl HAL_GetTick 1866 .LVL135: 1131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1867 .loc 1 1131 17 view .LVU614 1868 0030 0546 mov r5, r0 1869 .LVL136: 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1870 .loc 1 1133 5 is_stmt 1 view .LVU615 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1871 .loc 1 1133 9 is_stmt 0 view .LVU616 1872 0032 0090 str r0, [sp] 1873 0034 1923 movs r3, #25 1874 0036 5246 mov r2, r10 1875 0038 4FF40041 mov r1, #32768 1876 003c 2046 mov r0, r4 1877 .LVL137: 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1878 .loc 1 1133 9 view .LVU617 1879 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 1880 .LVL138: 1133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1881 .loc 1 1133 8 discriminator 1 view .LVU618 1882 0042 0028 cmp r0, #0 1883 0044 40F0A380 bne .L161 1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1884 .loc 1 1138 5 is_stmt 1 view .LVU619 1138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 1885 .loc 1 1138 21 is_stmt 0 view .LVU620 1886 0048 2123 movs r3, #33 1887 004a 84F84130 strb r3, [r4, #65] 1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1888 .loc 1 1139 5 is_stmt 1 view .LVU621 1139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 1889 .loc 1 1139 21 is_stmt 0 view .LVU622 1890 004e 1023 movs r3, #16 1891 0050 84F84230 strb r3, [r4, #66] 1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1892 .loc 1 1140 5 is_stmt 1 view .LVU623 1140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 174 1893 .loc 1 1140 21 is_stmt 0 view .LVU624 1894 0054 0023 movs r3, #0 1895 0056 6364 str r3, [r4, #68] 1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1896 .loc 1 1143 5 is_stmt 1 view .LVU625 1143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 1897 .loc 1 1143 21 is_stmt 0 view .LVU626 1898 0058 C4F82490 str r9, [r4, #36] 1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1899 .loc 1 1144 5 is_stmt 1 view .LVU627 1144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 1900 .loc 1 1144 21 is_stmt 0 view .LVU628 1901 005c A4F82A80 strh r8, [r4, #42] @ movhi 1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1902 .loc 1 1145 5 is_stmt 1 view .LVU629 1145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1903 .loc 1 1145 21 is_stmt 0 view .LVU630 1904 0060 6363 str r3, [r4, #52] 1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1905 .loc 1 1147 5 is_stmt 1 view .LVU631 1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1906 .loc 1 1147 13 is_stmt 0 view .LVU632 1907 0062 638D ldrh r3, [r4, #42] 1908 0064 9BB2 uxth r3, r3 1147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1909 .loc 1 1147 8 view .LVU633 1910 0066 FF2B cmp r3, #255 1911 0068 1ED9 bls .L151 1149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1912 .loc 1 1149 7 is_stmt 1 view .LVU634 1149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 1913 .loc 1 1149 22 is_stmt 0 view .LVU635 1914 006a FF23 movs r3, #255 1915 006c 2385 strh r3, [r4, #40] @ movhi 1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1916 .loc 1 1150 7 is_stmt 1 view .LVU636 1917 .LVL139: 1150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1918 .loc 1 1150 16 is_stmt 0 view .LVU637 1919 006e 4FF08073 mov r3, #16777216 1920 .LVL140: 1921 .L152: 1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1922 .loc 1 1158 5 is_stmt 1 view .LVU638 1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1923 .loc 1 1158 13 is_stmt 0 view .LVU639 1924 0072 228D ldrh r2, [r4, #40] 1158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 1925 .loc 1 1158 8 view .LVU640 1926 0074 EAB1 cbz r2, .L153 1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1927 .loc 1 1162 7 is_stmt 1 view .LVU641 1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1928 .loc 1 1162 11 is_stmt 0 view .LVU642 1929 0076 2268 ldr r2, [r4] 1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1930 .loc 1 1162 30 view .LVU643 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 175 1931 0078 99F80010 ldrb r1, [r9] @ zero_extendqisi2 1162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1932 .loc 1 1162 28 view .LVU644 1933 007c 9162 str r1, [r2, #40] 1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1934 .loc 1 1165 7 is_stmt 1 view .LVU645 1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1935 .loc 1 1165 11 is_stmt 0 view .LVU646 1936 007e 626A ldr r2, [r4, #36] 1165:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1937 .loc 1 1165 21 view .LVU647 1938 0080 0132 adds r2, r2, #1 1939 0082 6262 str r2, [r4, #36] 1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1940 .loc 1 1167 7 is_stmt 1 view .LVU648 1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1941 .loc 1 1167 11 is_stmt 0 view .LVU649 1942 0084 628D ldrh r2, [r4, #42] 1943 0086 92B2 uxth r2, r2 1167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 1944 .loc 1 1167 22 view .LVU650 1945 0088 013A subs r2, r2, #1 1946 008a 92B2 uxth r2, r2 1947 008c 6285 strh r2, [r4, #42] @ movhi 1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1948 .loc 1 1168 7 is_stmt 1 view .LVU651 1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1949 .loc 1 1168 11 is_stmt 0 view .LVU652 1950 008e 228D ldrh r2, [r4, #40] 1168:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 1951 .loc 1 1168 21 view .LVU653 1952 0090 013A subs r2, r2, #1 1953 0092 92B2 uxth r2, r2 1954 0094 2285 strh r2, [r4, #40] @ movhi 1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1955 .loc 1 1172 7 is_stmt 1 view .LVU654 1956 0096 0132 adds r2, r2, #1 1957 0098 4149 ldr r1, .L167 1958 009a 0091 str r1, [sp] 1959 009c D2B2 uxtb r2, r2 1960 009e 3946 mov r1, r7 1961 00a0 2046 mov r0, r4 1962 00a2 FFF7FEFF bl I2C_TransferConfig 1963 .LVL141: 1172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1964 .loc 1 1172 7 is_stmt 0 view .LVU655 1965 00a6 18E0 b .L157 1966 .LVL142: 1967 .L151: 1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1968 .loc 1 1154 7 is_stmt 1 view .LVU656 1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1969 .loc 1 1154 28 is_stmt 0 view .LVU657 1970 00a8 638D ldrh r3, [r4, #42] 1154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 1971 .loc 1 1154 22 view .LVU658 1972 00aa 2385 strh r3, [r4, #40] @ movhi ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 176 1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1973 .loc 1 1155 7 is_stmt 1 view .LVU659 1974 .LVL143: 1155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 1975 .loc 1 1155 16 is_stmt 0 view .LVU660 1976 00ac 4FF00073 mov r3, #33554432 1977 00b0 DFE7 b .L152 1978 .LVL144: 1979 .L153: 1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1980 .loc 1 1179 7 is_stmt 1 view .LVU661 1981 00b2 3B49 ldr r1, .L167 1982 00b4 0091 str r1, [sp] 1983 00b6 D2B2 uxtb r2, r2 1984 00b8 3946 mov r1, r7 1985 00ba 2046 mov r0, r4 1986 00bc FFF7FEFF bl I2C_TransferConfig 1987 .LVL145: 1179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 1988 .loc 1 1179 7 is_stmt 0 view .LVU662 1989 00c0 0BE0 b .L157 1990 .L156: 1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1991 .loc 1 1215 11 is_stmt 1 view .LVU663 1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1992 .loc 1 1215 32 is_stmt 0 view .LVU664 1993 00c2 628D ldrh r2, [r4, #42] 1994 00c4 92B2 uxth r2, r2 1215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 1995 .loc 1 1215 26 view .LVU665 1996 00c6 2285 strh r2, [r4, #40] @ movhi 1216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 1997 .loc 1 1216 11 is_stmt 1 view .LVU666 1998 00c8 0023 movs r3, #0 1999 00ca 0093 str r3, [sp] 2000 00cc 4FF00073 mov r3, #33554432 2001 00d0 D2B2 uxtb r2, r2 2002 00d2 3946 mov r1, r7 2003 00d4 2046 mov r0, r4 2004 00d6 FFF7FEFF bl I2C_TransferConfig 2005 .LVL146: 2006 .L157: 1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2007 .loc 1 1183 28 view .LVU667 1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2008 .loc 1 1183 16 is_stmt 0 view .LVU668 2009 00da 638D ldrh r3, [r4, #42] 2010 00dc 9BB2 uxth r3, r3 1183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2011 .loc 1 1183 28 view .LVU669 2012 00de 002B cmp r3, #0 2013 00e0 33D0 beq .L166 1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2014 .loc 1 1186 7 is_stmt 1 view .LVU670 1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2015 .loc 1 1186 11 is_stmt 0 view .LVU671 2016 00e2 2A46 mov r2, r5 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 177 2017 00e4 3146 mov r1, r6 2018 00e6 2046 mov r0, r4 2019 00e8 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2020 .LVL147: 1186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2021 .loc 1 1186 10 discriminator 1 view .LVU672 2022 00ec 0028 cmp r0, #0 2023 00ee 50D1 bne .L162 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2024 .loc 1 1191 7 is_stmt 1 view .LVU673 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2025 .loc 1 1191 35 is_stmt 0 view .LVU674 2026 00f0 626A ldr r2, [r4, #36] 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2027 .loc 1 1191 11 view .LVU675 2028 00f2 2368 ldr r3, [r4] 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2029 .loc 1 1191 30 view .LVU676 2030 00f4 1278 ldrb r2, [r2] @ zero_extendqisi2 1191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2031 .loc 1 1191 28 view .LVU677 2032 00f6 9A62 str r2, [r3, #40] 1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2033 .loc 1 1194 7 is_stmt 1 view .LVU678 1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2034 .loc 1 1194 11 is_stmt 0 view .LVU679 2035 00f8 636A ldr r3, [r4, #36] 1194:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2036 .loc 1 1194 21 view .LVU680 2037 00fa 0133 adds r3, r3, #1 2038 00fc 6362 str r3, [r4, #36] 1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2039 .loc 1 1196 7 is_stmt 1 view .LVU681 1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2040 .loc 1 1196 11 is_stmt 0 view .LVU682 2041 00fe 638D ldrh r3, [r4, #42] 2042 0100 9BB2 uxth r3, r3 1196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 2043 .loc 1 1196 22 view .LVU683 2044 0102 013B subs r3, r3, #1 2045 0104 9BB2 uxth r3, r3 2046 0106 6385 strh r3, [r4, #42] @ movhi 1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2047 .loc 1 1197 7 is_stmt 1 view .LVU684 1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2048 .loc 1 1197 11 is_stmt 0 view .LVU685 2049 0108 238D ldrh r3, [r4, #40] 1197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2050 .loc 1 1197 21 view .LVU686 2051 010a 013B subs r3, r3, #1 2052 010c 9BB2 uxth r3, r3 2053 010e 2385 strh r3, [r4, #40] @ movhi 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2054 .loc 1 1199 7 is_stmt 1 view .LVU687 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2055 .loc 1 1199 16 is_stmt 0 view .LVU688 2056 0110 628D ldrh r2, [r4, #42] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 178 2057 0112 92B2 uxth r2, r2 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2058 .loc 1 1199 10 view .LVU689 2059 0114 002A cmp r2, #0 2060 0116 E0D0 beq .L157 1199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2061 .loc 1 1199 35 discriminator 1 view .LVU690 2062 0118 002B cmp r3, #0 2063 011a DED1 bne .L157 1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2064 .loc 1 1202 9 is_stmt 1 view .LVU691 1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2065 .loc 1 1202 13 is_stmt 0 view .LVU692 2066 011c 0095 str r5, [sp] 2067 011e 3346 mov r3, r6 2068 0120 0022 movs r2, #0 2069 0122 8021 movs r1, #128 2070 0124 2046 mov r0, r4 2071 0126 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2072 .LVL148: 1202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2073 .loc 1 1202 12 discriminator 1 view .LVU693 2074 012a A0BB cbnz r0, .L163 1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2075 .loc 1 1207 9 is_stmt 1 view .LVU694 1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2076 .loc 1 1207 17 is_stmt 0 view .LVU695 2077 012c 638D ldrh r3, [r4, #42] 2078 012e 9BB2 uxth r3, r3 1207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2079 .loc 1 1207 12 view .LVU696 2080 0130 FF2B cmp r3, #255 2081 0132 C6D9 bls .L156 1209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2082 .loc 1 1209 11 is_stmt 1 view .LVU697 1209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2083 .loc 1 1209 26 is_stmt 0 view .LVU698 2084 0134 FF22 movs r2, #255 2085 0136 2285 strh r2, [r4, #40] @ movhi 1210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2086 .loc 1 1210 11 is_stmt 1 view .LVU699 2087 0138 0023 movs r3, #0 2088 013a 0093 str r3, [sp] 2089 013c 4FF08073 mov r3, #16777216 2090 0140 3946 mov r1, r7 2091 0142 2046 mov r0, r4 2092 0144 FFF7FEFF bl I2C_TransferConfig 2093 .LVL149: 2094 0148 C7E7 b .L157 2095 .L166: 1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2096 .loc 1 1224 5 view .LVU700 1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2097 .loc 1 1224 9 is_stmt 0 view .LVU701 2098 014a 2A46 mov r2, r5 2099 014c 3146 mov r1, r6 2100 014e 2046 mov r0, r4 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 179 2101 0150 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2102 .LVL150: 1224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2103 .loc 1 1224 8 discriminator 1 view .LVU702 2104 0154 08BB cbnz r0, .L164 1230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2105 .loc 1 1230 5 is_stmt 1 view .LVU703 2106 0156 2368 ldr r3, [r4] 2107 0158 2022 movs r2, #32 2108 015a DA61 str r2, [r3, #28] 1233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2109 .loc 1 1233 5 view .LVU704 2110 015c 2168 ldr r1, [r4] 2111 015e 4B68 ldr r3, [r1, #4] 2112 0160 23F0FF73 bic r3, r3, #33423360 2113 0164 23F48B33 bic r3, r3, #71168 2114 0168 23F4FF73 bic r3, r3, #510 2115 016c 23F00103 bic r3, r3, #1 2116 0170 4B60 str r3, [r1, #4] 1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2117 .loc 1 1235 5 view .LVU705 1235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2118 .loc 1 1235 17 is_stmt 0 view .LVU706 2119 0172 84F84120 strb r2, [r4, #65] 1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2120 .loc 1 1236 5 is_stmt 1 view .LVU707 1236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2121 .loc 1 1236 17 is_stmt 0 view .LVU708 2122 0176 0023 movs r3, #0 2123 0178 84F84230 strb r3, [r4, #66] 1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2124 .loc 1 1239 5 is_stmt 1 view .LVU709 1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2125 .loc 1 1239 5 view .LVU710 2126 017c 84F84030 strb r3, [r4, #64] 1239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2127 .loc 1 1239 5 view .LVU711 1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2128 .loc 1 1241 5 view .LVU712 1241:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2129 .loc 1 1241 12 is_stmt 0 view .LVU713 2130 0180 00E0 b .L150 2131 .LVL151: 2132 .L159: 1245:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2133 .loc 1 1245 12 view .LVU714 2134 0182 0220 movs r0, #2 2135 .LVL152: 2136 .L150: 1247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2137 .loc 1 1247 1 view .LVU715 2138 0184 02B0 add sp, sp, #8 2139 .cfi_remember_state 2140 .cfi_def_cfa_offset 32 2141 @ sp needed 2142 0186 BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2143 .LVL153: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 180 2144 .L160: 2145 .cfi_restore_state 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2146 .loc 1 1128 5 discriminator 1 view .LVU716 2147 018a 0220 movs r0, #2 2148 .LVL154: 1128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2149 .loc 1 1128 5 discriminator 1 view .LVU717 2150 018c FAE7 b .L150 2151 .LVL155: 2152 .L161: 1135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2153 .loc 1 1135 14 view .LVU718 2154 018e 0120 movs r0, #1 2155 0190 F8E7 b .L150 2156 .LVL156: 2157 .L162: 1188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2158 .loc 1 1188 16 view .LVU719 2159 0192 0120 movs r0, #1 2160 0194 F6E7 b .L150 2161 .L163: 1204:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2162 .loc 1 1204 18 view .LVU720 2163 0196 0120 movs r0, #1 2164 0198 F4E7 b .L150 2165 .L164: 1226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2166 .loc 1 1226 14 view .LVU721 2167 019a 0120 movs r0, #1 2168 019c F2E7 b .L150 2169 .L168: 2170 019e 00BF .align 2 2171 .L167: 2172 01a0 00200080 .word -2147475456 2173 .cfi_endproc 2174 .LFE339: 2176 .section .text.HAL_I2C_Master_Receive,"ax",%progbits 2177 .align 1 2178 .global HAL_I2C_Master_Receive 2179 .syntax unified 2180 .thumb 2181 .thumb_func 2183 HAL_I2C_Master_Receive: 2184 .LVL157: 2185 .LFB340: 1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2186 .loc 1 1262 1 is_stmt 1 view -0 2187 .cfi_startproc 2188 @ args = 4, pretend = 0, frame = 0 2189 @ frame_needed = 0, uses_anonymous_args = 0 1262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2190 .loc 1 1262 1 is_stmt 0 view .LVU723 2191 0000 2DE9F047 push {r4, r5, r6, r7, r8, r9, r10, lr} 2192 .cfi_def_cfa_offset 32 2193 .cfi_offset 4, -32 2194 .cfi_offset 5, -28 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 181 2195 .cfi_offset 6, -24 2196 .cfi_offset 7, -20 2197 .cfi_offset 8, -16 2198 .cfi_offset 9, -12 2199 .cfi_offset 10, -8 2200 .cfi_offset 14, -4 2201 0004 82B0 sub sp, sp, #8 2202 .cfi_def_cfa_offset 40 2203 0006 0F46 mov r7, r1 2204 0008 0A9E ldr r6, [sp, #40] 1263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2205 .loc 1 1263 3 is_stmt 1 view .LVU724 1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2206 .loc 1 1265 3 view .LVU725 1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2207 .loc 1 1265 11 is_stmt 0 view .LVU726 2208 000a 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 2209 .LVL158: 1265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2210 .loc 1 1265 6 view .LVU727 2211 000e 2029 cmp r1, #32 2212 0010 40F0A280 bne .L177 2213 0014 0446 mov r4, r0 2214 0016 9146 mov r9, r2 2215 0018 9846 mov r8, r3 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2216 .loc 1 1268 5 is_stmt 1 view .LVU728 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2217 .loc 1 1268 5 view .LVU729 2218 001a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2219 .LVL159: 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2220 .loc 1 1268 5 is_stmt 0 view .LVU730 2221 001e 012B cmp r3, #1 2222 0020 00F09E80 beq .L178 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2223 .loc 1 1268 5 is_stmt 1 discriminator 2 view .LVU731 2224 0024 4FF0010A mov r10, #1 2225 0028 80F840A0 strb r10, [r0, #64] 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2226 .loc 1 1268 5 view .LVU732 1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2227 .loc 1 1271 5 view .LVU733 1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2228 .loc 1 1271 17 is_stmt 0 view .LVU734 2229 002c FFF7FEFF bl HAL_GetTick 2230 .LVL160: 1271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2231 .loc 1 1271 17 view .LVU735 2232 0030 0546 mov r5, r0 2233 .LVL161: 1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2234 .loc 1 1273 5 is_stmt 1 view .LVU736 1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2235 .loc 1 1273 9 is_stmt 0 view .LVU737 2236 0032 0090 str r0, [sp] 2237 0034 1923 movs r3, #25 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 182 2238 0036 5246 mov r2, r10 2239 0038 4FF40041 mov r1, #32768 2240 003c 2046 mov r0, r4 2241 .LVL162: 1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2242 .loc 1 1273 9 view .LVU738 2243 003e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2244 .LVL163: 1273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2245 .loc 1 1273 8 discriminator 1 view .LVU739 2246 0042 0028 cmp r0, #0 2247 0044 40F08E80 bne .L179 1278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2248 .loc 1 1278 5 is_stmt 1 view .LVU740 1278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 2249 .loc 1 1278 21 is_stmt 0 view .LVU741 2250 0048 2223 movs r3, #34 2251 004a 84F84130 strb r3, [r4, #65] 1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2252 .loc 1 1279 5 is_stmt 1 view .LVU742 1279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2253 .loc 1 1279 21 is_stmt 0 view .LVU743 2254 004e 1023 movs r3, #16 2255 0050 84F84230 strb r3, [r4, #66] 1280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2256 .loc 1 1280 5 is_stmt 1 view .LVU744 1280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2257 .loc 1 1280 21 is_stmt 0 view .LVU745 2258 0054 0023 movs r3, #0 2259 0056 6364 str r3, [r4, #68] 1283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2260 .loc 1 1283 5 is_stmt 1 view .LVU746 1283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2261 .loc 1 1283 21 is_stmt 0 view .LVU747 2262 0058 C4F82490 str r9, [r4, #36] 1284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2263 .loc 1 1284 5 is_stmt 1 view .LVU748 1284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2264 .loc 1 1284 21 is_stmt 0 view .LVU749 2265 005c A4F82A80 strh r8, [r4, #42] @ movhi 1285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2266 .loc 1 1285 5 is_stmt 1 view .LVU750 1285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2267 .loc 1 1285 21 is_stmt 0 view .LVU751 2268 0060 6363 str r3, [r4, #52] 1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2269 .loc 1 1289 5 is_stmt 1 view .LVU752 1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2270 .loc 1 1289 13 is_stmt 0 view .LVU753 2271 0062 638D ldrh r3, [r4, #42] 2272 0064 9BB2 uxth r3, r3 1289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2273 .loc 1 1289 8 view .LVU754 2274 0066 FF2B cmp r3, #255 2275 0068 0AD9 bls .L171 1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2276 .loc 1 1291 7 is_stmt 1 view .LVU755 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 183 1291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2277 .loc 1 1291 22 is_stmt 0 view .LVU756 2278 006a FF22 movs r2, #255 2279 006c 2285 strh r2, [r4, #40] @ movhi 1292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2280 .loc 1 1292 7 is_stmt 1 view .LVU757 2281 006e 414B ldr r3, .L185 2282 0070 0093 str r3, [sp] 2283 0072 4FF08073 mov r3, #16777216 2284 0076 3946 mov r1, r7 2285 0078 2046 mov r0, r4 2286 007a FFF7FEFF bl I2C_TransferConfig 2287 .LVL164: 2288 007e 18E0 b .L175 2289 .L171: 1297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2290 .loc 1 1297 7 view .LVU758 1297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2291 .loc 1 1297 28 is_stmt 0 view .LVU759 2292 0080 628D ldrh r2, [r4, #42] 2293 0082 92B2 uxth r2, r2 1297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2294 .loc 1 1297 22 view .LVU760 2295 0084 2285 strh r2, [r4, #40] @ movhi 1298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 2296 .loc 1 1298 7 is_stmt 1 view .LVU761 2297 0086 3B4B ldr r3, .L185 2298 0088 0093 str r3, [sp] 2299 008a 4FF00073 mov r3, #33554432 2300 008e D2B2 uxtb r2, r2 2301 0090 3946 mov r1, r7 2302 0092 2046 mov r0, r4 2303 0094 FFF7FEFF bl I2C_TransferConfig 2304 .LVL165: 2305 0098 0BE0 b .L175 2306 .L174: 1335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2307 .loc 1 1335 11 view .LVU762 1335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2308 .loc 1 1335 32 is_stmt 0 view .LVU763 2309 009a 628D ldrh r2, [r4, #42] 2310 009c 92B2 uxth r2, r2 1335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 2311 .loc 1 1335 26 view .LVU764 2312 009e 2285 strh r2, [r4, #40] @ movhi 1336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2313 .loc 1 1336 11 is_stmt 1 view .LVU765 2314 00a0 0023 movs r3, #0 2315 00a2 0093 str r3, [sp] 2316 00a4 4FF00073 mov r3, #33554432 2317 00a8 D2B2 uxtb r2, r2 2318 00aa 3946 mov r1, r7 2319 00ac 2046 mov r0, r4 2320 00ae FFF7FEFF bl I2C_TransferConfig 2321 .LVL166: 2322 .L175: 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 184 2323 .loc 1 1302 28 view .LVU766 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2324 .loc 1 1302 16 is_stmt 0 view .LVU767 2325 00b2 638D ldrh r3, [r4, #42] 2326 00b4 9BB2 uxth r3, r3 1302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2327 .loc 1 1302 28 view .LVU768 2328 00b6 002B cmp r3, #0 2329 00b8 32D0 beq .L184 1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2330 .loc 1 1305 7 is_stmt 1 view .LVU769 1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2331 .loc 1 1305 11 is_stmt 0 view .LVU770 2332 00ba 2A46 mov r2, r5 2333 00bc 3146 mov r1, r6 2334 00be 2046 mov r0, r4 2335 00c0 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 2336 .LVL167: 1305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2337 .loc 1 1305 10 discriminator 1 view .LVU771 2338 00c4 0028 cmp r0, #0 2339 00c6 4FD1 bne .L180 1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2340 .loc 1 1311 7 is_stmt 1 view .LVU772 1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2341 .loc 1 1311 38 is_stmt 0 view .LVU773 2342 00c8 2368 ldr r3, [r4] 1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2343 .loc 1 1311 48 view .LVU774 2344 00ca 5A6A ldr r2, [r3, #36] 1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2345 .loc 1 1311 12 view .LVU775 2346 00cc 636A ldr r3, [r4, #36] 1311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2347 .loc 1 1311 23 view .LVU776 2348 00ce 1A70 strb r2, [r3] 1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2349 .loc 1 1314 7 is_stmt 1 view .LVU777 1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2350 .loc 1 1314 11 is_stmt 0 view .LVU778 2351 00d0 636A ldr r3, [r4, #36] 1314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2352 .loc 1 1314 21 view .LVU779 2353 00d2 0133 adds r3, r3, #1 2354 00d4 6362 str r3, [r4, #36] 1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2355 .loc 1 1316 7 is_stmt 1 view .LVU780 1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2356 .loc 1 1316 11 is_stmt 0 view .LVU781 2357 00d6 228D ldrh r2, [r4, #40] 1316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 2358 .loc 1 1316 21 view .LVU782 2359 00d8 013A subs r2, r2, #1 2360 00da 92B2 uxth r2, r2 2361 00dc 2285 strh r2, [r4, #40] @ movhi 1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2362 .loc 1 1317 7 is_stmt 1 view .LVU783 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 185 1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2363 .loc 1 1317 11 is_stmt 0 view .LVU784 2364 00de 638D ldrh r3, [r4, #42] 2365 00e0 9BB2 uxth r3, r3 1317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2366 .loc 1 1317 22 view .LVU785 2367 00e2 013B subs r3, r3, #1 2368 00e4 9BB2 uxth r3, r3 2369 00e6 6385 strh r3, [r4, #42] @ movhi 1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2370 .loc 1 1319 7 is_stmt 1 view .LVU786 1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2371 .loc 1 1319 16 is_stmt 0 view .LVU787 2372 00e8 638D ldrh r3, [r4, #42] 2373 00ea 9BB2 uxth r3, r3 1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2374 .loc 1 1319 10 view .LVU788 2375 00ec 002B cmp r3, #0 2376 00ee E0D0 beq .L175 1319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2377 .loc 1 1319 35 discriminator 1 view .LVU789 2378 00f0 002A cmp r2, #0 2379 00f2 DED1 bne .L175 1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2380 .loc 1 1322 9 is_stmt 1 view .LVU790 1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2381 .loc 1 1322 13 is_stmt 0 view .LVU791 2382 00f4 0095 str r5, [sp] 2383 00f6 3346 mov r3, r6 2384 00f8 8021 movs r1, #128 2385 00fa 2046 mov r0, r4 2386 00fc FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2387 .LVL168: 1322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2388 .loc 1 1322 12 discriminator 1 view .LVU792 2389 0100 A0BB cbnz r0, .L181 1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2390 .loc 1 1327 9 is_stmt 1 view .LVU793 1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2391 .loc 1 1327 17 is_stmt 0 view .LVU794 2392 0102 638D ldrh r3, [r4, #42] 2393 0104 9BB2 uxth r3, r3 1327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2394 .loc 1 1327 12 view .LVU795 2395 0106 FF2B cmp r3, #255 2396 0108 C7D9 bls .L174 1329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2397 .loc 1 1329 11 is_stmt 1 view .LVU796 1329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 2398 .loc 1 1329 26 is_stmt 0 view .LVU797 2399 010a FF22 movs r2, #255 2400 010c 2285 strh r2, [r4, #40] @ movhi 1330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 2401 .loc 1 1330 11 is_stmt 1 view .LVU798 2402 010e 0023 movs r3, #0 2403 0110 0093 str r3, [sp] 2404 0112 4FF08073 mov r3, #16777216 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 186 2405 0116 3946 mov r1, r7 2406 0118 2046 mov r0, r4 2407 011a FFF7FEFF bl I2C_TransferConfig 2408 .LVL169: 2409 011e C8E7 b .L175 2410 .L184: 1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2411 .loc 1 1344 5 view .LVU799 1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2412 .loc 1 1344 9 is_stmt 0 view .LVU800 2413 0120 2A46 mov r2, r5 2414 0122 3146 mov r1, r6 2415 0124 2046 mov r0, r4 2416 0126 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2417 .LVL170: 1344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2418 .loc 1 1344 8 discriminator 1 view .LVU801 2419 012a 08BB cbnz r0, .L182 1350:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2420 .loc 1 1350 5 is_stmt 1 view .LVU802 2421 012c 2368 ldr r3, [r4] 2422 012e 2022 movs r2, #32 2423 0130 DA61 str r2, [r3, #28] 1353:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2424 .loc 1 1353 5 view .LVU803 2425 0132 2168 ldr r1, [r4] 2426 0134 4B68 ldr r3, [r1, #4] 2427 0136 23F0FF73 bic r3, r3, #33423360 2428 013a 23F48B33 bic r3, r3, #71168 2429 013e 23F4FF73 bic r3, r3, #510 2430 0142 23F00103 bic r3, r3, #1 2431 0146 4B60 str r3, [r1, #4] 1355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2432 .loc 1 1355 5 view .LVU804 1355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2433 .loc 1 1355 17 is_stmt 0 view .LVU805 2434 0148 84F84120 strb r2, [r4, #65] 1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2435 .loc 1 1356 5 is_stmt 1 view .LVU806 1356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2436 .loc 1 1356 17 is_stmt 0 view .LVU807 2437 014c 0023 movs r3, #0 2438 014e 84F84230 strb r3, [r4, #66] 1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2439 .loc 1 1359 5 is_stmt 1 view .LVU808 1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2440 .loc 1 1359 5 view .LVU809 2441 0152 84F84030 strb r3, [r4, #64] 1359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2442 .loc 1 1359 5 view .LVU810 1361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2443 .loc 1 1361 5 view .LVU811 1361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2444 .loc 1 1361 12 is_stmt 0 view .LVU812 2445 0156 00E0 b .L170 2446 .LVL171: 2447 .L177: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 187 1365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2448 .loc 1 1365 12 view .LVU813 2449 0158 0220 movs r0, #2 2450 .LVL172: 2451 .L170: 1367:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2452 .loc 1 1367 1 view .LVU814 2453 015a 02B0 add sp, sp, #8 2454 .cfi_remember_state 2455 .cfi_def_cfa_offset 32 2456 @ sp needed 2457 015c BDE8F087 pop {r4, r5, r6, r7, r8, r9, r10, pc} 2458 .LVL173: 2459 .L178: 2460 .cfi_restore_state 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2461 .loc 1 1268 5 discriminator 1 view .LVU815 2462 0160 0220 movs r0, #2 2463 .LVL174: 1268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2464 .loc 1 1268 5 discriminator 1 view .LVU816 2465 0162 FAE7 b .L170 2466 .LVL175: 2467 .L179: 1275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2468 .loc 1 1275 14 view .LVU817 2469 0164 0120 movs r0, #1 2470 0166 F8E7 b .L170 2471 .L180: 1307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2472 .loc 1 1307 16 view .LVU818 2473 0168 0120 movs r0, #1 2474 016a F6E7 b .L170 2475 .L181: 1324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2476 .loc 1 1324 18 view .LVU819 2477 016c 0120 movs r0, #1 2478 016e F4E7 b .L170 2479 .L182: 1346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2480 .loc 1 1346 14 view .LVU820 2481 0170 0120 movs r0, #1 2482 0172 F2E7 b .L170 2483 .L186: 2484 .align 2 2485 .L185: 2486 0174 00240080 .word -2147474432 2487 .cfi_endproc 2488 .LFE340: 2490 .section .text.HAL_I2C_Slave_Transmit,"ax",%progbits 2491 .align 1 2492 .global HAL_I2C_Slave_Transmit 2493 .syntax unified 2494 .thumb 2495 .thumb_func 2497 HAL_I2C_Slave_Transmit: 2498 .LVL176: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 188 2499 .LFB341: 1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2500 .loc 1 1380 1 is_stmt 1 view -0 2501 .cfi_startproc 2502 @ args = 0, pretend = 0, frame = 0 2503 @ frame_needed = 0, uses_anonymous_args = 0 1380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2504 .loc 1 1380 1 is_stmt 0 view .LVU822 2505 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2506 .cfi_def_cfa_offset 24 2507 .cfi_offset 4, -24 2508 .cfi_offset 5, -20 2509 .cfi_offset 6, -16 2510 .cfi_offset 7, -12 2511 .cfi_offset 8, -8 2512 .cfi_offset 14, -4 2513 0004 82B0 sub sp, sp, #8 2514 .cfi_def_cfa_offset 32 2515 0006 1D46 mov r5, r3 1381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t tmpXferCount; 2516 .loc 1 1381 3 is_stmt 1 view .LVU823 1382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef error; 2517 .loc 1 1382 3 view .LVU824 1383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2518 .loc 1 1383 3 view .LVU825 1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2519 .loc 1 1385 3 view .LVU826 1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2520 .loc 1 1385 11 is_stmt 0 view .LVU827 2521 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2522 .LVL177: 1385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2523 .loc 1 1385 6 view .LVU828 2524 000c 202B cmp r3, #32 2525 000e 40F0E180 bne .L202 2526 0012 0446 mov r4, r0 2527 0014 8846 mov r8, r1 2528 0016 1746 mov r7, r2 1387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2529 .loc 1 1387 5 is_stmt 1 view .LVU829 1387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2530 .loc 1 1387 8 is_stmt 0 view .LVU830 2531 0018 002A cmp r2, #0 2532 001a 18BF it ne 2533 001c 0029 cmpne r1, #0 2534 001e 54D0 beq .L205 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2535 .loc 1 1393 5 is_stmt 1 view .LVU831 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2536 .loc 1 1393 5 view .LVU832 2537 0020 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2538 0024 012B cmp r3, #1 2539 0026 00F0D980 beq .L203 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2540 .loc 1 1393 5 discriminator 2 view .LVU833 2541 002a 0123 movs r3, #1 2542 002c 80F84030 strb r3, [r0, #64] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 189 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2543 .loc 1 1393 5 view .LVU834 1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2544 .loc 1 1396 5 view .LVU835 1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2545 .loc 1 1396 17 is_stmt 0 view .LVU836 2546 0030 FFF7FEFF bl HAL_GetTick 2547 .LVL178: 1396:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2548 .loc 1 1396 17 view .LVU837 2549 0034 0646 mov r6, r0 2550 .LVL179: 1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2551 .loc 1 1398 5 is_stmt 1 view .LVU838 1398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2552 .loc 1 1398 21 is_stmt 0 view .LVU839 2553 0036 2123 movs r3, #33 2554 0038 84F84130 strb r3, [r4, #65] 1399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2555 .loc 1 1399 5 is_stmt 1 view .LVU840 1399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2556 .loc 1 1399 21 is_stmt 0 view .LVU841 2557 003c 2023 movs r3, #32 2558 003e 84F84230 strb r3, [r4, #66] 1400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2559 .loc 1 1400 5 is_stmt 1 view .LVU842 1400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2560 .loc 1 1400 21 is_stmt 0 view .LVU843 2561 0042 0022 movs r2, #0 2562 0044 6264 str r2, [r4, #68] 1403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2563 .loc 1 1403 5 is_stmt 1 view .LVU844 1403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 2564 .loc 1 1403 21 is_stmt 0 view .LVU845 2565 0046 C4F82480 str r8, [r4, #36] 1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2566 .loc 1 1404 5 is_stmt 1 view .LVU846 1404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 2567 .loc 1 1404 21 is_stmt 0 view .LVU847 2568 004a 6785 strh r7, [r4, #42] @ movhi 1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2569 .loc 1 1405 5 is_stmt 1 view .LVU848 1405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2570 .loc 1 1405 21 is_stmt 0 view .LVU849 2571 004c 6263 str r2, [r4, #52] 1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2572 .loc 1 1408 5 is_stmt 1 view .LVU850 1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2573 .loc 1 1408 9 is_stmt 0 view .LVU851 2574 004e 2168 ldr r1, [r4] 1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2575 .loc 1 1408 19 view .LVU852 2576 0050 4B68 ldr r3, [r1, #4] 1408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2577 .loc 1 1408 25 view .LVU853 2578 0052 23F40043 bic r3, r3, #32768 2579 0056 4B60 str r3, [r1, #4] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 190 1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2580 .loc 1 1411 5 is_stmt 1 view .LVU854 1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2581 .loc 1 1411 9 is_stmt 0 view .LVU855 2582 0058 0090 str r0, [sp] 2583 005a 2B46 mov r3, r5 2584 005c 0821 movs r1, #8 2585 005e 2046 mov r0, r4 2586 .LVL180: 1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2587 .loc 1 1411 9 view .LVU856 2588 0060 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2589 .LVL181: 1411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2590 .loc 1 1411 8 discriminator 1 view .LVU857 2591 0064 0028 cmp r0, #0 2592 0066 35D1 bne .L206 1419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2593 .loc 1 1419 5 is_stmt 1 view .LVU858 1419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2594 .loc 1 1419 19 is_stmt 0 view .LVU859 2595 0068 236A ldr r3, [r4, #32] 1419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2596 .loc 1 1419 8 view .LVU860 2597 006a B3F5003F cmp r3, #131072 2598 006e 38D0 beq .L207 2599 .L191: 1432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2600 .loc 1 1432 5 is_stmt 1 view .LVU861 2601 0070 2368 ldr r3, [r4] 2602 0072 0822 movs r2, #8 2603 0074 DA61 str r2, [r3, #28] 1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2604 .loc 1 1435 5 view .LVU862 1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2605 .loc 1 1435 19 is_stmt 0 view .LVU863 2606 0076 E368 ldr r3, [r4, #12] 1435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2607 .loc 1 1435 8 view .LVU864 2608 0078 022B cmp r3, #2 2609 007a 3FD0 beq .L208 2610 .L192: 1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2611 .loc 1 1450 5 is_stmt 1 view .LVU865 1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2612 .loc 1 1450 9 is_stmt 0 view .LVU866 2613 007c 0096 str r6, [sp] 2614 007e 2B46 mov r3, r5 2615 0080 0022 movs r2, #0 2616 0082 4FF48031 mov r1, #65536 2617 0086 2046 mov r0, r4 2618 0088 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2619 .LVL182: 1450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2620 .loc 1 1450 8 discriminator 1 view .LVU867 2621 008c 0028 cmp r0, #0 2622 008e 48D1 bne .L209 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 191 2623 .L194: 1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2624 .loc 1 1457 28 is_stmt 1 view .LVU868 1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2625 .loc 1 1457 16 is_stmt 0 view .LVU869 2626 0090 638D ldrh r3, [r4, #42] 2627 0092 9BB2 uxth r3, r3 1457:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2628 .loc 1 1457 28 view .LVU870 2629 0094 002B cmp r3, #0 2630 0096 52D0 beq .L210 1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2631 .loc 1 1460 7 is_stmt 1 view .LVU871 1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2632 .loc 1 1460 11 is_stmt 0 view .LVU872 2633 0098 3246 mov r2, r6 2634 009a 2946 mov r1, r5 2635 009c 2046 mov r0, r4 2636 009e FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 2637 .LVL183: 1460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2638 .loc 1 1460 10 discriminator 1 view .LVU873 2639 00a2 0028 cmp r0, #0 2640 00a4 44D1 bne .L211 1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2641 .loc 1 1468 7 is_stmt 1 view .LVU874 1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2642 .loc 1 1468 35 is_stmt 0 view .LVU875 2643 00a6 626A ldr r2, [r4, #36] 1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2644 .loc 1 1468 11 view .LVU876 2645 00a8 2368 ldr r3, [r4] 1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2646 .loc 1 1468 30 view .LVU877 2647 00aa 1278 ldrb r2, [r2] @ zero_extendqisi2 1468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2648 .loc 1 1468 28 view .LVU878 2649 00ac 9A62 str r2, [r3, #40] 1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2650 .loc 1 1471 7 is_stmt 1 view .LVU879 1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2651 .loc 1 1471 11 is_stmt 0 view .LVU880 2652 00ae 636A ldr r3, [r4, #36] 1471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2653 .loc 1 1471 21 view .LVU881 2654 00b0 0133 adds r3, r3, #1 2655 00b2 6362 str r3, [r4, #36] 1473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2656 .loc 1 1473 7 is_stmt 1 view .LVU882 1473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2657 .loc 1 1473 11 is_stmt 0 view .LVU883 2658 00b4 B4F82AC0 ldrh ip, [r4, #42] 2659 00b8 1FFA8CFC uxth ip, ip 1473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2660 .loc 1 1473 22 view .LVU884 2661 00bc 0CF1FF3C add ip, ip, #-1 2662 00c0 1FFA8CFC uxth ip, ip ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 192 2663 00c4 A4F82AC0 strh ip, [r4, #42] @ movhi 2664 00c8 E2E7 b .L194 2665 .LVL184: 2666 .L205: 1389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2667 .loc 1 1389 7 is_stmt 1 view .LVU885 1389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2668 .loc 1 1389 23 is_stmt 0 view .LVU886 2669 00ca 4FF40073 mov r3, #512 2670 00ce 4364 str r3, [r0, #68] 1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2671 .loc 1 1390 7 is_stmt 1 view .LVU887 1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2672 .loc 1 1390 15 is_stmt 0 view .LVU888 2673 00d0 0120 movs r0, #1 2674 .LVL185: 1390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2675 .loc 1 1390 15 view .LVU889 2676 00d2 80E0 b .L188 2677 .LVL186: 2678 .L206: 1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2679 .loc 1 1414 7 is_stmt 1 view .LVU890 1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2680 .loc 1 1414 11 is_stmt 0 view .LVU891 2681 00d4 2268 ldr r2, [r4] 1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2682 .loc 1 1414 21 view .LVU892 2683 00d6 5368 ldr r3, [r2, #4] 1414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2684 .loc 1 1414 27 view .LVU893 2685 00d8 43F40043 orr r3, r3, #32768 2686 00dc 5360 str r3, [r2, #4] 1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2687 .loc 1 1415 7 is_stmt 1 view .LVU894 1415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2688 .loc 1 1415 14 is_stmt 0 view .LVU895 2689 00de 0120 movs r0, #1 2690 00e0 79E0 b .L188 2691 .L207: 1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2692 .loc 1 1423 7 is_stmt 1 view .LVU896 1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2693 .loc 1 1423 35 is_stmt 0 view .LVU897 2694 00e2 626A ldr r2, [r4, #36] 1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2695 .loc 1 1423 11 view .LVU898 2696 00e4 2368 ldr r3, [r4] 1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2697 .loc 1 1423 30 view .LVU899 2698 00e6 1278 ldrb r2, [r2] @ zero_extendqisi2 1423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2699 .loc 1 1423 28 view .LVU900 2700 00e8 9A62 str r2, [r3, #40] 1426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2701 .loc 1 1426 7 is_stmt 1 view .LVU901 1426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 193 2702 .loc 1 1426 11 is_stmt 0 view .LVU902 2703 00ea 636A ldr r3, [r4, #36] 1426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2704 .loc 1 1426 21 view .LVU903 2705 00ec 0133 adds r3, r3, #1 2706 00ee 6362 str r3, [r4, #36] 1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2707 .loc 1 1428 7 is_stmt 1 view .LVU904 1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2708 .loc 1 1428 11 is_stmt 0 view .LVU905 2709 00f0 638D ldrh r3, [r4, #42] 2710 00f2 9BB2 uxth r3, r3 1428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2711 .loc 1 1428 22 view .LVU906 2712 00f4 013B subs r3, r3, #1 2713 00f6 9BB2 uxth r3, r3 2714 00f8 6385 strh r3, [r4, #42] @ movhi 2715 00fa B9E7 b .L191 2716 .L208: 1438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2717 .loc 1 1438 7 is_stmt 1 view .LVU907 1438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2718 .loc 1 1438 11 is_stmt 0 view .LVU908 2719 00fc 0096 str r6, [sp] 2720 00fe 2B46 mov r3, r5 2721 0100 0022 movs r2, #0 2722 0102 0821 movs r1, #8 2723 0104 2046 mov r0, r4 2724 0106 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2725 .LVL187: 1438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2726 .loc 1 1438 10 discriminator 1 view .LVU909 2727 010a 18B9 cbnz r0, .L212 1446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2728 .loc 1 1446 7 is_stmt 1 view .LVU910 2729 010c 2368 ldr r3, [r4] 2730 010e 0822 movs r2, #8 2731 0110 DA61 str r2, [r3, #28] 2732 0112 B3E7 b .L192 2733 .L212: 1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2734 .loc 1 1441 9 view .LVU911 1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2735 .loc 1 1441 13 is_stmt 0 view .LVU912 2736 0114 2268 ldr r2, [r4] 1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2737 .loc 1 1441 23 view .LVU913 2738 0116 5368 ldr r3, [r2, #4] 1441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2739 .loc 1 1441 29 view .LVU914 2740 0118 43F40043 orr r3, r3, #32768 2741 011c 5360 str r3, [r2, #4] 1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2742 .loc 1 1442 9 is_stmt 1 view .LVU915 1442:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2743 .loc 1 1442 16 is_stmt 0 view .LVU916 2744 011e 0120 movs r0, #1 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 194 2745 0120 59E0 b .L188 2746 .L209: 1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2747 .loc 1 1453 7 is_stmt 1 view .LVU917 1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2748 .loc 1 1453 11 is_stmt 0 view .LVU918 2749 0122 2268 ldr r2, [r4] 1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2750 .loc 1 1453 21 view .LVU919 2751 0124 5368 ldr r3, [r2, #4] 1453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2752 .loc 1 1453 27 view .LVU920 2753 0126 43F40043 orr r3, r3, #32768 2754 012a 5360 str r3, [r2, #4] 1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2755 .loc 1 1454 7 is_stmt 1 view .LVU921 1454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2756 .loc 1 1454 14 is_stmt 0 view .LVU922 2757 012c 0120 movs r0, #1 2758 012e 52E0 b .L188 2759 .L211: 1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2760 .loc 1 1463 9 is_stmt 1 view .LVU923 1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2761 .loc 1 1463 13 is_stmt 0 view .LVU924 2762 0130 2268 ldr r2, [r4] 1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2763 .loc 1 1463 23 view .LVU925 2764 0132 5368 ldr r3, [r2, #4] 1463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2765 .loc 1 1463 29 view .LVU926 2766 0134 43F40043 orr r3, r3, #32768 2767 0138 5360 str r3, [r2, #4] 1464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2768 .loc 1 1464 9 is_stmt 1 view .LVU927 1464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2769 .loc 1 1464 16 is_stmt 0 view .LVU928 2770 013a 0120 movs r0, #1 2771 013c 4BE0 b .L188 2772 .L210: 1477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2773 .loc 1 1477 5 is_stmt 1 view .LVU929 1477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2774 .loc 1 1477 13 is_stmt 0 view .LVU930 2775 013e 0096 str r6, [sp] 2776 0140 2B46 mov r3, r5 2777 0142 0022 movs r2, #0 2778 0144 1021 movs r1, #16 2779 0146 2046 mov r0, r4 2780 0148 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2781 .LVL188: 1479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2782 .loc 1 1479 5 is_stmt 1 view .LVU931 1479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2783 .loc 1 1479 8 is_stmt 0 view .LVU932 2784 014c E8B1 cbz r0, .L197 1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 195 2785 .loc 1 1485 7 is_stmt 1 view .LVU933 1485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((hi2c->ErrorCode == HAL_I2C_ERROR_AF) && (tmpXferCount == 0U)) 2786 .loc 1 1485 20 is_stmt 0 view .LVU934 2787 014e 638D ldrh r3, [r4, #42] 2788 0150 9BB2 uxth r3, r3 2789 .LVL189: 1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2790 .loc 1 1486 7 is_stmt 1 view .LVU935 1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2791 .loc 1 1486 16 is_stmt 0 view .LVU936 2792 0152 626C ldr r2, [r4, #68] 1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2793 .loc 1 1486 10 view .LVU937 2794 0154 042A cmp r2, #4 2795 0156 11D1 bne .L198 1486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2796 .loc 1 1486 49 discriminator 1 view .LVU938 2797 0158 83B9 cbnz r3, .L198 1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2798 .loc 1 1489 9 is_stmt 1 view .LVU939 1489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2799 .loc 1 1489 25 is_stmt 0 view .LVU940 2800 015a 6364 str r3, [r4, #68] 2801 .LVL190: 2802 .L199: 1520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2803 .loc 1 1520 5 is_stmt 1 view .LVU941 1520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2804 .loc 1 1520 9 is_stmt 0 view .LVU942 2805 015c 0096 str r6, [sp] 2806 015e 2B46 mov r3, r5 2807 0160 0122 movs r2, #1 2808 0162 4FF40041 mov r1, #32768 2809 0166 2046 mov r0, r4 2810 0168 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 2811 .LVL191: 1520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2812 .loc 1 1520 8 discriminator 1 view .LVU943 2813 016c 20B3 cbz r0, .L201 1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2814 .loc 1 1523 7 is_stmt 1 view .LVU944 1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2815 .loc 1 1523 11 is_stmt 0 view .LVU945 2816 016e 2268 ldr r2, [r4] 1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2817 .loc 1 1523 21 view .LVU946 2818 0170 5368 ldr r3, [r2, #4] 1523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2819 .loc 1 1523 27 view .LVU947 2820 0172 43F40043 orr r3, r3, #32768 2821 0176 5360 str r3, [r2, #4] 1524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2822 .loc 1 1524 7 is_stmt 1 view .LVU948 1524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2823 .loc 1 1524 14 is_stmt 0 view .LVU949 2824 0178 0120 movs r0, #1 2825 017a 2CE0 b .L188 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 196 2826 .LVL192: 2827 .L198: 1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2828 .loc 1 1494 9 is_stmt 1 view .LVU950 1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2829 .loc 1 1494 13 is_stmt 0 view .LVU951 2830 017c 2268 ldr r2, [r4] 1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2831 .loc 1 1494 23 view .LVU952 2832 017e 5368 ldr r3, [r2, #4] 2833 .LVL193: 1494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 2834 .loc 1 1494 29 view .LVU953 2835 0180 43F40043 orr r3, r3, #32768 2836 0184 5360 str r3, [r2, #4] 1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2837 .loc 1 1495 9 is_stmt 1 view .LVU954 1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2838 .loc 1 1495 16 is_stmt 0 view .LVU955 2839 0186 0120 movs r0, #1 2840 .LVL194: 1495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2841 .loc 1 1495 16 view .LVU956 2842 0188 25E0 b .L188 2843 .LVL195: 2844 .L197: 1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2845 .loc 1 1501 7 is_stmt 1 view .LVU957 2846 018a 2046 mov r0, r4 2847 .LVL196: 1501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2848 .loc 1 1501 7 is_stmt 0 view .LVU958 2849 018c FFF7FEFF bl I2C_Flush_TXDR 2850 .LVL197: 1504:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2851 .loc 1 1504 7 is_stmt 1 view .LVU959 2852 0190 2368 ldr r3, [r4] 2853 0192 1022 movs r2, #16 2854 0194 DA61 str r2, [r3, #28] 1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2855 .loc 1 1507 7 view .LVU960 1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2856 .loc 1 1507 11 is_stmt 0 view .LVU961 2857 0196 3246 mov r2, r6 2858 0198 2946 mov r1, r5 2859 019a 2046 mov r0, r4 2860 019c FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 2861 .LVL198: 1507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2862 .loc 1 1507 10 discriminator 1 view .LVU962 2863 01a0 18B9 cbnz r0, .L213 1516:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2864 .loc 1 1516 7 is_stmt 1 view .LVU963 2865 01a2 2368 ldr r3, [r4] 2866 01a4 2022 movs r2, #32 2867 01a6 DA61 str r2, [r3, #28] 2868 01a8 D8E7 b .L199 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 197 2869 .L213: 1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2870 .loc 1 1510 9 view .LVU964 1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2871 .loc 1 1510 13 is_stmt 0 view .LVU965 2872 01aa 2268 ldr r2, [r4] 1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2873 .loc 1 1510 23 view .LVU966 2874 01ac 5368 ldr r3, [r2, #4] 1510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2875 .loc 1 1510 29 view .LVU967 2876 01ae 43F40043 orr r3, r3, #32768 2877 01b2 5360 str r3, [r2, #4] 1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2878 .loc 1 1512 9 is_stmt 1 view .LVU968 1512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2879 .loc 1 1512 16 is_stmt 0 view .LVU969 2880 01b4 0120 movs r0, #1 2881 01b6 0EE0 b .L188 2882 .L201: 1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2883 .loc 1 1528 5 is_stmt 1 view .LVU970 1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2884 .loc 1 1528 9 is_stmt 0 view .LVU971 2885 01b8 2268 ldr r2, [r4] 1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2886 .loc 1 1528 19 view .LVU972 2887 01ba 5368 ldr r3, [r2, #4] 1528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2888 .loc 1 1528 25 view .LVU973 2889 01bc 43F40043 orr r3, r3, #32768 2890 01c0 5360 str r3, [r2, #4] 1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2891 .loc 1 1530 5 is_stmt 1 view .LVU974 1530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 2892 .loc 1 1530 17 is_stmt 0 view .LVU975 2893 01c2 2023 movs r3, #32 2894 01c4 84F84130 strb r3, [r4, #65] 1531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2895 .loc 1 1531 5 is_stmt 1 view .LVU976 1531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2896 .loc 1 1531 17 is_stmt 0 view .LVU977 2897 01c8 0023 movs r3, #0 2898 01ca 84F84230 strb r3, [r4, #66] 1534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2899 .loc 1 1534 5 is_stmt 1 view .LVU978 1534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2900 .loc 1 1534 5 view .LVU979 2901 01ce 84F84030 strb r3, [r4, #64] 1534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2902 .loc 1 1534 5 view .LVU980 1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2903 .loc 1 1536 5 view .LVU981 1536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2904 .loc 1 1536 12 is_stmt 0 view .LVU982 2905 01d2 00E0 b .L188 2906 .LVL199: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 198 2907 .L202: 1540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 2908 .loc 1 1540 12 view .LVU983 2909 01d4 0220 movs r0, #2 2910 .LVL200: 2911 .L188: 1542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2912 .loc 1 1542 1 view .LVU984 2913 01d6 02B0 add sp, sp, #8 2914 .cfi_remember_state 2915 .cfi_def_cfa_offset 24 2916 @ sp needed 2917 01d8 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 2918 .LVL201: 2919 .L203: 2920 .cfi_restore_state 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2921 .loc 1 1393 5 discriminator 1 view .LVU985 2922 01dc 0220 movs r0, #2 2923 .LVL202: 1393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2924 .loc 1 1393 5 discriminator 1 view .LVU986 2925 01de FAE7 b .L188 2926 .cfi_endproc 2927 .LFE341: 2929 .section .text.HAL_I2C_Slave_Receive,"ax",%progbits 2930 .align 1 2931 .global HAL_I2C_Slave_Receive 2932 .syntax unified 2933 .thumb 2934 .thumb_func 2936 HAL_I2C_Slave_Receive: 2937 .LVL203: 2938 .LFB342: 1555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2939 .loc 1 1555 1 is_stmt 1 view -0 2940 .cfi_startproc 2941 @ args = 0, pretend = 0, frame = 0 2942 @ frame_needed = 0, uses_anonymous_args = 0 1555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 2943 .loc 1 1555 1 is_stmt 0 view .LVU988 2944 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 2945 .cfi_def_cfa_offset 24 2946 .cfi_offset 4, -24 2947 .cfi_offset 5, -20 2948 .cfi_offset 6, -16 2949 .cfi_offset 7, -12 2950 .cfi_offset 8, -8 2951 .cfi_offset 14, -4 2952 0004 82B0 sub sp, sp, #8 2953 .cfi_def_cfa_offset 32 2954 0006 1D46 mov r5, r3 1556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2955 .loc 1 1556 3 is_stmt 1 view .LVU989 1558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2956 .loc 1 1558 3 view .LVU990 1558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 199 2957 .loc 1 1558 11 is_stmt 0 view .LVU991 2958 0008 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2959 .LVL204: 1558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2960 .loc 1 1558 6 view .LVU992 2961 000c 202B cmp r3, #32 2962 000e 40F0B280 bne .L224 2963 0012 0446 mov r4, r0 2964 0014 8846 mov r8, r1 2965 0016 1746 mov r7, r2 1560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2966 .loc 1 1560 5 is_stmt 1 view .LVU993 1560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 2967 .loc 1 1560 8 is_stmt 0 view .LVU994 2968 0018 002A cmp r2, #0 2969 001a 18BF it ne 2970 001c 0029 cmpne r1, #0 2971 001e 2BD0 beq .L227 1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2972 .loc 1 1566 5 is_stmt 1 view .LVU995 1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2973 .loc 1 1566 5 view .LVU996 2974 0020 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 2975 0024 012B cmp r3, #1 2976 0026 00F0AA80 beq .L225 1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2977 .loc 1 1566 5 discriminator 2 view .LVU997 2978 002a 0123 movs r3, #1 2979 002c 80F84030 strb r3, [r0, #64] 1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2980 .loc 1 1566 5 view .LVU998 1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2981 .loc 1 1569 5 view .LVU999 1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2982 .loc 1 1569 17 is_stmt 0 view .LVU1000 2983 0030 FFF7FEFF bl HAL_GetTick 2984 .LVL205: 1569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2985 .loc 1 1569 17 view .LVU1001 2986 0034 0646 mov r6, r0 2987 .LVL206: 1571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2988 .loc 1 1571 5 is_stmt 1 view .LVU1002 1571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 2989 .loc 1 1571 21 is_stmt 0 view .LVU1003 2990 0036 2223 movs r3, #34 2991 0038 84F84130 strb r3, [r4, #65] 1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2992 .loc 1 1572 5 is_stmt 1 view .LVU1004 1572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 2993 .loc 1 1572 21 is_stmt 0 view .LVU1005 2994 003c 2023 movs r3, #32 2995 003e 84F84230 strb r3, [r4, #66] 1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2996 .loc 1 1573 5 is_stmt 1 view .LVU1006 1573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 2997 .loc 1 1573 21 is_stmt 0 view .LVU1007 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 200 2998 0042 0022 movs r2, #0 2999 0044 6264 str r2, [r4, #68] 1576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3000 .loc 1 1576 5 is_stmt 1 view .LVU1008 1576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3001 .loc 1 1576 21 is_stmt 0 view .LVU1009 3002 0046 C4F82480 str r8, [r4, #36] 1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3003 .loc 1 1577 5 is_stmt 1 view .LVU1010 1577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3004 .loc 1 1577 21 is_stmt 0 view .LVU1011 3005 004a 6785 strh r7, [r4, #42] @ movhi 1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 3006 .loc 1 1578 5 is_stmt 1 view .LVU1012 1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 3007 .loc 1 1578 26 is_stmt 0 view .LVU1013 3008 004c 638D ldrh r3, [r4, #42] 1578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 3009 .loc 1 1578 20 view .LVU1014 3010 004e 2385 strh r3, [r4, #40] @ movhi 1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3011 .loc 1 1579 5 is_stmt 1 view .LVU1015 1579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3012 .loc 1 1579 21 is_stmt 0 view .LVU1016 3013 0050 6263 str r2, [r4, #52] 1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3014 .loc 1 1582 5 is_stmt 1 view .LVU1017 1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3015 .loc 1 1582 9 is_stmt 0 view .LVU1018 3016 0052 2168 ldr r1, [r4] 1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3017 .loc 1 1582 19 view .LVU1019 3018 0054 4B68 ldr r3, [r1, #4] 1582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3019 .loc 1 1582 25 view .LVU1020 3020 0056 23F40043 bic r3, r3, #32768 3021 005a 4B60 str r3, [r1, #4] 1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3022 .loc 1 1585 5 is_stmt 1 view .LVU1021 1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3023 .loc 1 1585 9 is_stmt 0 view .LVU1022 3024 005c 0090 str r0, [sp] 3025 005e 2B46 mov r3, r5 3026 0060 0821 movs r1, #8 3027 0062 2046 mov r0, r4 3028 .LVL207: 1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3029 .loc 1 1585 9 view .LVU1023 3030 0064 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3031 .LVL208: 1585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3032 .loc 1 1585 8 discriminator 1 view .LVU1024 3033 0068 58B1 cbz r0, .L217 1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3034 .loc 1 1588 7 is_stmt 1 view .LVU1025 1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3035 .loc 1 1588 11 is_stmt 0 view .LVU1026 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 201 3036 006a 2268 ldr r2, [r4] 1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3037 .loc 1 1588 21 view .LVU1027 3038 006c 5368 ldr r3, [r2, #4] 1588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3039 .loc 1 1588 27 view .LVU1028 3040 006e 43F40043 orr r3, r3, #32768 3041 0072 5360 str r3, [r2, #4] 1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3042 .loc 1 1589 7 is_stmt 1 view .LVU1029 1589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3043 .loc 1 1589 14 is_stmt 0 view .LVU1030 3044 0074 0120 movs r0, #1 3045 0076 7FE0 b .L215 3046 .LVL209: 3047 .L227: 1562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3048 .loc 1 1562 7 is_stmt 1 view .LVU1031 1562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3049 .loc 1 1562 23 is_stmt 0 view .LVU1032 3050 0078 4FF40073 mov r3, #512 3051 007c 4364 str r3, [r0, #68] 1563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3052 .loc 1 1563 7 is_stmt 1 view .LVU1033 1563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3053 .loc 1 1563 15 is_stmt 0 view .LVU1034 3054 007e 0120 movs r0, #1 3055 .LVL210: 1563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3056 .loc 1 1563 15 view .LVU1035 3057 0080 7AE0 b .L215 3058 .LVL211: 3059 .L217: 1593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3060 .loc 1 1593 5 is_stmt 1 view .LVU1036 3061 0082 2368 ldr r3, [r4] 3062 0084 0822 movs r2, #8 3063 0086 DA61 str r2, [r3, #28] 1596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3064 .loc 1 1596 5 view .LVU1037 1596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3065 .loc 1 1596 9 is_stmt 0 view .LVU1038 3066 0088 0096 str r6, [sp] 3067 008a 2B46 mov r3, r5 3068 008c 0122 movs r2, #1 3069 008e 4FF48031 mov r1, #65536 3070 0092 2046 mov r0, r4 3071 0094 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3072 .LVL212: 1596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3073 .loc 1 1596 8 discriminator 1 view .LVU1039 3074 0098 F0B9 cbnz r0, .L228 3075 .L218: 1603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3076 .loc 1 1603 28 is_stmt 1 view .LVU1040 1603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3077 .loc 1 1603 16 is_stmt 0 view .LVU1041 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 202 3078 009a 638D ldrh r3, [r4, #42] 3079 009c 9BB2 uxth r3, r3 1603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3080 .loc 1 1603 28 view .LVU1042 3081 009e 002B cmp r3, #0 3082 00a0 3BD0 beq .L229 1606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3083 .loc 1 1606 7 is_stmt 1 view .LVU1043 1606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3084 .loc 1 1606 11 is_stmt 0 view .LVU1044 3085 00a2 3246 mov r2, r6 3086 00a4 2946 mov r1, r5 3087 00a6 2046 mov r0, r4 3088 00a8 FFF7FEFF bl I2C_WaitOnRXNEFlagUntilTimeout 3089 .LVL213: 1606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3090 .loc 1 1606 10 discriminator 1 view .LVU1045 3091 00ac D8B9 cbnz r0, .L230 1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3092 .loc 1 1628 7 is_stmt 1 view .LVU1046 1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3093 .loc 1 1628 38 is_stmt 0 view .LVU1047 3094 00ae 2368 ldr r3, [r4] 1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3095 .loc 1 1628 48 view .LVU1048 3096 00b0 5A6A ldr r2, [r3, #36] 1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3097 .loc 1 1628 12 view .LVU1049 3098 00b2 636A ldr r3, [r4, #36] 1628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3099 .loc 1 1628 23 view .LVU1050 3100 00b4 1A70 strb r2, [r3] 1631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3101 .loc 1 1631 7 is_stmt 1 view .LVU1051 1631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3102 .loc 1 1631 11 is_stmt 0 view .LVU1052 3103 00b6 636A ldr r3, [r4, #36] 1631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3104 .loc 1 1631 21 view .LVU1053 3105 00b8 0133 adds r3, r3, #1 3106 00ba 6362 str r3, [r4, #36] 1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3107 .loc 1 1633 7 is_stmt 1 view .LVU1054 1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3108 .loc 1 1633 11 is_stmt 0 view .LVU1055 3109 00bc B4F82AC0 ldrh ip, [r4, #42] 3110 00c0 1FFA8CFC uxth ip, ip 1633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3111 .loc 1 1633 22 view .LVU1056 3112 00c4 0CF1FF3C add ip, ip, #-1 3113 00c8 1FFA8CFC uxth ip, ip 3114 00cc A4F82AC0 strh ip, [r4, #42] @ movhi 1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3115 .loc 1 1634 7 is_stmt 1 view .LVU1057 1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3116 .loc 1 1634 11 is_stmt 0 view .LVU1058 3117 00d0 238D ldrh r3, [r4, #40] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 203 1634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3118 .loc 1 1634 21 view .LVU1059 3119 00d2 013B subs r3, r3, #1 3120 00d4 2385 strh r3, [r4, #40] @ movhi 3121 00d6 E0E7 b .L218 3122 .L228: 1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3123 .loc 1 1599 7 is_stmt 1 view .LVU1060 1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3124 .loc 1 1599 11 is_stmt 0 view .LVU1061 3125 00d8 2268 ldr r2, [r4] 1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3126 .loc 1 1599 21 view .LVU1062 3127 00da 5368 ldr r3, [r2, #4] 1599:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3128 .loc 1 1599 27 view .LVU1063 3129 00dc 43F40043 orr r3, r3, #32768 3130 00e0 5360 str r3, [r2, #4] 1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3131 .loc 1 1600 7 is_stmt 1 view .LVU1064 1600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3132 .loc 1 1600 14 is_stmt 0 view .LVU1065 3133 00e2 0120 movs r0, #1 3134 00e4 48E0 b .L215 3135 .L230: 1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3136 .loc 1 1609 9 is_stmt 1 view .LVU1066 1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3137 .loc 1 1609 13 is_stmt 0 view .LVU1067 3138 00e6 2268 ldr r2, [r4] 1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3139 .loc 1 1609 23 view .LVU1068 3140 00e8 5368 ldr r3, [r2, #4] 1609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3141 .loc 1 1609 29 view .LVU1069 3142 00ea 43F40043 orr r3, r3, #32768 3143 00ee 5360 str r3, [r2, #4] 1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3144 .loc 1 1612 9 is_stmt 1 view .LVU1070 1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3145 .loc 1 1612 13 is_stmt 0 view .LVU1071 3146 00f0 2368 ldr r3, [r4] 3147 00f2 9A69 ldr r2, [r3, #24] 1612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3148 .loc 1 1612 12 view .LVU1072 3149 00f4 12F0040F tst r2, #4 3150 00f8 0DD0 beq .L220 1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3151 .loc 1 1615 11 is_stmt 1 view .LVU1073 1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3152 .loc 1 1615 52 is_stmt 0 view .LVU1074 3153 00fa 5A6A ldr r2, [r3, #36] 1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3154 .loc 1 1615 16 view .LVU1075 3155 00fc 636A ldr r3, [r4, #36] 1615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3156 .loc 1 1615 27 view .LVU1076 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 204 3157 00fe 1A70 strb r2, [r3] 1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3158 .loc 1 1618 11 is_stmt 1 view .LVU1077 1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3159 .loc 1 1618 15 is_stmt 0 view .LVU1078 3160 0100 636A ldr r3, [r4, #36] 1618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3161 .loc 1 1618 25 view .LVU1079 3162 0102 0133 adds r3, r3, #1 3163 0104 6362 str r3, [r4, #36] 1620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3164 .loc 1 1620 11 is_stmt 1 view .LVU1080 1620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3165 .loc 1 1620 15 is_stmt 0 view .LVU1081 3166 0106 638D ldrh r3, [r4, #42] 3167 0108 9BB2 uxth r3, r3 1620:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3168 .loc 1 1620 26 view .LVU1082 3169 010a 013B subs r3, r3, #1 3170 010c 9BB2 uxth r3, r3 3171 010e 6385 strh r3, [r4, #42] @ movhi 1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3172 .loc 1 1621 11 is_stmt 1 view .LVU1083 1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3173 .loc 1 1621 15 is_stmt 0 view .LVU1084 3174 0110 238D ldrh r3, [r4, #40] 1621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3175 .loc 1 1621 25 view .LVU1085 3176 0112 013B subs r3, r3, #1 3177 0114 2385 strh r3, [r4, #40] @ movhi 3178 .L220: 1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3179 .loc 1 1624 9 is_stmt 1 view .LVU1086 1624:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3180 .loc 1 1624 16 is_stmt 0 view .LVU1087 3181 0116 0120 movs r0, #1 3182 0118 2EE0 b .L215 3183 .L229: 1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3184 .loc 1 1638 5 is_stmt 1 view .LVU1088 1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3185 .loc 1 1638 9 is_stmt 0 view .LVU1089 3186 011a 3246 mov r2, r6 3187 011c 2946 mov r1, r5 3188 011e 2046 mov r0, r4 3189 0120 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 3190 .LVL214: 1638:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3191 .loc 1 1638 8 discriminator 1 view .LVU1090 3192 0124 30B1 cbz r0, .L222 1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3193 .loc 1 1641 7 is_stmt 1 view .LVU1091 1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3194 .loc 1 1641 11 is_stmt 0 view .LVU1092 3195 0126 2268 ldr r2, [r4] 1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3196 .loc 1 1641 21 view .LVU1093 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 205 3197 0128 5368 ldr r3, [r2, #4] 1641:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3198 .loc 1 1641 27 view .LVU1094 3199 012a 43F40043 orr r3, r3, #32768 3200 012e 5360 str r3, [r2, #4] 1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3201 .loc 1 1642 7 is_stmt 1 view .LVU1095 1642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3202 .loc 1 1642 14 is_stmt 0 view .LVU1096 3203 0130 0120 movs r0, #1 3204 0132 21E0 b .L215 3205 .L222: 1646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3206 .loc 1 1646 5 is_stmt 1 view .LVU1097 3207 0134 2368 ldr r3, [r4] 3208 0136 2022 movs r2, #32 3209 0138 DA61 str r2, [r3, #28] 1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3210 .loc 1 1649 5 view .LVU1098 1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3211 .loc 1 1649 9 is_stmt 0 view .LVU1099 3212 013a 0096 str r6, [sp] 3213 013c 2B46 mov r3, r5 3214 013e 0122 movs r2, #1 3215 0140 4FF40041 mov r1, #32768 3216 0144 2046 mov r0, r4 3217 0146 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 3218 .LVL215: 1649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3219 .loc 1 1649 8 discriminator 1 view .LVU1100 3220 014a 30B1 cbz r0, .L223 1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3221 .loc 1 1652 7 is_stmt 1 view .LVU1101 1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3222 .loc 1 1652 11 is_stmt 0 view .LVU1102 3223 014c 2268 ldr r2, [r4] 1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3224 .loc 1 1652 21 view .LVU1103 3225 014e 5368 ldr r3, [r2, #4] 1652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 3226 .loc 1 1652 27 view .LVU1104 3227 0150 43F40043 orr r3, r3, #32768 3228 0154 5360 str r3, [r2, #4] 1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3229 .loc 1 1653 7 is_stmt 1 view .LVU1105 1653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3230 .loc 1 1653 14 is_stmt 0 view .LVU1106 3231 0156 0120 movs r0, #1 3232 0158 0EE0 b .L215 3233 .L223: 1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3234 .loc 1 1657 5 is_stmt 1 view .LVU1107 1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3235 .loc 1 1657 9 is_stmt 0 view .LVU1108 3236 015a 2268 ldr r2, [r4] 1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3237 .loc 1 1657 19 view .LVU1109 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 206 3238 015c 5368 ldr r3, [r2, #4] 1657:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3239 .loc 1 1657 25 view .LVU1110 3240 015e 43F40043 orr r3, r3, #32768 3241 0162 5360 str r3, [r2, #4] 1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3242 .loc 1 1659 5 is_stmt 1 view .LVU1111 1659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 3243 .loc 1 1659 17 is_stmt 0 view .LVU1112 3244 0164 2023 movs r3, #32 3245 0166 84F84130 strb r3, [r4, #65] 1660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3246 .loc 1 1660 5 is_stmt 1 view .LVU1113 1660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3247 .loc 1 1660 17 is_stmt 0 view .LVU1114 3248 016a 0023 movs r3, #0 3249 016c 84F84230 strb r3, [r4, #66] 1663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3250 .loc 1 1663 5 is_stmt 1 view .LVU1115 1663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3251 .loc 1 1663 5 view .LVU1116 3252 0170 84F84030 strb r3, [r4, #64] 1663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3253 .loc 1 1663 5 view .LVU1117 1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3254 .loc 1 1665 5 view .LVU1118 1665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3255 .loc 1 1665 12 is_stmt 0 view .LVU1119 3256 0174 00E0 b .L215 3257 .LVL216: 3258 .L224: 1669:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3259 .loc 1 1669 12 view .LVU1120 3260 0176 0220 movs r0, #2 3261 .LVL217: 3262 .L215: 1671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3263 .loc 1 1671 1 view .LVU1121 3264 0178 02B0 add sp, sp, #8 3265 .cfi_remember_state 3266 .cfi_def_cfa_offset 24 3267 @ sp needed 3268 017a BDE8F081 pop {r4, r5, r6, r7, r8, pc} 3269 .LVL218: 3270 .L225: 3271 .cfi_restore_state 1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3272 .loc 1 1566 5 discriminator 1 view .LVU1122 3273 017e 0220 movs r0, #2 3274 .LVL219: 1566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3275 .loc 1 1566 5 discriminator 1 view .LVU1123 3276 0180 FAE7 b .L215 3277 .cfi_endproc 3278 .LFE342: 3280 .section .text.HAL_I2C_Master_Transmit_IT,"ax",%progbits 3281 .align 1 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 207 3282 .global HAL_I2C_Master_Transmit_IT 3283 .syntax unified 3284 .thumb 3285 .thumb_func 3287 HAL_I2C_Master_Transmit_IT: 3288 .LVL220: 3289 .LFB343: 1685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3290 .loc 1 1685 1 is_stmt 1 view -0 3291 .cfi_startproc 3292 @ args = 0, pretend = 0, frame = 0 3293 @ frame_needed = 0, uses_anonymous_args = 0 1685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3294 .loc 1 1685 1 is_stmt 0 view .LVU1125 3295 0000 30B5 push {r4, r5, lr} 3296 .cfi_def_cfa_offset 12 3297 .cfi_offset 4, -12 3298 .cfi_offset 5, -8 3299 .cfi_offset 14, -4 3300 0002 83B0 sub sp, sp, #12 3301 .cfi_def_cfa_offset 24 3302 0004 0446 mov r4, r0 1686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3303 .loc 1 1686 3 is_stmt 1 view .LVU1126 1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3304 .loc 1 1688 3 view .LVU1127 1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3305 .loc 1 1688 11 is_stmt 0 view .LVU1128 3306 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3307 .LVL221: 1688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3308 .loc 1 1688 6 view .LVU1129 3309 000a 2028 cmp r0, #32 3310 000c 4ED1 bne .L237 1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3311 .loc 1 1690 5 is_stmt 1 view .LVU1130 1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3312 .loc 1 1690 9 is_stmt 0 view .LVU1131 3313 000e 2068 ldr r0, [r4] 3314 0010 8569 ldr r5, [r0, #24] 1690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3315 .loc 1 1690 8 view .LVU1132 3316 0012 15F4004F tst r5, #32768 3317 0016 4BD1 bne .L238 1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3318 .loc 1 1696 5 is_stmt 1 view .LVU1133 1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3319 .loc 1 1696 5 view .LVU1134 3320 0018 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2 3321 001c 012D cmp r5, #1 3322 001e 49D0 beq .L239 1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3323 .loc 1 1696 5 discriminator 2 view .LVU1135 3324 0020 0125 movs r5, #1 3325 0022 84F84050 strb r5, [r4, #64] 1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3326 .loc 1 1696 5 view .LVU1136 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 208 1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3327 .loc 1 1698 5 view .LVU1137 1698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3328 .loc 1 1698 23 is_stmt 0 view .LVU1138 3329 0026 2125 movs r5, #33 3330 0028 84F84150 strb r5, [r4, #65] 1699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3331 .loc 1 1699 5 is_stmt 1 view .LVU1139 1699:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3332 .loc 1 1699 23 is_stmt 0 view .LVU1140 3333 002c 1025 movs r5, #16 3334 002e 84F84250 strb r5, [r4, #66] 1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3335 .loc 1 1700 5 is_stmt 1 view .LVU1141 1700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3336 .loc 1 1700 23 is_stmt 0 view .LVU1142 3337 0032 0025 movs r5, #0 3338 0034 6564 str r5, [r4, #68] 1703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3339 .loc 1 1703 5 is_stmt 1 view .LVU1143 1703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3340 .loc 1 1703 23 is_stmt 0 view .LVU1144 3341 0036 6262 str r2, [r4, #36] 1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3342 .loc 1 1704 5 is_stmt 1 view .LVU1145 1704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3343 .loc 1 1704 23 is_stmt 0 view .LVU1146 3344 0038 6385 strh r3, [r4, #42] @ movhi 1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3345 .loc 1 1705 5 is_stmt 1 view .LVU1147 1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3346 .loc 1 1705 23 is_stmt 0 view .LVU1148 3347 003a 1F4B ldr r3, .L241 3348 .LVL222: 1705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3349 .loc 1 1705 23 view .LVU1149 3350 003c E362 str r3, [r4, #44] 3351 .LVL223: 1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3352 .loc 1 1706 5 is_stmt 1 view .LVU1150 1706:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3353 .loc 1 1706 23 is_stmt 0 view .LVU1151 3354 003e 1F4B ldr r3, .L241+4 3355 0040 6363 str r3, [r4, #52] 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3356 .loc 1 1708 5 is_stmt 1 view .LVU1152 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3357 .loc 1 1708 13 is_stmt 0 view .LVU1153 3358 0042 638D ldrh r3, [r4, #42] 3359 0044 9BB2 uxth r3, r3 1708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3360 .loc 1 1708 8 view .LVU1154 3361 0046 FF2B cmp r3, #255 3362 0048 24D9 bls .L233 1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3363 .loc 1 1710 7 is_stmt 1 view .LVU1155 1710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 209 3364 .loc 1 1710 22 is_stmt 0 view .LVU1156 3365 004a FF23 movs r3, #255 3366 004c 2385 strh r3, [r4, #40] @ movhi 1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3367 .loc 1 1711 7 is_stmt 1 view .LVU1157 3368 .LVL224: 1711:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3369 .loc 1 1711 16 is_stmt 0 view .LVU1158 3370 004e 4FF08073 mov r3, #16777216 3371 .LVL225: 3372 .L234: 1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3373 .loc 1 1721 5 is_stmt 1 view .LVU1159 1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3374 .loc 1 1721 13 is_stmt 0 view .LVU1160 3375 0052 258D ldrh r5, [r4, #40] 1721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3376 .loc 1 1721 8 view .LVU1161 3377 0054 1DB3 cbz r5, .L235 1725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3378 .loc 1 1725 7 is_stmt 1 view .LVU1162 1725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3379 .loc 1 1725 30 is_stmt 0 view .LVU1163 3380 0056 1278 ldrb r2, [r2] @ zero_extendqisi2 3381 .LVL226: 1725:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3382 .loc 1 1725 28 view .LVU1164 3383 0058 8262 str r2, [r0, #40] 3384 .LVL227: 1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3385 .loc 1 1728 7 is_stmt 1 view .LVU1165 1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3386 .loc 1 1728 11 is_stmt 0 view .LVU1166 3387 005a 626A ldr r2, [r4, #36] 1728:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3388 .loc 1 1728 21 view .LVU1167 3389 005c 0132 adds r2, r2, #1 3390 005e 6262 str r2, [r4, #36] 1730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3391 .loc 1 1730 7 is_stmt 1 view .LVU1168 1730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3392 .loc 1 1730 11 is_stmt 0 view .LVU1169 3393 0060 628D ldrh r2, [r4, #42] 3394 0062 92B2 uxth r2, r2 1730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3395 .loc 1 1730 22 view .LVU1170 3396 0064 013A subs r2, r2, #1 3397 0066 92B2 uxth r2, r2 3398 0068 6285 strh r2, [r4, #42] @ movhi 1731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3399 .loc 1 1731 7 is_stmt 1 view .LVU1171 1731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3400 .loc 1 1731 11 is_stmt 0 view .LVU1172 3401 006a 228D ldrh r2, [r4, #40] 1731:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3402 .loc 1 1731 21 view .LVU1173 3403 006c 013A subs r2, r2, #1 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 210 3404 006e 92B2 uxth r2, r2 3405 0070 2285 strh r2, [r4, #40] @ movhi 1733:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3406 .loc 1 1733 7 is_stmt 1 view .LVU1174 3407 0072 0132 adds r2, r2, #1 3408 0074 1248 ldr r0, .L241+8 3409 0076 0090 str r0, [sp] 3410 0078 D2B2 uxtb r2, r2 3411 007a 2046 mov r0, r4 3412 007c FFF7FEFF bl I2C_TransferConfig 3413 .LVL228: 3414 .L236: 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3415 .loc 1 1743 5 view .LVU1175 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3416 .loc 1 1743 5 view .LVU1176 3417 0080 0025 movs r5, #0 3418 0082 84F84050 strb r5, [r4, #64] 1743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3419 .loc 1 1743 5 view .LVU1177 1753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3420 .loc 1 1753 5 view .LVU1178 3421 0086 0121 movs r1, #1 3422 0088 2046 mov r0, r4 3423 008a FFF7FEFF bl I2C_Enable_IRQ 3424 .LVL229: 1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3425 .loc 1 1755 5 view .LVU1179 1755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3426 .loc 1 1755 12 is_stmt 0 view .LVU1180 3427 008e 2846 mov r0, r5 3428 .LVL230: 3429 .L232: 1761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3430 .loc 1 1761 1 view .LVU1181 3431 0090 03B0 add sp, sp, #12 3432 .cfi_remember_state 3433 .cfi_def_cfa_offset 12 3434 @ sp needed 3435 0092 30BD pop {r4, r5, pc} 3436 .LVL231: 3437 .L233: 3438 .cfi_restore_state 1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3439 .loc 1 1715 7 is_stmt 1 view .LVU1182 1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3440 .loc 1 1715 28 is_stmt 0 view .LVU1183 3441 0094 638D ldrh r3, [r4, #42] 1715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3442 .loc 1 1715 22 view .LVU1184 3443 0096 2385 strh r3, [r4, #40] @ movhi 1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3444 .loc 1 1716 7 is_stmt 1 view .LVU1185 3445 .LVL232: 1716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3446 .loc 1 1716 16 is_stmt 0 view .LVU1186 3447 0098 4FF00073 mov r3, #33554432 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 211 3448 009c D9E7 b .L234 3449 .LVL233: 3450 .L235: 1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3451 .loc 1 1738 7 is_stmt 1 view .LVU1187 3452 009e 084A ldr r2, .L241+8 3453 .LVL234: 1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3454 .loc 1 1738 7 is_stmt 0 view .LVU1188 3455 00a0 0092 str r2, [sp] 3456 .LVL235: 1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3457 .loc 1 1738 7 view .LVU1189 3458 00a2 EAB2 uxtb r2, r5 3459 00a4 2046 mov r0, r4 3460 00a6 FFF7FEFF bl I2C_TransferConfig 3461 .LVL236: 1738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 3462 .loc 1 1738 7 view .LVU1190 3463 00aa E9E7 b .L236 3464 .LVL237: 3465 .L237: 1759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3466 .loc 1 1759 12 view .LVU1191 3467 00ac 0220 movs r0, #2 3468 00ae EFE7 b .L232 3469 .L238: 1692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3470 .loc 1 1692 14 view .LVU1192 3471 00b0 0220 movs r0, #2 3472 00b2 EDE7 b .L232 3473 .L239: 1696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3474 .loc 1 1696 5 discriminator 1 view .LVU1193 3475 00b4 0220 movs r0, #2 3476 00b6 EBE7 b .L232 3477 .L242: 3478 .align 2 3479 .L241: 3480 00b8 0000FFFF .word -65536 3481 00bc 00000000 .word I2C_Master_ISR_IT 3482 00c0 00200080 .word -2147475456 3483 .cfi_endproc 3484 .LFE343: 3486 .section .text.HAL_I2C_Master_Receive_IT,"ax",%progbits 3487 .align 1 3488 .global HAL_I2C_Master_Receive_IT 3489 .syntax unified 3490 .thumb 3491 .thumb_func 3493 HAL_I2C_Master_Receive_IT: 3494 .LVL238: 3495 .LFB344: 1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3496 .loc 1 1775 1 is_stmt 1 view -0 3497 .cfi_startproc 3498 @ args = 0, pretend = 0, frame = 0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 212 3499 @ frame_needed = 0, uses_anonymous_args = 0 1775:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3500 .loc 1 1775 1 is_stmt 0 view .LVU1195 3501 0000 30B5 push {r4, r5, lr} 3502 .cfi_def_cfa_offset 12 3503 .cfi_offset 4, -12 3504 .cfi_offset 5, -8 3505 .cfi_offset 14, -4 3506 0002 83B0 sub sp, sp, #12 3507 .cfi_def_cfa_offset 24 3508 0004 0446 mov r4, r0 1776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3509 .loc 1 1776 3 is_stmt 1 view .LVU1196 1778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3510 .loc 1 1778 3 view .LVU1197 1778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3511 .loc 1 1778 11 is_stmt 0 view .LVU1198 3512 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3513 .LVL239: 1778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3514 .loc 1 1778 6 view .LVU1199 3515 000a 2028 cmp r0, #32 3516 000c 37D1 bne .L247 1780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3517 .loc 1 1780 5 is_stmt 1 view .LVU1200 1780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3518 .loc 1 1780 9 is_stmt 0 view .LVU1201 3519 000e 2068 ldr r0, [r4] 3520 0010 8069 ldr r0, [r0, #24] 1780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3521 .loc 1 1780 8 view .LVU1202 3522 0012 10F4004F tst r0, #32768 3523 0016 34D1 bne .L248 1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3524 .loc 1 1786 5 is_stmt 1 view .LVU1203 1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3525 .loc 1 1786 5 view .LVU1204 3526 0018 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 3527 001c 0128 cmp r0, #1 3528 001e 32D0 beq .L249 1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3529 .loc 1 1786 5 discriminator 2 view .LVU1205 3530 0020 0120 movs r0, #1 3531 0022 84F84000 strb r0, [r4, #64] 1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3532 .loc 1 1786 5 view .LVU1206 1788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3533 .loc 1 1788 5 view .LVU1207 1788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3534 .loc 1 1788 23 is_stmt 0 view .LVU1208 3535 0026 2220 movs r0, #34 3536 0028 84F84100 strb r0, [r4, #65] 1789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3537 .loc 1 1789 5 is_stmt 1 view .LVU1209 1789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3538 .loc 1 1789 23 is_stmt 0 view .LVU1210 3539 002c 1020 movs r0, #16 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 213 3540 002e 84F84200 strb r0, [r4, #66] 1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3541 .loc 1 1790 5 is_stmt 1 view .LVU1211 1790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3542 .loc 1 1790 23 is_stmt 0 view .LVU1212 3543 0032 0020 movs r0, #0 3544 0034 6064 str r0, [r4, #68] 1793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3545 .loc 1 1793 5 is_stmt 1 view .LVU1213 1793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3546 .loc 1 1793 23 is_stmt 0 view .LVU1214 3547 0036 6262 str r2, [r4, #36] 1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3548 .loc 1 1794 5 is_stmt 1 view .LVU1215 1794:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3549 .loc 1 1794 23 is_stmt 0 view .LVU1216 3550 0038 6385 strh r3, [r4, #42] @ movhi 1795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3551 .loc 1 1795 5 is_stmt 1 view .LVU1217 1795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3552 .loc 1 1795 23 is_stmt 0 view .LVU1218 3553 003a 144B ldr r3, .L251 3554 .LVL240: 1795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 3555 .loc 1 1795 23 view .LVU1219 3556 003c E362 str r3, [r4, #44] 3557 .LVL241: 1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3558 .loc 1 1796 5 is_stmt 1 view .LVU1220 1796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3559 .loc 1 1796 23 is_stmt 0 view .LVU1221 3560 003e 144B ldr r3, .L251+4 3561 0040 6363 str r3, [r4, #52] 1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3562 .loc 1 1798 5 is_stmt 1 view .LVU1222 1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3563 .loc 1 1798 13 is_stmt 0 view .LVU1223 3564 0042 638D ldrh r3, [r4, #42] 3565 0044 9BB2 uxth r3, r3 1798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3566 .loc 1 1798 8 view .LVU1224 3567 0046 FF2B cmp r3, #255 3568 0048 14D9 bls .L245 1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3569 .loc 1 1800 7 is_stmt 1 view .LVU1225 1800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 3570 .loc 1 1800 22 is_stmt 0 view .LVU1226 3571 004a FF23 movs r3, #255 3572 004c 2385 strh r3, [r4, #40] @ movhi 1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3573 .loc 1 1801 7 is_stmt 1 view .LVU1227 3574 .LVL242: 1801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3575 .loc 1 1801 16 is_stmt 0 view .LVU1228 3576 004e 4FF08073 mov r3, #16777216 3577 .LVL243: 3578 .L246: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 214 1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3579 .loc 1 1811 5 is_stmt 1 view .LVU1229 3580 0052 104A ldr r2, .L251+8 3581 .LVL244: 1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3582 .loc 1 1811 5 is_stmt 0 view .LVU1230 3583 0054 0092 str r2, [sp] 3584 .LVL245: 1811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3585 .loc 1 1811 5 view .LVU1231 3586 0056 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 3587 005a 2046 mov r0, r4 3588 005c FFF7FEFF bl I2C_TransferConfig 3589 .LVL246: 1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3590 .loc 1 1814 5 is_stmt 1 view .LVU1232 1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3591 .loc 1 1814 5 view .LVU1233 3592 0060 0025 movs r5, #0 3593 0062 84F84050 strb r5, [r4, #64] 1814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3594 .loc 1 1814 5 view .LVU1234 1824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3595 .loc 1 1824 5 view .LVU1235 3596 0066 0221 movs r1, #2 3597 0068 2046 mov r0, r4 3598 006a FFF7FEFF bl I2C_Enable_IRQ 3599 .LVL247: 1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3600 .loc 1 1826 5 view .LVU1236 1826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3601 .loc 1 1826 12 is_stmt 0 view .LVU1237 3602 006e 2846 mov r0, r5 3603 .LVL248: 3604 .L244: 1832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3605 .loc 1 1832 1 view .LVU1238 3606 0070 03B0 add sp, sp, #12 3607 .cfi_remember_state 3608 .cfi_def_cfa_offset 12 3609 @ sp needed 3610 0072 30BD pop {r4, r5, pc} 3611 .LVL249: 3612 .L245: 3613 .cfi_restore_state 1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3614 .loc 1 1805 7 is_stmt 1 view .LVU1239 1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3615 .loc 1 1805 28 is_stmt 0 view .LVU1240 3616 0074 638D ldrh r3, [r4, #42] 1805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 3617 .loc 1 1805 22 view .LVU1241 3618 0076 2385 strh r3, [r4, #40] @ movhi 1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3619 .loc 1 1806 7 is_stmt 1 view .LVU1242 3620 .LVL250: 1806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 215 3621 .loc 1 1806 16 is_stmt 0 view .LVU1243 3622 0078 4FF00073 mov r3, #33554432 3623 007c E9E7 b .L246 3624 .LVL251: 3625 .L247: 1830:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3626 .loc 1 1830 12 view .LVU1244 3627 007e 0220 movs r0, #2 3628 0080 F6E7 b .L244 3629 .L248: 1782:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3630 .loc 1 1782 14 view .LVU1245 3631 0082 0220 movs r0, #2 3632 0084 F4E7 b .L244 3633 .L249: 1786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3634 .loc 1 1786 5 discriminator 1 view .LVU1246 3635 0086 0220 movs r0, #2 3636 0088 F2E7 b .L244 3637 .L252: 3638 008a 00BF .align 2 3639 .L251: 3640 008c 0000FFFF .word -65536 3641 0090 00000000 .word I2C_Master_ISR_IT 3642 0094 00240080 .word -2147474432 3643 .cfi_endproc 3644 .LFE344: 3646 .section .text.HAL_I2C_Slave_Transmit_IT,"ax",%progbits 3647 .align 1 3648 .global HAL_I2C_Slave_Transmit_IT 3649 .syntax unified 3650 .thumb 3651 .thumb_func 3653 HAL_I2C_Slave_Transmit_IT: 3654 .LVL252: 3655 .LFB345: 1843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3656 .loc 1 1843 1 is_stmt 1 view -0 3657 .cfi_startproc 3658 @ args = 0, pretend = 0, frame = 0 3659 @ frame_needed = 0, uses_anonymous_args = 0 1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3660 .loc 1 1844 3 view .LVU1248 1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3661 .loc 1 1844 11 is_stmt 0 view .LVU1249 3662 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 1844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3663 .loc 1 1844 6 view .LVU1250 3664 0004 202B cmp r3, #32 3665 0006 38D1 bne .L256 1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3666 .loc 1 1847 5 is_stmt 1 view .LVU1251 1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3667 .loc 1 1847 5 view .LVU1252 3668 0008 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3669 000c 012B cmp r3, #1 3670 000e 36D0 beq .L257 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 216 1843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3671 .loc 1 1843 1 is_stmt 0 view .LVU1253 3672 0010 10B5 push {r4, lr} 3673 .cfi_def_cfa_offset 8 3674 .cfi_offset 4, -8 3675 .cfi_offset 14, -4 1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3676 .loc 1 1847 5 is_stmt 1 discriminator 2 view .LVU1254 3677 0012 0123 movs r3, #1 3678 0014 80F84030 strb r3, [r0, #64] 1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3679 .loc 1 1847 5 view .LVU1255 1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3680 .loc 1 1849 5 view .LVU1256 1849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3681 .loc 1 1849 23 is_stmt 0 view .LVU1257 3682 0018 2123 movs r3, #33 3683 001a 80F84130 strb r3, [r0, #65] 1850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3684 .loc 1 1850 5 is_stmt 1 view .LVU1258 1850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3685 .loc 1 1850 23 is_stmt 0 view .LVU1259 3686 001e 2023 movs r3, #32 3687 0020 80F84230 strb r3, [r0, #66] 1851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3688 .loc 1 1851 5 is_stmt 1 view .LVU1260 1851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3689 .loc 1 1851 23 is_stmt 0 view .LVU1261 3690 0024 0023 movs r3, #0 3691 0026 4364 str r3, [r0, #68] 1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3692 .loc 1 1854 5 is_stmt 1 view .LVU1262 1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3693 .loc 1 1854 9 is_stmt 0 view .LVU1263 3694 0028 0468 ldr r4, [r0] 1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3695 .loc 1 1854 19 view .LVU1264 3696 002a 6368 ldr r3, [r4, #4] 1854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3697 .loc 1 1854 25 view .LVU1265 3698 002c 23F40043 bic r3, r3, #32768 3699 0030 6360 str r3, [r4, #4] 1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3700 .loc 1 1857 5 is_stmt 1 view .LVU1266 1857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3701 .loc 1 1857 23 is_stmt 0 view .LVU1267 3702 0032 4162 str r1, [r0, #36] 1858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3703 .loc 1 1858 5 is_stmt 1 view .LVU1268 1858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3704 .loc 1 1858 23 is_stmt 0 view .LVU1269 3705 0034 4285 strh r2, [r0, #42] @ movhi 1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3706 .loc 1 1859 5 is_stmt 1 view .LVU1270 1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3707 .loc 1 1859 29 is_stmt 0 view .LVU1271 3708 0036 438D ldrh r3, [r0, #42] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 217 1859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3709 .loc 1 1859 23 view .LVU1272 3710 0038 0385 strh r3, [r0, #40] @ movhi 1860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3711 .loc 1 1860 5 is_stmt 1 view .LVU1273 1860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3712 .loc 1 1860 23 is_stmt 0 view .LVU1274 3713 003a 124B ldr r3, .L263 3714 003c C362 str r3, [r0, #44] 1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3715 .loc 1 1861 5 is_stmt 1 view .LVU1275 1861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3716 .loc 1 1861 23 is_stmt 0 view .LVU1276 3717 003e 124B ldr r3, .L263+4 3718 0040 4363 str r3, [r0, #52] 1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3719 .loc 1 1864 5 is_stmt 1 view .LVU1277 1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3720 .loc 1 1864 19 is_stmt 0 view .LVU1278 3721 0042 036A ldr r3, [r0, #32] 1864:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3722 .loc 1 1864 8 view .LVU1279 3723 0044 B3F5003F cmp r3, #131072 3724 0048 08D0 beq .L262 3725 .LVL253: 3726 .L255: 1878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3727 .loc 1 1878 5 is_stmt 1 view .LVU1280 1878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3728 .loc 1 1878 5 view .LVU1281 3729 004a 0024 movs r4, #0 3730 004c 80F84040 strb r4, [r0, #64] 1878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3731 .loc 1 1878 5 view .LVU1282 1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3732 .loc 1 1888 5 view .LVU1283 3733 0050 48F20101 movw r1, #32769 3734 .LVL254: 1888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3735 .loc 1 1888 5 is_stmt 0 view .LVU1284 3736 0054 FFF7FEFF bl I2C_Enable_IRQ 3737 .LVL255: 1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3738 .loc 1 1890 5 is_stmt 1 view .LVU1285 1890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3739 .loc 1 1890 12 is_stmt 0 view .LVU1286 3740 0058 2046 mov r0, r4 1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3741 .loc 1 1896 1 view .LVU1287 3742 005a 10BD pop {r4, pc} 3743 .LVL256: 3744 .L262: 1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3745 .loc 1 1868 7 is_stmt 1 view .LVU1288 1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3746 .loc 1 1868 11 is_stmt 0 view .LVU1289 3747 005c 0368 ldr r3, [r0] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 218 1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3748 .loc 1 1868 30 view .LVU1290 3749 005e 0A78 ldrb r2, [r1] @ zero_extendqisi2 3750 .LVL257: 1868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3751 .loc 1 1868 28 view .LVU1291 3752 0060 9A62 str r2, [r3, #40] 1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3753 .loc 1 1871 7 is_stmt 1 view .LVU1292 1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3754 .loc 1 1871 11 is_stmt 0 view .LVU1293 3755 0062 436A ldr r3, [r0, #36] 1871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3756 .loc 1 1871 21 view .LVU1294 3757 0064 0133 adds r3, r3, #1 3758 0066 4362 str r3, [r0, #36] 1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3759 .loc 1 1873 7 is_stmt 1 view .LVU1295 1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3760 .loc 1 1873 11 is_stmt 0 view .LVU1296 3761 0068 438D ldrh r3, [r0, #42] 3762 006a 9BB2 uxth r3, r3 1873:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 3763 .loc 1 1873 22 view .LVU1297 3764 006c 013B subs r3, r3, #1 3765 006e 9BB2 uxth r3, r3 3766 0070 4385 strh r3, [r0, #42] @ movhi 1874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3767 .loc 1 1874 7 is_stmt 1 view .LVU1298 1874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3768 .loc 1 1874 11 is_stmt 0 view .LVU1299 3769 0072 038D ldrh r3, [r0, #40] 1874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3770 .loc 1 1874 21 view .LVU1300 3771 0074 013B subs r3, r3, #1 3772 0076 0385 strh r3, [r0, #40] @ movhi 3773 0078 E7E7 b .L255 3774 .LVL258: 3775 .L256: 3776 .cfi_def_cfa_offset 0 3777 .cfi_restore 4 3778 .cfi_restore 14 1894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3779 .loc 1 1894 12 view .LVU1301 3780 007a 0220 movs r0, #2 3781 .LVL259: 1894:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3782 .loc 1 1894 12 view .LVU1302 3783 007c 7047 bx lr 3784 .LVL260: 3785 .L257: 1847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3786 .loc 1 1847 5 discriminator 1 view .LVU1303 3787 007e 0220 movs r0, #2 3788 .LVL261: 1896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3789 .loc 1 1896 1 view .LVU1304 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 219 3790 0080 7047 bx lr 3791 .L264: 3792 0082 00BF .align 2 3793 .L263: 3794 0084 0000FFFF .word -65536 3795 0088 00000000 .word I2C_Slave_ISR_IT 3796 .cfi_endproc 3797 .LFE345: 3799 .section .text.HAL_I2C_Slave_Receive_IT,"ax",%progbits 3800 .align 1 3801 .global HAL_I2C_Slave_Receive_IT 3802 .syntax unified 3803 .thumb 3804 .thumb_func 3806 HAL_I2C_Slave_Receive_IT: 3807 .LVL262: 3808 .LFB346: 1907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3809 .loc 1 1907 1 is_stmt 1 view -0 3810 .cfi_startproc 3811 @ args = 0, pretend = 0, frame = 0 3812 @ frame_needed = 0, uses_anonymous_args = 0 1907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 3813 .loc 1 1907 1 is_stmt 0 view .LVU1306 3814 0000 38B5 push {r3, r4, r5, lr} 3815 .cfi_def_cfa_offset 16 3816 .cfi_offset 3, -16 3817 .cfi_offset 4, -12 3818 .cfi_offset 5, -8 3819 .cfi_offset 14, -4 1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3820 .loc 1 1908 3 is_stmt 1 view .LVU1307 1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3821 .loc 1 1908 11 is_stmt 0 view .LVU1308 3822 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 1908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3823 .loc 1 1908 6 view .LVU1309 3824 0006 202B cmp r3, #32 3825 0008 23D1 bne .L267 1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3826 .loc 1 1911 5 is_stmt 1 view .LVU1310 1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3827 .loc 1 1911 5 view .LVU1311 3828 000a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 3829 000e 012B cmp r3, #1 3830 0010 21D0 beq .L268 1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3831 .loc 1 1911 5 discriminator 2 view .LVU1312 3832 0012 0123 movs r3, #1 3833 0014 80F84030 strb r3, [r0, #64] 1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3834 .loc 1 1911 5 view .LVU1313 1913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3835 .loc 1 1913 5 view .LVU1314 1913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 3836 .loc 1 1913 23 is_stmt 0 view .LVU1315 3837 0018 2223 movs r3, #34 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 220 3838 001a 80F84130 strb r3, [r0, #65] 1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3839 .loc 1 1914 5 is_stmt 1 view .LVU1316 1914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3840 .loc 1 1914 23 is_stmt 0 view .LVU1317 3841 001e 2023 movs r3, #32 3842 0020 80F84230 strb r3, [r0, #66] 1915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3843 .loc 1 1915 5 is_stmt 1 view .LVU1318 1915:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3844 .loc 1 1915 23 is_stmt 0 view .LVU1319 3845 0024 0024 movs r4, #0 3846 0026 4464 str r4, [r0, #68] 1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3847 .loc 1 1918 5 is_stmt 1 view .LVU1320 1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3848 .loc 1 1918 9 is_stmt 0 view .LVU1321 3849 0028 0568 ldr r5, [r0] 1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3850 .loc 1 1918 19 view .LVU1322 3851 002a 6B68 ldr r3, [r5, #4] 1918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3852 .loc 1 1918 25 view .LVU1323 3853 002c 23F40043 bic r3, r3, #32768 3854 0030 6B60 str r3, [r5, #4] 1921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3855 .loc 1 1921 5 is_stmt 1 view .LVU1324 1921:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3856 .loc 1 1921 23 is_stmt 0 view .LVU1325 3857 0032 4162 str r1, [r0, #36] 1922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3858 .loc 1 1922 5 is_stmt 1 view .LVU1326 1922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 3859 .loc 1 1922 23 is_stmt 0 view .LVU1327 3860 0034 4285 strh r2, [r0, #42] @ movhi 1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3861 .loc 1 1923 5 is_stmt 1 view .LVU1328 1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3862 .loc 1 1923 29 is_stmt 0 view .LVU1329 3863 0036 438D ldrh r3, [r0, #42] 1923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3864 .loc 1 1923 23 view .LVU1330 3865 0038 0385 strh r3, [r0, #40] @ movhi 1924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3866 .loc 1 1924 5 is_stmt 1 view .LVU1331 1924:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 3867 .loc 1 1924 23 is_stmt 0 view .LVU1332 3868 003a 084B ldr r3, .L270 3869 003c C362 str r3, [r0, #44] 1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3870 .loc 1 1925 5 is_stmt 1 view .LVU1333 1925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3871 .loc 1 1925 23 is_stmt 0 view .LVU1334 3872 003e 084B ldr r3, .L270+4 3873 0040 4363 str r3, [r0, #52] 1928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3874 .loc 1 1928 5 is_stmt 1 view .LVU1335 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 221 1928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3875 .loc 1 1928 5 view .LVU1336 3876 0042 80F84040 strb r4, [r0, #64] 1928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3877 .loc 1 1928 5 view .LVU1337 1938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3878 .loc 1 1938 5 view .LVU1338 3879 0046 48F20201 movw r1, #32770 3880 .LVL263: 1938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3881 .loc 1 1938 5 is_stmt 0 view .LVU1339 3882 004a FFF7FEFF bl I2C_Enable_IRQ 3883 .LVL264: 1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3884 .loc 1 1940 5 is_stmt 1 view .LVU1340 1940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3885 .loc 1 1940 12 is_stmt 0 view .LVU1341 3886 004e 2046 mov r0, r4 3887 .L266: 1946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3888 .loc 1 1946 1 view .LVU1342 3889 0050 38BD pop {r3, r4, r5, pc} 3890 .LVL265: 3891 .L267: 1944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3892 .loc 1 1944 12 view .LVU1343 3893 0052 0220 movs r0, #2 3894 .LVL266: 1944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 3895 .loc 1 1944 12 view .LVU1344 3896 0054 FCE7 b .L266 3897 .LVL267: 3898 .L268: 1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3899 .loc 1 1911 5 discriminator 1 view .LVU1345 3900 0056 0220 movs r0, #2 3901 .LVL268: 1911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3902 .loc 1 1911 5 discriminator 1 view .LVU1346 3903 0058 FAE7 b .L266 3904 .L271: 3905 005a 00BF .align 2 3906 .L270: 3907 005c 0000FFFF .word -65536 3908 0060 00000000 .word I2C_Slave_ISR_IT 3909 .cfi_endproc 3910 .LFE346: 3912 .section .text.HAL_I2C_Master_Transmit_DMA,"ax",%progbits 3913 .align 1 3914 .global HAL_I2C_Master_Transmit_DMA 3915 .syntax unified 3916 .thumb 3917 .thumb_func 3919 HAL_I2C_Master_Transmit_DMA: 3920 .LVL269: 3921 .LFB347: 1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 222 3922 .loc 1 1960 1 is_stmt 1 view -0 3923 .cfi_startproc 3924 @ args = 0, pretend = 0, frame = 0 3925 @ frame_needed = 0, uses_anonymous_args = 0 1960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 3926 .loc 1 1960 1 is_stmt 0 view .LVU1348 3927 0000 70B5 push {r4, r5, r6, lr} 3928 .cfi_def_cfa_offset 16 3929 .cfi_offset 4, -16 3930 .cfi_offset 5, -12 3931 .cfi_offset 6, -8 3932 .cfi_offset 14, -4 3933 0002 82B0 sub sp, sp, #8 3934 .cfi_def_cfa_offset 24 3935 0004 0446 mov r4, r0 1961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 3936 .loc 1 1961 3 is_stmt 1 view .LVU1349 1962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 3937 .loc 1 1962 3 view .LVU1350 1963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3938 .loc 1 1963 3 view .LVU1351 3939 .LVL270: 1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3940 .loc 1 1965 3 view .LVU1352 1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3941 .loc 1 1965 11 is_stmt 0 view .LVU1353 3942 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 3943 .LVL271: 1965:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3944 .loc 1 1965 6 view .LVU1354 3945 000a 2028 cmp r0, #32 3946 000c 40F09D80 bne .L282 3947 0010 0D46 mov r5, r1 1967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3948 .loc 1 1967 5 is_stmt 1 view .LVU1355 1967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3949 .loc 1 1967 9 is_stmt 0 view .LVU1356 3950 0012 2068 ldr r0, [r4] 3951 0014 8169 ldr r1, [r0, #24] 3952 .LVL272: 1967:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3953 .loc 1 1967 8 view .LVU1357 3954 0016 11F40041 ands r1, r1, #32768 3955 001a 40F09980 bne .L283 1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3956 .loc 1 1973 5 is_stmt 1 view .LVU1358 1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3957 .loc 1 1973 5 view .LVU1359 3958 001e 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 3959 0022 012E cmp r6, #1 3960 0024 00F09680 beq .L284 1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3961 .loc 1 1973 5 discriminator 2 view .LVU1360 3962 0028 0126 movs r6, #1 3963 002a 84F84060 strb r6, [r4, #64] 1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3964 .loc 1 1973 5 view .LVU1361 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 223 1975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3965 .loc 1 1975 5 view .LVU1362 1975:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 3966 .loc 1 1975 23 is_stmt 0 view .LVU1363 3967 002e 2126 movs r6, #33 3968 0030 84F84160 strb r6, [r4, #65] 1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3969 .loc 1 1976 5 is_stmt 1 view .LVU1364 1976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 3970 .loc 1 1976 23 is_stmt 0 view .LVU1365 3971 0034 1026 movs r6, #16 3972 0036 84F84260 strb r6, [r4, #66] 1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3973 .loc 1 1977 5 is_stmt 1 view .LVU1366 1977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3974 .loc 1 1977 23 is_stmt 0 view .LVU1367 3975 003a 0026 movs r6, #0 3976 003c 6664 str r6, [r4, #68] 1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3977 .loc 1 1980 5 is_stmt 1 view .LVU1368 1980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 3978 .loc 1 1980 23 is_stmt 0 view .LVU1369 3979 003e 6262 str r2, [r4, #36] 1981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3980 .loc 1 1981 5 is_stmt 1 view .LVU1370 1981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 3981 .loc 1 1981 23 is_stmt 0 view .LVU1371 3982 0040 6385 strh r3, [r4, #42] @ movhi 1982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3983 .loc 1 1982 5 is_stmt 1 view .LVU1372 1982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3984 .loc 1 1982 23 is_stmt 0 view .LVU1373 3985 0042 454B ldr r3, .L288 3986 .LVL273: 1982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 3987 .loc 1 1982 23 view .LVU1374 3988 0044 E362 str r3, [r4, #44] 3989 .LVL274: 1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3990 .loc 1 1983 5 is_stmt 1 view .LVU1375 1983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 3991 .loc 1 1983 23 is_stmt 0 view .LVU1376 3992 0046 454B ldr r3, .L288+4 3993 0048 6363 str r3, [r4, #52] 1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3994 .loc 1 1985 5 is_stmt 1 view .LVU1377 1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3995 .loc 1 1985 13 is_stmt 0 view .LVU1378 3996 004a 638D ldrh r3, [r4, #42] 3997 004c 9BB2 uxth r3, r3 1985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 3998 .loc 1 1985 8 view .LVU1379 3999 004e FF2B cmp r3, #255 4000 0050 37D9 bls .L274 1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4001 .loc 1 1987 7 is_stmt 1 view .LVU1380 1987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 224 4002 .loc 1 1987 22 is_stmt 0 view .LVU1381 4003 0052 FF23 movs r3, #255 4004 0054 2385 strh r3, [r4, #40] @ movhi 1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4005 .loc 1 1988 7 is_stmt 1 view .LVU1382 4006 .LVL275: 1988:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4007 .loc 1 1988 16 is_stmt 0 view .LVU1383 4008 0056 4FF08076 mov r6, #16777216 4009 .LVL276: 4010 .L275: 1996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4011 .loc 1 1996 5 is_stmt 1 view .LVU1384 1996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4012 .loc 1 1996 13 is_stmt 0 view .LVU1385 4013 005a 238D ldrh r3, [r4, #40] 1996:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4014 .loc 1 1996 8 view .LVU1386 4015 005c 63B1 cbz r3, .L276 2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4016 .loc 1 2000 7 is_stmt 1 view .LVU1387 2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4017 .loc 1 2000 30 is_stmt 0 view .LVU1388 4018 005e 1378 ldrb r3, [r2] @ zero_extendqisi2 2000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4019 .loc 1 2000 28 view .LVU1389 4020 0060 8362 str r3, [r0, #40] 2003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4021 .loc 1 2003 7 is_stmt 1 view .LVU1390 2003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4022 .loc 1 2003 11 is_stmt 0 view .LVU1391 4023 0062 636A ldr r3, [r4, #36] 2003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4024 .loc 1 2003 21 view .LVU1392 4025 0064 0133 adds r3, r3, #1 4026 0066 6362 str r3, [r4, #36] 2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 4027 .loc 1 2005 7 is_stmt 1 view .LVU1393 2005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 4028 .loc 1 2005 24 is_stmt 0 view .LVU1394 4029 0068 218D ldrh r1, [r4, #40] 4030 .LVL277: 2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4031 .loc 1 2006 7 is_stmt 1 view .LVU1395 2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4032 .loc 1 2006 11 is_stmt 0 view .LVU1396 4033 006a 638D ldrh r3, [r4, #42] 4034 006c 9BB2 uxth r3, r3 2006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4035 .loc 1 2006 22 view .LVU1397 4036 006e 013B subs r3, r3, #1 4037 0070 9BB2 uxth r3, r3 4038 0072 6385 strh r3, [r4, #42] @ movhi 2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4039 .loc 1 2007 7 is_stmt 1 view .LVU1398 2007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4040 .loc 1 2007 21 is_stmt 0 view .LVU1399 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 225 4041 0074 4B1E subs r3, r1, #1 4042 0076 2385 strh r3, [r4, #40] @ movhi 4043 .LVL278: 4044 .L276: 2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4045 .loc 1 2010 5 is_stmt 1 view .LVU1400 2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4046 .loc 1 2010 13 is_stmt 0 view .LVU1401 4047 0078 238D ldrh r3, [r4, #40] 2010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4048 .loc 1 2010 8 view .LVU1402 4049 007a 002B cmp r3, #0 4050 007c 51D0 beq .L277 2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4051 .loc 1 2012 7 is_stmt 1 view .LVU1403 2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4052 .loc 1 2012 15 is_stmt 0 view .LVU1404 4053 007e A36B ldr r3, [r4, #56] 2012:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4054 .loc 1 2012 10 view .LVU1405 4055 0080 23B3 cbz r3, .L278 2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4056 .loc 1 2015 9 is_stmt 1 view .LVU1406 2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4057 .loc 1 2015 40 is_stmt 0 view .LVU1407 4058 0082 374A ldr r2, .L288+8 4059 .LVL279: 2015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4060 .loc 1 2015 40 view .LVU1408 4061 0084 DA63 str r2, [r3, #60] 2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4062 .loc 1 2018 9 is_stmt 1 view .LVU1409 2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4063 .loc 1 2018 13 is_stmt 0 view .LVU1410 4064 0086 A36B ldr r3, [r4, #56] 2018:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4065 .loc 1 2018 41 view .LVU1411 4066 0088 364A ldr r2, .L288+12 4067 008a DA64 str r2, [r3, #76] 2021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4068 .loc 1 2021 9 is_stmt 1 view .LVU1412 2021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4069 .loc 1 2021 13 is_stmt 0 view .LVU1413 4070 008c A26B ldr r2, [r4, #56] 2021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4071 .loc 1 2021 44 view .LVU1414 4072 008e 0023 movs r3, #0 4073 0090 1364 str r3, [r2, #64] 2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4074 .loc 1 2022 9 is_stmt 1 view .LVU1415 2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4075 .loc 1 2022 13 is_stmt 0 view .LVU1416 4076 0092 A26B ldr r2, [r4, #56] 2022:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4077 .loc 1 2022 41 view .LVU1417 4078 0094 1365 str r3, [r2, #80] 2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 226 4079 .loc 1 2025 9 is_stmt 1 view .LVU1418 2026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4080 .loc 1 2026 57 is_stmt 0 view .LVU1419 4081 0096 2268 ldr r2, [r4] 2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4082 .loc 1 2025 25 view .LVU1420 4083 0098 238D ldrh r3, [r4, #40] 4084 009a 2832 adds r2, r2, #40 4085 009c 616A ldr r1, [r4, #36] 4086 .LVL280: 2025:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 4087 .loc 1 2025 25 view .LVU1421 4088 009e A06B ldr r0, [r4, #56] 4089 00a0 FFF7FEFF bl HAL_DMA_Start_IT 4090 .LVL281: 2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4091 .loc 1 2043 7 is_stmt 1 view .LVU1422 2043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4092 .loc 1 2043 10 is_stmt 0 view .LVU1423 4093 00a4 00B3 cbz r0, .L287 2068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4094 .loc 1 2068 9 is_stmt 1 view .LVU1424 2068:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4095 .loc 1 2068 25 is_stmt 0 view .LVU1425 4096 00a6 2023 movs r3, #32 4097 00a8 84F84130 strb r3, [r4, #65] 2069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4098 .loc 1 2069 9 is_stmt 1 view .LVU1426 2069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4099 .loc 1 2069 25 is_stmt 0 view .LVU1427 4100 00ac 0022 movs r2, #0 4101 00ae 84F84220 strb r2, [r4, #66] 2072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4102 .loc 1 2072 9 is_stmt 1 view .LVU1428 2072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4103 .loc 1 2072 13 is_stmt 0 view .LVU1429 4104 00b2 636C ldr r3, [r4, #68] 2072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4105 .loc 1 2072 25 view .LVU1430 4106 00b4 43F01003 orr r3, r3, #16 4107 00b8 6364 str r3, [r4, #68] 2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4108 .loc 1 2075 9 is_stmt 1 view .LVU1431 2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4109 .loc 1 2075 9 view .LVU1432 4110 00ba 84F84020 strb r2, [r4, #64] 2075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4111 .loc 1 2075 9 view .LVU1433 2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4112 .loc 1 2077 9 view .LVU1434 2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4113 .loc 1 2077 16 is_stmt 0 view .LVU1435 4114 00be 0120 movs r0, #1 4115 .LVL282: 2077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4116 .loc 1 2077 16 view .LVU1436 4117 00c0 44E0 b .L273 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 227 4118 .LVL283: 4119 .L274: 1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4120 .loc 1 1992 7 is_stmt 1 view .LVU1437 1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4121 .loc 1 1992 28 is_stmt 0 view .LVU1438 4122 00c2 638D ldrh r3, [r4, #42] 1992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4123 .loc 1 1992 22 view .LVU1439 4124 00c4 2385 strh r3, [r4, #40] @ movhi 1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4125 .loc 1 1993 7 is_stmt 1 view .LVU1440 4126 .LVL284: 1993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4127 .loc 1 1993 16 is_stmt 0 view .LVU1441 4128 00c6 4FF00076 mov r6, #33554432 4129 00ca C6E7 b .L275 4130 .LVL285: 4131 .L278: 2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4132 .loc 1 2031 9 is_stmt 1 view .LVU1442 2031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4133 .loc 1 2031 25 is_stmt 0 view .LVU1443 4134 00cc 2023 movs r3, #32 4135 00ce 84F84130 strb r3, [r4, #65] 2032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4136 .loc 1 2032 9 is_stmt 1 view .LVU1444 2032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4137 .loc 1 2032 25 is_stmt 0 view .LVU1445 4138 00d2 0022 movs r2, #0 4139 .LVL286: 2032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4140 .loc 1 2032 25 view .LVU1446 4141 00d4 84F84220 strb r2, [r4, #66] 2035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4142 .loc 1 2035 9 is_stmt 1 view .LVU1447 2035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4143 .loc 1 2035 13 is_stmt 0 view .LVU1448 4144 00d8 636C ldr r3, [r4, #68] 2035:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4145 .loc 1 2035 25 view .LVU1449 4146 00da 43F08003 orr r3, r3, #128 4147 00de 6364 str r3, [r4, #68] 2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4148 .loc 1 2038 9 is_stmt 1 view .LVU1450 2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4149 .loc 1 2038 9 view .LVU1451 4150 00e0 84F84020 strb r2, [r4, #64] 2038:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4151 .loc 1 2038 9 view .LVU1452 2040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4152 .loc 1 2040 9 view .LVU1453 2040:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4153 .loc 1 2040 16 is_stmt 0 view .LVU1454 4154 00e4 0120 movs r0, #1 4155 00e6 31E0 b .L273 4156 .LVL287: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 228 4157 .L287: 2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4158 .loc 1 2047 9 is_stmt 1 view .LVU1455 2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4159 .loc 1 2047 60 is_stmt 0 view .LVU1456 4160 00e8 228D ldrh r2, [r4, #40] 2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4161 .loc 1 2047 9 view .LVU1457 4162 00ea 0132 adds r2, r2, #1 4163 00ec 1E4B ldr r3, .L288+16 4164 00ee 0093 str r3, [sp] 4165 00f0 3346 mov r3, r6 4166 00f2 D2B2 uxtb r2, r2 4167 00f4 2946 mov r1, r5 4168 00f6 2046 mov r0, r4 4169 .LVL288: 2047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode, I2C_GENERATE_START_WRITE); 4170 .loc 1 2047 9 view .LVU1458 4171 00f8 FFF7FEFF bl I2C_TransferConfig 4172 .LVL289: 2051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4173 .loc 1 2051 9 is_stmt 1 view .LVU1459 2051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4174 .loc 1 2051 13 is_stmt 0 view .LVU1460 4175 00fc 638D ldrh r3, [r4, #42] 4176 00fe 9BB2 uxth r3, r3 2051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4177 .loc 1 2051 32 view .LVU1461 4178 0100 228D ldrh r2, [r4, #40] 2051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4179 .loc 1 2051 25 view .LVU1462 4180 0102 9B1A subs r3, r3, r2 4181 0104 9BB2 uxth r3, r3 4182 0106 6385 strh r3, [r4, #42] @ movhi 2054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4183 .loc 1 2054 9 is_stmt 1 view .LVU1463 2054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4184 .loc 1 2054 9 view .LVU1464 4185 0108 0023 movs r3, #0 4186 010a 84F84030 strb r3, [r4, #64] 2054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4187 .loc 1 2054 9 view .LVU1465 2060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4188 .loc 1 2060 9 view .LVU1466 4189 010e 1021 movs r1, #16 4190 0110 2046 mov r0, r4 4191 0112 FFF7FEFF bl I2C_Enable_IRQ 4192 .LVL290: 2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4193 .loc 1 2063 9 view .LVU1467 2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4194 .loc 1 2063 13 is_stmt 0 view .LVU1468 4195 0116 2268 ldr r2, [r4] 2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4196 .loc 1 2063 23 view .LVU1469 4197 0118 1368 ldr r3, [r2] 2063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 229 4198 .loc 1 2063 29 view .LVU1470 4199 011a 43F48043 orr r3, r3, #16384 4200 011e 1360 str r3, [r2] 4201 0120 11E0 b .L281 4202 .LVL291: 4203 .L277: 2083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4204 .loc 1 2083 7 is_stmt 1 view .LVU1471 2083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4205 .loc 1 2083 21 is_stmt 0 view .LVU1472 4206 0122 124B ldr r3, .L288+20 4207 0124 6363 str r3, [r4, #52] 2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4208 .loc 1 2087 7 is_stmt 1 view .LVU1473 4209 0126 104B ldr r3, .L288+16 4210 0128 0093 str r3, [sp] 4211 012a 4FF00073 mov r3, #33554432 4212 012e CAB2 uxtb r2, r1 4213 .LVL292: 2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4214 .loc 1 2087 7 is_stmt 0 view .LVU1474 4215 0130 2946 mov r1, r5 4216 .LVL293: 2087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_WRITE); 4217 .loc 1 2087 7 view .LVU1475 4218 0132 2046 mov r0, r4 4219 0134 FFF7FEFF bl I2C_TransferConfig 4220 .LVL294: 2091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4221 .loc 1 2091 7 is_stmt 1 view .LVU1476 2091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4222 .loc 1 2091 7 view .LVU1477 4223 0138 0023 movs r3, #0 4224 013a 84F84030 strb r3, [r4, #64] 2091:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4225 .loc 1 2091 7 view .LVU1478 2100:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4226 .loc 1 2100 7 view .LVU1479 4227 013e 0121 movs r1, #1 4228 0140 2046 mov r0, r4 4229 0142 FFF7FEFF bl I2C_Enable_IRQ 4230 .LVL295: 4231 .L281: 2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4232 .loc 1 2103 5 view .LVU1480 2103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4233 .loc 1 2103 12 is_stmt 0 view .LVU1481 4234 0146 0020 movs r0, #0 4235 0148 00E0 b .L273 4236 .LVL296: 4237 .L282: 2107:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4238 .loc 1 2107 12 view .LVU1482 4239 014a 0220 movs r0, #2 4240 .LVL297: 4241 .L273: 2109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 230 4242 .loc 1 2109 1 view .LVU1483 4243 014c 02B0 add sp, sp, #8 4244 .cfi_remember_state 4245 .cfi_def_cfa_offset 16 4246 @ sp needed 4247 014e 70BD pop {r4, r5, r6, pc} 4248 .LVL298: 4249 .L283: 4250 .cfi_restore_state 1969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4251 .loc 1 1969 14 view .LVU1484 4252 0150 0220 movs r0, #2 4253 0152 FBE7 b .L273 4254 .L284: 1973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4255 .loc 1 1973 5 discriminator 1 view .LVU1485 4256 0154 0220 movs r0, #2 4257 0156 F9E7 b .L273 4258 .L289: 4259 .align 2 4260 .L288: 4261 0158 0000FFFF .word -65536 4262 015c 00000000 .word I2C_Master_ISR_DMA 4263 0160 00000000 .word I2C_DMAMasterTransmitCplt 4264 0164 00000000 .word I2C_DMAError 4265 0168 00200080 .word -2147475456 4266 016c 00000000 .word I2C_Master_ISR_IT 4267 .cfi_endproc 4268 .LFE347: 4270 .section .text.HAL_I2C_Master_Receive_DMA,"ax",%progbits 4271 .align 1 4272 .global HAL_I2C_Master_Receive_DMA 4273 .syntax unified 4274 .thumb 4275 .thumb_func 4277 HAL_I2C_Master_Receive_DMA: 4278 .LVL299: 4279 .LFB348: 2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 4280 .loc 1 2123 1 is_stmt 1 view -0 4281 .cfi_startproc 4282 @ args = 0, pretend = 0, frame = 0 4283 @ frame_needed = 0, uses_anonymous_args = 0 2123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 4284 .loc 1 2123 1 is_stmt 0 view .LVU1487 4285 0000 70B5 push {r4, r5, r6, lr} 4286 .cfi_def_cfa_offset 16 4287 .cfi_offset 4, -16 4288 .cfi_offset 5, -12 4289 .cfi_offset 6, -8 4290 .cfi_offset 14, -4 4291 0002 82B0 sub sp, sp, #8 4292 .cfi_def_cfa_offset 24 4293 0004 0446 mov r4, r0 2124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4294 .loc 1 2124 3 is_stmt 1 view .LVU1488 2125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 231 4295 .loc 1 2125 3 view .LVU1489 2127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4296 .loc 1 2127 3 view .LVU1490 2127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4297 .loc 1 2127 11 is_stmt 0 view .LVU1491 4298 0006 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 4299 .LVL300: 2127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4300 .loc 1 2127 6 view .LVU1492 4301 000a 2028 cmp r0, #32 4302 000c 40F08C80 bne .L299 4303 0010 0D46 mov r5, r1 2129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4304 .loc 1 2129 5 is_stmt 1 view .LVU1493 2129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4305 .loc 1 2129 9 is_stmt 0 view .LVU1494 4306 0012 2168 ldr r1, [r4] 4307 .LVL301: 2129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4308 .loc 1 2129 9 view .LVU1495 4309 0014 8969 ldr r1, [r1, #24] 2129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4310 .loc 1 2129 8 view .LVU1496 4311 0016 11F4004F tst r1, #32768 4312 001a 40F08880 bne .L300 2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4313 .loc 1 2135 5 is_stmt 1 view .LVU1497 2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4314 .loc 1 2135 5 view .LVU1498 4315 001e 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 4316 0022 0129 cmp r1, #1 4317 0024 00F08580 beq .L301 2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4318 .loc 1 2135 5 discriminator 2 view .LVU1499 4319 0028 0121 movs r1, #1 4320 002a 84F84010 strb r1, [r4, #64] 2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4321 .loc 1 2135 5 view .LVU1500 2137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4322 .loc 1 2137 5 view .LVU1501 2137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 4323 .loc 1 2137 23 is_stmt 0 view .LVU1502 4324 002e 2221 movs r1, #34 4325 0030 84F84110 strb r1, [r4, #65] 2138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4326 .loc 1 2138 5 is_stmt 1 view .LVU1503 2138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4327 .loc 1 2138 23 is_stmt 0 view .LVU1504 4328 0034 1021 movs r1, #16 4329 0036 84F84210 strb r1, [r4, #66] 2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4330 .loc 1 2139 5 is_stmt 1 view .LVU1505 2139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4331 .loc 1 2139 23 is_stmt 0 view .LVU1506 4332 003a 0021 movs r1, #0 4333 003c 6164 str r1, [r4, #68] 2142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 232 4334 .loc 1 2142 5 is_stmt 1 view .LVU1507 2142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4335 .loc 1 2142 23 is_stmt 0 view .LVU1508 4336 003e 6262 str r2, [r4, #36] 2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4337 .loc 1 2143 5 is_stmt 1 view .LVU1509 2143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4338 .loc 1 2143 23 is_stmt 0 view .LVU1510 4339 0040 6385 strh r3, [r4, #42] @ movhi 2144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4340 .loc 1 2144 5 is_stmt 1 view .LVU1511 2144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4341 .loc 1 2144 23 is_stmt 0 view .LVU1512 4342 0042 3D4B ldr r3, .L305 4343 .LVL302: 2144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 4344 .loc 1 2144 23 view .LVU1513 4345 0044 E362 str r3, [r4, #44] 4346 .LVL303: 2145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4347 .loc 1 2145 5 is_stmt 1 view .LVU1514 2145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4348 .loc 1 2145 23 is_stmt 0 view .LVU1515 4349 0046 3D4B ldr r3, .L305+4 4350 0048 6363 str r3, [r4, #52] 2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4351 .loc 1 2147 5 is_stmt 1 view .LVU1516 2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4352 .loc 1 2147 13 is_stmt 0 view .LVU1517 4353 004a 638D ldrh r3, [r4, #42] 4354 004c 9BB2 uxth r3, r3 2147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4355 .loc 1 2147 8 view .LVU1518 4356 004e FF2B cmp r3, #255 4357 0050 27D9 bls .L292 2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4358 .loc 1 2149 7 is_stmt 1 view .LVU1519 2149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 4359 .loc 1 2149 22 is_stmt 0 view .LVU1520 4360 0052 FF23 movs r3, #255 4361 0054 2385 strh r3, [r4, #40] @ movhi 2150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4362 .loc 1 2150 7 is_stmt 1 view .LVU1521 4363 .LVL304: 2150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4364 .loc 1 2150 16 is_stmt 0 view .LVU1522 4365 0056 4FF08076 mov r6, #16777216 4366 .LVL305: 4367 .L293: 2158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4368 .loc 1 2158 5 is_stmt 1 view .LVU1523 2158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4369 .loc 1 2158 13 is_stmt 0 view .LVU1524 4370 005a 218D ldrh r1, [r4, #40] 2158:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4371 .loc 1 2158 8 view .LVU1525 4372 005c 0029 cmp r1, #0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 233 4373 005e 4FD0 beq .L294 2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4374 .loc 1 2160 7 is_stmt 1 view .LVU1526 2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4375 .loc 1 2160 15 is_stmt 0 view .LVU1527 4376 0060 E36B ldr r3, [r4, #60] 2160:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4377 .loc 1 2160 10 view .LVU1528 4378 0062 1BB3 cbz r3, .L295 2163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4379 .loc 1 2163 9 is_stmt 1 view .LVU1529 2163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4380 .loc 1 2163 40 is_stmt 0 view .LVU1530 4381 0064 3649 ldr r1, .L305+8 4382 0066 D963 str r1, [r3, #60] 2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4383 .loc 1 2166 9 is_stmt 1 view .LVU1531 2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4384 .loc 1 2166 13 is_stmt 0 view .LVU1532 4385 0068 E36B ldr r3, [r4, #60] 2166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4386 .loc 1 2166 41 view .LVU1533 4387 006a 3649 ldr r1, .L305+12 4388 006c D964 str r1, [r3, #76] 2169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4389 .loc 1 2169 9 is_stmt 1 view .LVU1534 2169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4390 .loc 1 2169 13 is_stmt 0 view .LVU1535 4391 006e E16B ldr r1, [r4, #60] 2169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4392 .loc 1 2169 44 view .LVU1536 4393 0070 0023 movs r3, #0 4394 0072 0B64 str r3, [r1, #64] 2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4395 .loc 1 2170 9 is_stmt 1 view .LVU1537 2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4396 .loc 1 2170 13 is_stmt 0 view .LVU1538 4397 0074 E16B ldr r1, [r4, #60] 2170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4398 .loc 1 2170 41 view .LVU1539 4399 0076 0B65 str r3, [r1, #80] 2173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 4400 .loc 1 2173 9 is_stmt 1 view .LVU1540 2173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 4401 .loc 1 2173 71 is_stmt 0 view .LVU1541 4402 0078 2168 ldr r1, [r4] 2173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 4403 .loc 1 2173 25 view .LVU1542 4404 007a 238D ldrh r3, [r4, #40] 4405 007c 2431 adds r1, r1, #36 4406 007e E06B ldr r0, [r4, #60] 4407 0080 FFF7FEFF bl HAL_DMA_Start_IT 4408 .LVL306: 2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4409 .loc 1 2191 7 is_stmt 1 view .LVU1543 2191:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4410 .loc 1 2191 10 is_stmt 0 view .LVU1544 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 234 4411 0084 00B3 cbz r0, .L304 2215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4412 .loc 1 2215 9 is_stmt 1 view .LVU1545 2215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4413 .loc 1 2215 25 is_stmt 0 view .LVU1546 4414 0086 2023 movs r3, #32 4415 0088 84F84130 strb r3, [r4, #65] 2216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4416 .loc 1 2216 9 is_stmt 1 view .LVU1547 2216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4417 .loc 1 2216 25 is_stmt 0 view .LVU1548 4418 008c 0022 movs r2, #0 4419 008e 84F84220 strb r2, [r4, #66] 2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4420 .loc 1 2219 9 is_stmt 1 view .LVU1549 2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4421 .loc 1 2219 13 is_stmt 0 view .LVU1550 4422 0092 636C ldr r3, [r4, #68] 2219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4423 .loc 1 2219 25 view .LVU1551 4424 0094 43F01003 orr r3, r3, #16 4425 0098 6364 str r3, [r4, #68] 2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4426 .loc 1 2222 9 is_stmt 1 view .LVU1552 2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4427 .loc 1 2222 9 view .LVU1553 4428 009a 84F84020 strb r2, [r4, #64] 2222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4429 .loc 1 2222 9 view .LVU1554 2224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4430 .loc 1 2224 9 view .LVU1555 2224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4431 .loc 1 2224 16 is_stmt 0 view .LVU1556 4432 009e 0120 movs r0, #1 4433 .LVL307: 2224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4434 .loc 1 2224 16 view .LVU1557 4435 00a0 43E0 b .L291 4436 .LVL308: 4437 .L292: 2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4438 .loc 1 2154 7 is_stmt 1 view .LVU1558 2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4439 .loc 1 2154 28 is_stmt 0 view .LVU1559 4440 00a2 638D ldrh r3, [r4, #42] 2154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_AUTOEND_MODE; 4441 .loc 1 2154 22 view .LVU1560 4442 00a4 2385 strh r3, [r4, #40] @ movhi 2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4443 .loc 1 2155 7 is_stmt 1 view .LVU1561 4444 .LVL309: 2155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4445 .loc 1 2155 16 is_stmt 0 view .LVU1562 4446 00a6 4FF00076 mov r6, #33554432 4447 00aa D6E7 b .L293 4448 .LVL310: 4449 .L295: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 235 2179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4450 .loc 1 2179 9 is_stmt 1 view .LVU1563 2179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4451 .loc 1 2179 25 is_stmt 0 view .LVU1564 4452 00ac 2023 movs r3, #32 4453 00ae 84F84130 strb r3, [r4, #65] 2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4454 .loc 1 2180 9 is_stmt 1 view .LVU1565 2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4455 .loc 1 2180 25 is_stmt 0 view .LVU1566 4456 00b2 0022 movs r2, #0 4457 .LVL311: 2180:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4458 .loc 1 2180 25 view .LVU1567 4459 00b4 84F84220 strb r2, [r4, #66] 2183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4460 .loc 1 2183 9 is_stmt 1 view .LVU1568 2183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4461 .loc 1 2183 13 is_stmt 0 view .LVU1569 4462 00b8 636C ldr r3, [r4, #68] 2183:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4463 .loc 1 2183 25 view .LVU1570 4464 00ba 43F08003 orr r3, r3, #128 4465 00be 6364 str r3, [r4, #68] 2186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4466 .loc 1 2186 9 is_stmt 1 view .LVU1571 2186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4467 .loc 1 2186 9 view .LVU1572 4468 00c0 84F84020 strb r2, [r4, #64] 2186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4469 .loc 1 2186 9 view .LVU1573 2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4470 .loc 1 2188 9 view .LVU1574 2188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4471 .loc 1 2188 16 is_stmt 0 view .LVU1575 4472 00c4 0120 movs r0, #1 4473 00c6 30E0 b .L291 4474 .LVL312: 4475 .L304: 2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4476 .loc 1 2195 9 is_stmt 1 view .LVU1576 4477 00c8 1F4B ldr r3, .L305+16 4478 00ca 0093 str r3, [sp] 4479 00cc 3346 mov r3, r6 4480 00ce 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 4481 00d2 2946 mov r1, r5 4482 00d4 2046 mov r0, r4 4483 .LVL313: 2195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4484 .loc 1 2195 9 is_stmt 0 view .LVU1577 4485 00d6 FFF7FEFF bl I2C_TransferConfig 4486 .LVL314: 2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4487 .loc 1 2198 9 is_stmt 1 view .LVU1578 2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4488 .loc 1 2198 13 is_stmt 0 view .LVU1579 4489 00da 638D ldrh r3, [r4, #42] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 236 4490 00dc 9BB2 uxth r3, r3 2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4491 .loc 1 2198 32 view .LVU1580 4492 00de 228D ldrh r2, [r4, #40] 2198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4493 .loc 1 2198 25 view .LVU1581 4494 00e0 9B1A subs r3, r3, r2 4495 00e2 9BB2 uxth r3, r3 4496 00e4 6385 strh r3, [r4, #42] @ movhi 2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4497 .loc 1 2201 9 is_stmt 1 view .LVU1582 2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4498 .loc 1 2201 9 view .LVU1583 4499 00e6 0023 movs r3, #0 4500 00e8 84F84030 strb r3, [r4, #64] 2201:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4501 .loc 1 2201 9 view .LVU1584 2207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4502 .loc 1 2207 9 view .LVU1585 4503 00ec 1021 movs r1, #16 4504 00ee 2046 mov r0, r4 4505 00f0 FFF7FEFF bl I2C_Enable_IRQ 4506 .LVL315: 2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4507 .loc 1 2210 9 view .LVU1586 2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4508 .loc 1 2210 13 is_stmt 0 view .LVU1587 4509 00f4 2268 ldr r2, [r4] 2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4510 .loc 1 2210 23 view .LVU1588 4511 00f6 1368 ldr r3, [r2] 2210:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4512 .loc 1 2210 29 view .LVU1589 4513 00f8 43F40043 orr r3, r3, #32768 4514 00fc 1360 str r3, [r2] 4515 00fe 11E0 b .L298 4516 .LVL316: 4517 .L294: 2230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4518 .loc 1 2230 7 is_stmt 1 view .LVU1590 2230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4519 .loc 1 2230 21 is_stmt 0 view .LVU1591 4520 0100 124B ldr r3, .L305+20 4521 0102 6363 str r3, [r4, #52] 2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4522 .loc 1 2234 7 is_stmt 1 view .LVU1592 4523 0104 104B ldr r3, .L305+16 4524 0106 0093 str r3, [sp] 4525 0108 4FF00073 mov r3, #33554432 4526 010c CAB2 uxtb r2, r1 4527 .LVL317: 2234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 4528 .loc 1 2234 7 is_stmt 0 view .LVU1593 4529 010e 2946 mov r1, r5 4530 0110 2046 mov r0, r4 4531 0112 FFF7FEFF bl I2C_TransferConfig 4532 .LVL318: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 237 2238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4533 .loc 1 2238 7 is_stmt 1 view .LVU1594 2238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4534 .loc 1 2238 7 view .LVU1595 4535 0116 0023 movs r3, #0 4536 0118 84F84030 strb r3, [r4, #64] 2238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4537 .loc 1 2238 7 view .LVU1596 2247:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4538 .loc 1 2247 7 view .LVU1597 4539 011c 0221 movs r1, #2 4540 011e 2046 mov r0, r4 4541 0120 FFF7FEFF bl I2C_Enable_IRQ 4542 .LVL319: 4543 .L298: 2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4544 .loc 1 2250 5 view .LVU1598 2250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4545 .loc 1 2250 12 is_stmt 0 view .LVU1599 4546 0124 0020 movs r0, #0 4547 0126 00E0 b .L291 4548 .LVL320: 4549 .L299: 2254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4550 .loc 1 2254 12 view .LVU1600 4551 0128 0220 movs r0, #2 4552 .LVL321: 4553 .L291: 2256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4554 .loc 1 2256 1 view .LVU1601 4555 012a 02B0 add sp, sp, #8 4556 .cfi_remember_state 4557 .cfi_def_cfa_offset 16 4558 @ sp needed 4559 012c 70BD pop {r4, r5, r6, pc} 4560 .LVL322: 4561 .L300: 4562 .cfi_restore_state 2131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4563 .loc 1 2131 14 view .LVU1602 4564 012e 0220 movs r0, #2 4565 0130 FBE7 b .L291 4566 .L301: 2135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4567 .loc 1 2135 5 discriminator 1 view .LVU1603 4568 0132 0220 movs r0, #2 4569 0134 F9E7 b .L291 4570 .L306: 4571 0136 00BF .align 2 4572 .L305: 4573 0138 0000FFFF .word -65536 4574 013c 00000000 .word I2C_Master_ISR_DMA 4575 0140 00000000 .word I2C_DMAMasterReceiveCplt 4576 0144 00000000 .word I2C_DMAError 4577 0148 00240080 .word -2147474432 4578 014c 00000000 .word I2C_Master_ISR_IT 4579 .cfi_endproc ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 238 4580 .LFE348: 4582 .section .text.HAL_I2C_Slave_Transmit_DMA,"ax",%progbits 4583 .align 1 4584 .global HAL_I2C_Slave_Transmit_DMA 4585 .syntax unified 4586 .thumb 4587 .thumb_func 4589 HAL_I2C_Slave_Transmit_DMA: 4590 .LVL323: 4591 .LFB349: 2267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4592 .loc 1 2267 1 is_stmt 1 view -0 4593 .cfi_startproc 4594 @ args = 0, pretend = 0, frame = 0 4595 @ frame_needed = 0, uses_anonymous_args = 0 2268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4596 .loc 1 2268 3 view .LVU1605 2270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4597 .loc 1 2270 3 view .LVU1606 2270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4598 .loc 1 2270 11 is_stmt 0 view .LVU1607 4599 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4600 .loc 1 2270 6 view .LVU1608 4601 0004 202B cmp r3, #32 4602 0006 40F08D80 bne .L316 2267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4603 .loc 1 2267 1 view .LVU1609 4604 000a 10B5 push {r4, lr} 4605 .cfi_def_cfa_offset 8 4606 .cfi_offset 4, -8 4607 .cfi_offset 14, -4 4608 000c 0446 mov r4, r0 2272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4609 .loc 1 2272 5 is_stmt 1 view .LVU1610 2272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4610 .loc 1 2272 8 is_stmt 0 view .LVU1611 4611 000e 002A cmp r2, #0 4612 0010 18BF it ne 4613 0012 0029 cmpne r1, #0 4614 0014 42D0 beq .L323 2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4615 .loc 1 2278 5 is_stmt 1 view .LVU1612 2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4616 .loc 1 2278 5 view .LVU1613 4617 0016 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4618 001a 012B cmp r3, #1 4619 001c 00F08480 beq .L317 2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4620 .loc 1 2278 5 discriminator 2 view .LVU1614 4621 0020 0123 movs r3, #1 4622 0022 80F84030 strb r3, [r0, #64] 2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4623 .loc 1 2278 5 view .LVU1615 2280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4624 .loc 1 2280 5 view .LVU1616 2280:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 239 4625 .loc 1 2280 23 is_stmt 0 view .LVU1617 4626 0026 2123 movs r3, #33 4627 0028 80F84130 strb r3, [r0, #65] 2281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4628 .loc 1 2281 5 is_stmt 1 view .LVU1618 2281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4629 .loc 1 2281 23 is_stmt 0 view .LVU1619 4630 002c 2023 movs r3, #32 4631 002e 80F84230 strb r3, [r0, #66] 2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4632 .loc 1 2282 5 is_stmt 1 view .LVU1620 2282:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4633 .loc 1 2282 23 is_stmt 0 view .LVU1621 4634 0032 0023 movs r3, #0 4635 0034 4364 str r3, [r0, #68] 2285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4636 .loc 1 2285 5 is_stmt 1 view .LVU1622 2285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4637 .loc 1 2285 23 is_stmt 0 view .LVU1623 4638 0036 4162 str r1, [r0, #36] 2286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4639 .loc 1 2286 5 is_stmt 1 view .LVU1624 2286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4640 .loc 1 2286 23 is_stmt 0 view .LVU1625 4641 0038 4285 strh r2, [r0, #42] @ movhi 2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4642 .loc 1 2287 5 is_stmt 1 view .LVU1626 2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4643 .loc 1 2287 29 is_stmt 0 view .LVU1627 4644 003a 438D ldrh r3, [r0, #42] 2287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4645 .loc 1 2287 23 view .LVU1628 4646 003c 0385 strh r3, [r0, #40] @ movhi 2288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4647 .loc 1 2288 5 is_stmt 1 view .LVU1629 2288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4648 .loc 1 2288 23 is_stmt 0 view .LVU1630 4649 003e 3B4B ldr r3, .L326 4650 0040 C362 str r3, [r0, #44] 2289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4651 .loc 1 2289 5 is_stmt 1 view .LVU1631 2289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4652 .loc 1 2289 23 is_stmt 0 view .LVU1632 4653 0042 3B4B ldr r3, .L326+4 4654 0044 4363 str r3, [r0, #52] 2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4655 .loc 1 2292 5 is_stmt 1 view .LVU1633 2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4656 .loc 1 2292 19 is_stmt 0 view .LVU1634 4657 0046 036A ldr r3, [r0, #32] 2292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4658 .loc 1 2292 8 view .LVU1635 4659 0048 B3F5003F cmp r3, #131072 4660 004c 2BD0 beq .L324 4661 .LVL324: 4662 .L310: 2305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 240 4663 .loc 1 2305 5 is_stmt 1 view .LVU1636 2305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4664 .loc 1 2305 13 is_stmt 0 view .LVU1637 4665 004e 638D ldrh r3, [r4, #42] 4666 0050 9BB2 uxth r3, r3 2305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4667 .loc 1 2305 8 view .LVU1638 4668 0052 002B cmp r3, #0 4669 0054 57D0 beq .L311 2307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4670 .loc 1 2307 7 is_stmt 1 view .LVU1639 2307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4671 .loc 1 2307 15 is_stmt 0 view .LVU1640 4672 0056 A36B ldr r3, [r4, #56] 2307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4673 .loc 1 2307 10 view .LVU1641 4674 0058 002B cmp r3, #0 4675 005a 33D0 beq .L312 2310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4676 .loc 1 2310 9 is_stmt 1 view .LVU1642 2310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4677 .loc 1 2310 40 is_stmt 0 view .LVU1643 4678 005c 354A ldr r2, .L326+8 4679 005e DA63 str r2, [r3, #60] 2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4680 .loc 1 2313 9 is_stmt 1 view .LVU1644 2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4681 .loc 1 2313 13 is_stmt 0 view .LVU1645 4682 0060 A36B ldr r3, [r4, #56] 2313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4683 .loc 1 2313 41 view .LVU1646 4684 0062 354A ldr r2, .L326+12 4685 0064 DA64 str r2, [r3, #76] 2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4686 .loc 1 2316 9 is_stmt 1 view .LVU1647 2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4687 .loc 1 2316 13 is_stmt 0 view .LVU1648 4688 0066 A26B ldr r2, [r4, #56] 2316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 4689 .loc 1 2316 44 view .LVU1649 4690 0068 0023 movs r3, #0 4691 006a 1364 str r3, [r2, #64] 2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4692 .loc 1 2317 9 is_stmt 1 view .LVU1650 2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4693 .loc 1 2317 13 is_stmt 0 view .LVU1651 4694 006c A26B ldr r2, [r4, #56] 2317:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4695 .loc 1 2317 41 view .LVU1652 4696 006e 1365 str r3, [r2, #80] 2320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4697 .loc 1 2320 9 is_stmt 1 view .LVU1653 2321:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 4698 .loc 1 2321 83 is_stmt 0 view .LVU1654 4699 0070 2268 ldr r2, [r4] 2320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4700 .loc 1 2320 25 view .LVU1655 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 241 4701 0072 238D ldrh r3, [r4, #40] 4702 0074 2832 adds r2, r2, #40 4703 0076 616A ldr r1, [r4, #36] 4704 .LVL325: 2320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4705 .loc 1 2320 25 view .LVU1656 4706 0078 A06B ldr r0, [r4, #56] 4707 .LVL326: 2320:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)hi2c->pBuffPtr, (uint32_t)&hi2c->Instance->TXDR, 4708 .loc 1 2320 25 view .LVU1657 4709 007a FFF7FEFF bl HAL_DMA_Start_IT 4710 .LVL327: 2339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4711 .loc 1 2339 7 is_stmt 1 view .LVU1658 2339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4712 .loc 1 2339 10 is_stmt 0 view .LVU1659 4713 007e 78B3 cbz r0, .L325 2359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4714 .loc 1 2359 9 is_stmt 1 view .LVU1660 2359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4715 .loc 1 2359 25 is_stmt 0 view .LVU1661 4716 0080 2823 movs r3, #40 4717 0082 84F84130 strb r3, [r4, #65] 2360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4718 .loc 1 2360 9 is_stmt 1 view .LVU1662 2360:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4719 .loc 1 2360 25 is_stmt 0 view .LVU1663 4720 0086 0022 movs r2, #0 4721 0088 84F84220 strb r2, [r4, #66] 2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4722 .loc 1 2363 9 is_stmt 1 view .LVU1664 2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4723 .loc 1 2363 13 is_stmt 0 view .LVU1665 4724 008c 636C ldr r3, [r4, #68] 2363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4725 .loc 1 2363 25 view .LVU1666 4726 008e 43F01003 orr r3, r3, #16 4727 0092 6364 str r3, [r4, #68] 2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4728 .loc 1 2366 9 is_stmt 1 view .LVU1667 2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4729 .loc 1 2366 9 view .LVU1668 4730 0094 84F84020 strb r2, [r4, #64] 2366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4731 .loc 1 2366 9 view .LVU1669 2368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4732 .loc 1 2368 9 view .LVU1670 2368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4733 .loc 1 2368 16 is_stmt 0 view .LVU1671 4734 0098 0120 movs r0, #1 4735 .LVL328: 2368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4736 .loc 1 2368 16 view .LVU1672 4737 009a 03E0 b .L308 4738 .LVL329: 4739 .L323: 2274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 242 4740 .loc 1 2274 7 is_stmt 1 view .LVU1673 2274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 4741 .loc 1 2274 23 is_stmt 0 view .LVU1674 4742 009c 4FF40073 mov r3, #512 4743 00a0 4364 str r3, [r0, #68] 2275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4744 .loc 1 2275 7 is_stmt 1 view .LVU1675 2275:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4745 .loc 1 2275 15 is_stmt 0 view .LVU1676 4746 00a2 0120 movs r0, #1 4747 .LVL330: 4748 .L308: 2392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4749 .loc 1 2392 1 view .LVU1677 4750 00a4 10BD pop {r4, pc} 4751 .LVL331: 4752 .L324: 2296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4753 .loc 1 2296 7 is_stmt 1 view .LVU1678 2296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4754 .loc 1 2296 11 is_stmt 0 view .LVU1679 4755 00a6 0368 ldr r3, [r0] 2296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4756 .loc 1 2296 30 view .LVU1680 4757 00a8 0A78 ldrb r2, [r1] @ zero_extendqisi2 4758 .LVL332: 2296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4759 .loc 1 2296 28 view .LVU1681 4760 00aa 9A62 str r2, [r3, #40] 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4761 .loc 1 2299 7 is_stmt 1 view .LVU1682 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4762 .loc 1 2299 11 is_stmt 0 view .LVU1683 4763 00ac 436A ldr r3, [r0, #36] 2299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4764 .loc 1 2299 21 view .LVU1684 4765 00ae 0133 adds r3, r3, #1 4766 00b0 4362 str r3, [r0, #36] 2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4767 .loc 1 2301 7 is_stmt 1 view .LVU1685 2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4768 .loc 1 2301 11 is_stmt 0 view .LVU1686 4769 00b2 438D ldrh r3, [r0, #42] 4770 00b4 9BB2 uxth r3, r3 2301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 4771 .loc 1 2301 22 view .LVU1687 4772 00b6 013B subs r3, r3, #1 4773 00b8 9BB2 uxth r3, r3 4774 00ba 4385 strh r3, [r0, #42] @ movhi 2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4775 .loc 1 2302 7 is_stmt 1 view .LVU1688 2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4776 .loc 1 2302 11 is_stmt 0 view .LVU1689 4777 00bc 038D ldrh r3, [r0, #40] 2302:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4778 .loc 1 2302 21 view .LVU1690 4779 00be 013B subs r3, r3, #1 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 243 4780 00c0 0385 strh r3, [r0, #40] @ movhi 4781 00c2 C4E7 b .L310 4782 .L312: 2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4783 .loc 1 2327 9 is_stmt 1 view .LVU1691 2327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 4784 .loc 1 2327 25 is_stmt 0 view .LVU1692 4785 00c4 2823 movs r3, #40 4786 00c6 84F84130 strb r3, [r4, #65] 2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4787 .loc 1 2328 9 is_stmt 1 view .LVU1693 2328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4788 .loc 1 2328 25 is_stmt 0 view .LVU1694 4789 00ca 0022 movs r2, #0 4790 00cc 84F84220 strb r2, [r4, #66] 2331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4791 .loc 1 2331 9 is_stmt 1 view .LVU1695 2331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4792 .loc 1 2331 13 is_stmt 0 view .LVU1696 4793 00d0 636C ldr r3, [r4, #68] 2331:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4794 .loc 1 2331 25 view .LVU1697 4795 00d2 43F08003 orr r3, r3, #128 4796 00d6 6364 str r3, [r4, #68] 2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4797 .loc 1 2334 9 is_stmt 1 view .LVU1698 2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4798 .loc 1 2334 9 view .LVU1699 4799 00d8 84F84020 strb r2, [r4, #64] 2334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4800 .loc 1 2334 9 view .LVU1700 2336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4801 .loc 1 2336 9 view .LVU1701 2336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4802 .loc 1 2336 16 is_stmt 0 view .LVU1702 4803 00dc 0120 movs r0, #1 4804 .LVL333: 2336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4805 .loc 1 2336 16 view .LVU1703 4806 00de E1E7 b .L308 4807 .LVL334: 4808 .L325: 2342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4809 .loc 1 2342 9 is_stmt 1 view .LVU1704 2342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4810 .loc 1 2342 13 is_stmt 0 view .LVU1705 4811 00e0 2268 ldr r2, [r4] 2342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4812 .loc 1 2342 23 view .LVU1706 4813 00e2 5368 ldr r3, [r2, #4] 2342:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4814 .loc 1 2342 29 view .LVU1707 4815 00e4 23F40043 bic r3, r3, #32768 4816 00e8 5360 str r3, [r2, #4] 2345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4817 .loc 1 2345 9 is_stmt 1 view .LVU1708 2345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 244 4818 .loc 1 2345 9 view .LVU1709 4819 00ea 0023 movs r3, #0 4820 00ec 84F84030 strb r3, [r4, #64] 2345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4821 .loc 1 2345 9 view .LVU1710 2351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4822 .loc 1 2351 9 view .LVU1711 4823 00f0 4FF40041 mov r1, #32768 4824 00f4 2046 mov r0, r4 4825 .LVL335: 2351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4826 .loc 1 2351 9 is_stmt 0 view .LVU1712 4827 00f6 FFF7FEFF bl I2C_Enable_IRQ 4828 .LVL336: 2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4829 .loc 1 2354 9 is_stmt 1 view .LVU1713 2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4830 .loc 1 2354 13 is_stmt 0 view .LVU1714 4831 00fa 2268 ldr r2, [r4] 2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4832 .loc 1 2354 23 view .LVU1715 4833 00fc 1368 ldr r3, [r2] 2354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4834 .loc 1 2354 29 view .LVU1716 4835 00fe 43F48043 orr r3, r3, #16384 4836 0102 1360 str r3, [r2] 4837 0104 0CE0 b .L315 4838 .LVL337: 4839 .L311: 2374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4840 .loc 1 2374 7 is_stmt 1 view .LVU1717 2374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4841 .loc 1 2374 11 is_stmt 0 view .LVU1718 4842 0106 2268 ldr r2, [r4] 2374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4843 .loc 1 2374 21 view .LVU1719 4844 0108 5368 ldr r3, [r2, #4] 2374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4845 .loc 1 2374 27 view .LVU1720 4846 010a 23F40043 bic r3, r3, #32768 4847 010e 5360 str r3, [r2, #4] 2377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4848 .loc 1 2377 7 is_stmt 1 view .LVU1721 2377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4849 .loc 1 2377 7 view .LVU1722 4850 0110 0023 movs r3, #0 4851 0112 84F84030 strb r3, [r4, #64] 2377:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4852 .loc 1 2377 7 view .LVU1723 2383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4853 .loc 1 2383 7 view .LVU1724 4854 0116 4FF40041 mov r1, #32768 4855 .LVL338: 2383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4856 .loc 1 2383 7 is_stmt 0 view .LVU1725 4857 011a 2046 mov r0, r4 4858 .LVL339: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 245 2383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4859 .loc 1 2383 7 view .LVU1726 4860 011c FFF7FEFF bl I2C_Enable_IRQ 4861 .LVL340: 4862 .L315: 2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4863 .loc 1 2386 5 is_stmt 1 view .LVU1727 2386:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4864 .loc 1 2386 12 is_stmt 0 view .LVU1728 4865 0120 0020 movs r0, #0 4866 0122 BFE7 b .L308 4867 .LVL341: 4868 .L316: 4869 .cfi_def_cfa_offset 0 4870 .cfi_restore 4 4871 .cfi_restore 14 2390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 4872 .loc 1 2390 12 view .LVU1729 4873 0124 0220 movs r0, #2 4874 .LVL342: 2392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4875 .loc 1 2392 1 view .LVU1730 4876 0126 7047 bx lr 4877 .LVL343: 4878 .L317: 4879 .cfi_def_cfa_offset 8 4880 .cfi_offset 4, -8 4881 .cfi_offset 14, -4 2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4882 .loc 1 2278 5 discriminator 1 view .LVU1731 4883 0128 0220 movs r0, #2 4884 .LVL344: 2278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4885 .loc 1 2278 5 discriminator 1 view .LVU1732 4886 012a BBE7 b .L308 4887 .L327: 4888 .align 2 4889 .L326: 4890 012c 0000FFFF .word -65536 4891 0130 00000000 .word I2C_Slave_ISR_DMA 4892 0134 00000000 .word I2C_DMASlaveTransmitCplt 4893 0138 00000000 .word I2C_DMAError 4894 .cfi_endproc 4895 .LFE349: 4897 .section .text.HAL_I2C_Slave_Receive_DMA,"ax",%progbits 4898 .align 1 4899 .global HAL_I2C_Slave_Receive_DMA 4900 .syntax unified 4901 .thumb 4902 .thumb_func 4904 HAL_I2C_Slave_Receive_DMA: 4905 .LVL345: 4906 .LFB350: 2403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4907 .loc 1 2403 1 is_stmt 1 view -0 4908 .cfi_startproc 4909 @ args = 0, pretend = 0, frame = 0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 246 4910 @ frame_needed = 0, uses_anonymous_args = 0 2403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 4911 .loc 1 2403 1 is_stmt 0 view .LVU1734 4912 0000 38B5 push {r3, r4, r5, lr} 4913 .cfi_def_cfa_offset 16 4914 .cfi_offset 3, -16 4915 .cfi_offset 4, -12 4916 .cfi_offset 5, -8 4917 .cfi_offset 14, -4 2404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4918 .loc 1 2404 3 is_stmt 1 view .LVU1735 2406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4919 .loc 1 2406 3 view .LVU1736 2406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4920 .loc 1 2406 11 is_stmt 0 view .LVU1737 4921 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 2406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4922 .loc 1 2406 6 view .LVU1738 4923 0006 202B cmp r3, #32 4924 0008 65D1 bne .L334 4925 000a 0446 mov r4, r0 2408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4926 .loc 1 2408 5 is_stmt 1 view .LVU1739 2408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4927 .loc 1 2408 8 is_stmt 0 view .LVU1740 4928 000c 002A cmp r2, #0 4929 000e 18BF it ne 4930 0010 0029 cmpne r1, #0 4931 0012 3AD0 beq .L338 2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4932 .loc 1 2414 5 is_stmt 1 view .LVU1741 2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4933 .loc 1 2414 5 view .LVU1742 4934 0014 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 4935 0018 012B cmp r3, #1 4936 001a 5FD0 beq .L335 2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4937 .loc 1 2414 5 discriminator 2 view .LVU1743 4938 001c 0123 movs r3, #1 4939 001e 80F84030 strb r3, [r0, #64] 2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4940 .loc 1 2414 5 view .LVU1744 2416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4941 .loc 1 2416 5 view .LVU1745 2416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 4942 .loc 1 2416 23 is_stmt 0 view .LVU1746 4943 0022 2223 movs r3, #34 4944 0024 80F84130 strb r3, [r0, #65] 2417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4945 .loc 1 2417 5 is_stmt 1 view .LVU1747 2417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 4946 .loc 1 2417 23 is_stmt 0 view .LVU1748 4947 0028 2023 movs r3, #32 4948 002a 80F84230 strb r3, [r0, #66] 2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4949 .loc 1 2418 5 is_stmt 1 view .LVU1749 2418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 247 4950 .loc 1 2418 23 is_stmt 0 view .LVU1750 4951 002e 0023 movs r3, #0 4952 0030 4364 str r3, [r0, #68] 2421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4953 .loc 1 2421 5 is_stmt 1 view .LVU1751 2421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 4954 .loc 1 2421 23 is_stmt 0 view .LVU1752 4955 0032 4162 str r1, [r0, #36] 2422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4956 .loc 1 2422 5 is_stmt 1 view .LVU1753 2422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 4957 .loc 1 2422 23 is_stmt 0 view .LVU1754 4958 0034 4285 strh r2, [r0, #42] @ movhi 2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4959 .loc 1 2423 5 is_stmt 1 view .LVU1755 2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4960 .loc 1 2423 29 is_stmt 0 view .LVU1756 4961 0036 438D ldrh r3, [r0, #42] 2423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 4962 .loc 1 2423 23 view .LVU1757 4963 0038 0385 strh r3, [r0, #40] @ movhi 2424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4964 .loc 1 2424 5 is_stmt 1 view .LVU1758 2424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 4965 .loc 1 2424 23 is_stmt 0 view .LVU1759 4966 003a 294B ldr r3, .L340 4967 003c C362 str r3, [r0, #44] 2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4968 .loc 1 2425 5 is_stmt 1 view .LVU1760 2425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4969 .loc 1 2425 23 is_stmt 0 view .LVU1761 4970 003e 294B ldr r3, .L340+4 4971 0040 4363 str r3, [r0, #52] 2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4972 .loc 1 2427 5 is_stmt 1 view .LVU1762 2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4973 .loc 1 2427 13 is_stmt 0 view .LVU1763 4974 0042 C36B ldr r3, [r0, #60] 2427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 4975 .loc 1 2427 8 view .LVU1764 4976 0044 33B3 cbz r3, .L331 2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4977 .loc 1 2430 7 is_stmt 1 view .LVU1765 2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4978 .loc 1 2430 38 is_stmt 0 view .LVU1766 4979 0046 284A ldr r2, .L340+8 4980 .LVL346: 2430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4981 .loc 1 2430 38 view .LVU1767 4982 0048 DA63 str r2, [r3, #60] 2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4983 .loc 1 2433 7 is_stmt 1 view .LVU1768 2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4984 .loc 1 2433 11 is_stmt 0 view .LVU1769 4985 004a C36B ldr r3, [r0, #60] 2433:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4986 .loc 1 2433 39 view .LVU1770 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 248 4987 004c 274A ldr r2, .L340+12 4988 004e DA64 str r2, [r3, #76] 2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4989 .loc 1 2436 7 is_stmt 1 view .LVU1771 2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4990 .loc 1 2436 11 is_stmt 0 view .LVU1772 4991 0050 C26B ldr r2, [r0, #60] 2436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 4992 .loc 1 2436 42 view .LVU1773 4993 0052 0023 movs r3, #0 4994 0054 1364 str r3, [r2, #64] 2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4995 .loc 1 2437 7 is_stmt 1 view .LVU1774 2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4996 .loc 1 2437 11 is_stmt 0 view .LVU1775 4997 0056 C26B ldr r2, [r0, #60] 2437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 4998 .loc 1 2437 39 view .LVU1776 4999 0058 1365 str r3, [r2, #80] 2440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 5000 .loc 1 2440 7 is_stmt 1 view .LVU1777 2440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 5001 .loc 1 2440 69 is_stmt 0 view .LVU1778 5002 005a 0068 ldr r0, [r0] 5003 .LVL347: 2440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 5004 .loc 1 2440 23 view .LVU1779 5005 005c 238D ldrh r3, [r4, #40] 5006 005e 0A46 mov r2, r1 5007 0060 00F12401 add r1, r0, #36 5008 .LVL348: 2440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 5009 .loc 1 2440 23 view .LVU1780 5010 0064 E06B ldr r0, [r4, #60] 5011 0066 FFF7FEFF bl HAL_DMA_Start_IT 5012 .LVL349: 2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5013 .loc 1 2458 5 is_stmt 1 view .LVU1781 2458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5014 .loc 1 2458 8 is_stmt 0 view .LVU1782 5015 006a 0546 mov r5, r0 5016 006c 00B3 cbz r0, .L339 2478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5017 .loc 1 2478 7 is_stmt 1 view .LVU1783 2478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5018 .loc 1 2478 23 is_stmt 0 view .LVU1784 5019 006e 2823 movs r3, #40 5020 0070 84F84130 strb r3, [r4, #65] 2479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5021 .loc 1 2479 7 is_stmt 1 view .LVU1785 2479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5022 .loc 1 2479 23 is_stmt 0 view .LVU1786 5023 0074 0022 movs r2, #0 5024 0076 84F84220 strb r2, [r4, #66] 2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5025 .loc 1 2482 7 is_stmt 1 view .LVU1787 2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 249 5026 .loc 1 2482 11 is_stmt 0 view .LVU1788 5027 007a 636C ldr r3, [r4, #68] 2482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5028 .loc 1 2482 23 view .LVU1789 5029 007c 43F01003 orr r3, r3, #16 5030 0080 6364 str r3, [r4, #68] 2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5031 .loc 1 2485 7 is_stmt 1 view .LVU1790 2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5032 .loc 1 2485 7 view .LVU1791 5033 0082 84F84020 strb r2, [r4, #64] 2485:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5034 .loc 1 2485 7 view .LVU1792 2487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5035 .loc 1 2487 7 view .LVU1793 2487:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5036 .loc 1 2487 14 is_stmt 0 view .LVU1794 5037 0086 0125 movs r5, #1 5038 0088 26E0 b .L329 5039 .LVL350: 5040 .L338: 2410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5041 .loc 1 2410 7 is_stmt 1 view .LVU1795 2410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5042 .loc 1 2410 23 is_stmt 0 view .LVU1796 5043 008a 4FF40073 mov r3, #512 5044 008e 4364 str r3, [r0, #68] 2411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5045 .loc 1 2411 7 is_stmt 1 view .LVU1797 2411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5046 .loc 1 2411 15 is_stmt 0 view .LVU1798 5047 0090 0125 movs r5, #1 5048 0092 21E0 b .L329 5049 .L331: 2446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5050 .loc 1 2446 7 is_stmt 1 view .LVU1799 2446:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5051 .loc 1 2446 23 is_stmt 0 view .LVU1800 5052 0094 2823 movs r3, #40 5053 0096 80F84130 strb r3, [r0, #65] 2447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5054 .loc 1 2447 7 is_stmt 1 view .LVU1801 2447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5055 .loc 1 2447 23 is_stmt 0 view .LVU1802 5056 009a 0022 movs r2, #0 5057 .LVL351: 2447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5058 .loc 1 2447 23 view .LVU1803 5059 009c 80F84220 strb r2, [r0, #66] 2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5060 .loc 1 2450 7 is_stmt 1 view .LVU1804 2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5061 .loc 1 2450 11 is_stmt 0 view .LVU1805 5062 00a0 436C ldr r3, [r0, #68] 2450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5063 .loc 1 2450 23 view .LVU1806 5064 00a2 43F08003 orr r3, r3, #128 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 250 5065 00a6 4364 str r3, [r0, #68] 2453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5066 .loc 1 2453 7 is_stmt 1 view .LVU1807 2453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5067 .loc 1 2453 7 view .LVU1808 5068 00a8 80F84020 strb r2, [r0, #64] 2453:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5069 .loc 1 2453 7 view .LVU1809 2455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5070 .loc 1 2455 7 view .LVU1810 2455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5071 .loc 1 2455 14 is_stmt 0 view .LVU1811 5072 00ac 0125 movs r5, #1 5073 00ae 13E0 b .L329 5074 .LVL352: 5075 .L339: 2461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5076 .loc 1 2461 7 is_stmt 1 view .LVU1812 2461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5077 .loc 1 2461 11 is_stmt 0 view .LVU1813 5078 00b0 2268 ldr r2, [r4] 2461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5079 .loc 1 2461 21 view .LVU1814 5080 00b2 5368 ldr r3, [r2, #4] 2461:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5081 .loc 1 2461 27 view .LVU1815 5082 00b4 23F40043 bic r3, r3, #32768 5083 00b8 5360 str r3, [r2, #4] 2464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5084 .loc 1 2464 7 is_stmt 1 view .LVU1816 2464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5085 .loc 1 2464 7 view .LVU1817 5086 00ba 0023 movs r3, #0 5087 00bc 84F84030 strb r3, [r4, #64] 2464:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5088 .loc 1 2464 7 view .LVU1818 2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5089 .loc 1 2470 7 view .LVU1819 5090 00c0 4FF40041 mov r1, #32768 5091 00c4 2046 mov r0, r4 5092 .LVL353: 2470:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5093 .loc 1 2470 7 is_stmt 0 view .LVU1820 5094 00c6 FFF7FEFF bl I2C_Enable_IRQ 5095 .LVL354: 2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5096 .loc 1 2473 7 is_stmt 1 view .LVU1821 2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5097 .loc 1 2473 11 is_stmt 0 view .LVU1822 5098 00ca 2268 ldr r2, [r4] 2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5099 .loc 1 2473 21 view .LVU1823 5100 00cc 1368 ldr r3, [r2] 2473:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5101 .loc 1 2473 27 view .LVU1824 5102 00ce 43F40043 orr r3, r3, #32768 5103 00d2 1360 str r3, [r2] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 251 2490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5104 .loc 1 2490 5 is_stmt 1 view .LVU1825 2490:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5105 .loc 1 2490 12 is_stmt 0 view .LVU1826 5106 00d4 00E0 b .L329 5107 .LVL355: 5108 .L334: 2494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5109 .loc 1 2494 12 view .LVU1827 5110 00d6 0225 movs r5, #2 5111 .LVL356: 5112 .L329: 2496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5113 .loc 1 2496 1 view .LVU1828 5114 00d8 2846 mov r0, r5 5115 00da 38BD pop {r3, r4, r5, pc} 5116 .LVL357: 5117 .L335: 2414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5118 .loc 1 2414 5 discriminator 1 view .LVU1829 5119 00dc 0225 movs r5, #2 5120 00de FBE7 b .L329 5121 .L341: 5122 .align 2 5123 .L340: 5124 00e0 0000FFFF .word -65536 5125 00e4 00000000 .word I2C_Slave_ISR_DMA 5126 00e8 00000000 .word I2C_DMASlaveReceiveCplt 5127 00ec 00000000 .word I2C_DMAError 5128 .cfi_endproc 5129 .LFE350: 5131 .section .text.HAL_I2C_Mem_Write,"ax",%progbits 5132 .align 1 5133 .global HAL_I2C_Mem_Write 5134 .syntax unified 5135 .thumb 5136 .thumb_func 5138 HAL_I2C_Mem_Write: 5139 .LVL358: 5140 .LFB351: 2513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 5141 .loc 1 2513 1 is_stmt 1 view -0 5142 .cfi_startproc 5143 @ args = 12, pretend = 0, frame = 0 5144 @ frame_needed = 0, uses_anonymous_args = 0 2513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 5145 .loc 1 2513 1 is_stmt 0 view .LVU1831 5146 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5147 .cfi_def_cfa_offset 36 5148 .cfi_offset 4, -36 5149 .cfi_offset 5, -32 5150 .cfi_offset 6, -28 5151 .cfi_offset 7, -24 5152 .cfi_offset 8, -20 5153 .cfi_offset 9, -16 5154 .cfi_offset 10, -12 5155 .cfi_offset 11, -8 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 252 5156 .cfi_offset 14, -4 5157 0004 83B0 sub sp, sp, #12 5158 .cfi_def_cfa_offset 48 5159 0006 0D46 mov r5, r1 5160 0008 BDF834A0 ldrh r10, [sp, #52] 5161 000c 0E9F ldr r7, [sp, #56] 2514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5162 .loc 1 2514 3 is_stmt 1 view .LVU1832 2517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5163 .loc 1 2517 3 view .LVU1833 2519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5164 .loc 1 2519 3 view .LVU1834 2519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5165 .loc 1 2519 11 is_stmt 0 view .LVU1835 5166 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5167 .LVL359: 2519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5168 .loc 1 2519 6 view .LVU1836 5169 0012 2029 cmp r1, #32 5170 0014 40F0BC80 bne .L351 5171 0018 0446 mov r4, r0 5172 001a 9146 mov r9, r2 5173 001c 9846 mov r8, r3 2521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5174 .loc 1 2521 5 is_stmt 1 view .LVU1837 2521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5175 .loc 1 2521 8 is_stmt 0 view .LVU1838 5176 001e 0C9B ldr r3, [sp, #48] 5177 .LVL360: 2521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5178 .loc 1 2521 8 view .LVU1839 5179 0020 BAF1000F cmp r10, #0 5180 0024 18BF it ne 5181 0026 002B cmpne r3, #0 5182 0028 16D0 beq .L358 2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5183 .loc 1 2528 5 is_stmt 1 view .LVU1840 2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5184 .loc 1 2528 5 view .LVU1841 5185 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5186 002e 012B cmp r3, #1 5187 0030 00F0B280 beq .L352 2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5188 .loc 1 2528 5 discriminator 2 view .LVU1842 5189 0034 4FF0010B mov fp, #1 5190 0038 80F840B0 strb fp, [r0, #64] 2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5191 .loc 1 2528 5 view .LVU1843 2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5192 .loc 1 2531 5 view .LVU1844 2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5193 .loc 1 2531 17 is_stmt 0 view .LVU1845 5194 003c FFF7FEFF bl HAL_GetTick 5195 .LVL361: 2531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5196 .loc 1 2531 17 view .LVU1846 5197 0040 0646 mov r6, r0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 253 5198 .LVL362: 2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5199 .loc 1 2533 5 is_stmt 1 view .LVU1847 2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5200 .loc 1 2533 9 is_stmt 0 view .LVU1848 5201 0042 0090 str r0, [sp] 5202 0044 1923 movs r3, #25 5203 0046 5A46 mov r2, fp 5204 0048 4FF40041 mov r1, #32768 5205 004c 2046 mov r0, r4 5206 .LVL363: 2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5207 .loc 1 2533 9 view .LVU1849 5208 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5209 .LVL364: 2533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5210 .loc 1 2533 8 discriminator 1 view .LVU1850 5211 0052 30B1 cbz r0, .L359 2535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5212 .loc 1 2535 14 view .LVU1851 5213 0054 0120 movs r0, #1 5214 0056 9CE0 b .L343 5215 .LVL365: 5216 .L358: 2523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5217 .loc 1 2523 7 is_stmt 1 view .LVU1852 2523:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5218 .loc 1 2523 23 is_stmt 0 view .LVU1853 5219 0058 4FF40073 mov r3, #512 5220 005c 4364 str r3, [r0, #68] 2524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5221 .loc 1 2524 7 is_stmt 1 view .LVU1854 2524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5222 .loc 1 2524 15 is_stmt 0 view .LVU1855 5223 005e 0120 movs r0, #1 5224 .LVL366: 2524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5225 .loc 1 2524 15 view .LVU1856 5226 0060 97E0 b .L343 5227 .LVL367: 5228 .L359: 2538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5229 .loc 1 2538 5 is_stmt 1 view .LVU1857 2538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5230 .loc 1 2538 21 is_stmt 0 view .LVU1858 5231 0062 2123 movs r3, #33 5232 0064 84F84130 strb r3, [r4, #65] 2539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5233 .loc 1 2539 5 is_stmt 1 view .LVU1859 2539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5234 .loc 1 2539 21 is_stmt 0 view .LVU1860 5235 0068 4023 movs r3, #64 5236 006a 84F84230 strb r3, [r4, #66] 2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5237 .loc 1 2540 5 is_stmt 1 view .LVU1861 2540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5238 .loc 1 2540 21 is_stmt 0 view .LVU1862 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 254 5239 006e 0023 movs r3, #0 5240 0070 6364 str r3, [r4, #68] 2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5241 .loc 1 2543 5 is_stmt 1 view .LVU1863 2543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5242 .loc 1 2543 21 is_stmt 0 view .LVU1864 5243 0072 0C9A ldr r2, [sp, #48] 5244 0074 6262 str r2, [r4, #36] 2544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5245 .loc 1 2544 5 is_stmt 1 view .LVU1865 2544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5246 .loc 1 2544 21 is_stmt 0 view .LVU1866 5247 0076 A4F82AA0 strh r10, [r4, #42] @ movhi 2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5248 .loc 1 2545 5 is_stmt 1 view .LVU1867 2545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5249 .loc 1 2545 21 is_stmt 0 view .LVU1868 5250 007a 6363 str r3, [r4, #52] 2548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5251 .loc 1 2548 5 is_stmt 1 view .LVU1869 2548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5252 .loc 1 2548 9 is_stmt 0 view .LVU1870 5253 007c 0196 str r6, [sp, #4] 5254 007e 0097 str r7, [sp] 5255 0080 4346 mov r3, r8 5256 0082 4A46 mov r2, r9 5257 0084 2946 mov r1, r5 5258 0086 2046 mov r0, r4 5259 0088 FFF7FEFF bl I2C_RequestMemoryWrite 5260 .LVL368: 2548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5261 .loc 1 2548 8 discriminator 1 view .LVU1871 5262 008c 70B9 cbnz r0, .L360 2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5263 .loc 1 2556 5 is_stmt 1 view .LVU1872 2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5264 .loc 1 2556 13 is_stmt 0 view .LVU1873 5265 008e 638D ldrh r3, [r4, #42] 5266 0090 9BB2 uxth r3, r3 2556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5267 .loc 1 2556 8 view .LVU1874 5268 0092 FF2B cmp r3, #255 5269 0094 0FD9 bls .L346 2558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5270 .loc 1 2558 7 is_stmt 1 view .LVU1875 2558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_STARTST 5271 .loc 1 2558 22 is_stmt 0 view .LVU1876 5272 0096 FF22 movs r2, #255 5273 0098 2285 strh r2, [r4, #40] @ movhi 2559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5274 .loc 1 2559 7 is_stmt 1 view .LVU1877 5275 009a 0023 movs r3, #0 5276 009c 0093 str r3, [sp] 5277 009e 4FF08073 mov r3, #16777216 5278 00a2 2946 mov r1, r5 5279 00a4 2046 mov r0, r4 5280 00a6 FFF7FEFF bl I2C_TransferConfig ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 255 5281 .LVL369: 5282 00aa 21E0 b .L350 5283 .L360: 2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5284 .loc 1 2551 7 view .LVU1878 2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5285 .loc 1 2551 7 view .LVU1879 5286 00ac 0023 movs r3, #0 5287 00ae 84F84030 strb r3, [r4, #64] 2551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5288 .loc 1 2551 7 view .LVU1880 2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5289 .loc 1 2552 7 view .LVU1881 2552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5290 .loc 1 2552 14 is_stmt 0 view .LVU1882 5291 00b2 5846 mov r0, fp 5292 00b4 6DE0 b .L343 5293 .L346: 2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5294 .loc 1 2563 7 is_stmt 1 view .LVU1883 2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5295 .loc 1 2563 28 is_stmt 0 view .LVU1884 5296 00b6 628D ldrh r2, [r4, #42] 5297 00b8 92B2 uxth r2, r2 2563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, I2C_NO_STARTS 5298 .loc 1 2563 22 view .LVU1885 5299 00ba 2285 strh r2, [r4, #40] @ movhi 2564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5300 .loc 1 2564 7 is_stmt 1 view .LVU1886 5301 00bc 0023 movs r3, #0 5302 00be 0093 str r3, [sp] 5303 00c0 4FF00073 mov r3, #33554432 5304 00c4 D2B2 uxtb r2, r2 5305 00c6 2946 mov r1, r5 5306 00c8 2046 mov r0, r4 5307 00ca FFF7FEFF bl I2C_TransferConfig 5308 .LVL370: 5309 00ce 0FE0 b .L350 5310 .L349: 2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5311 .loc 1 2600 11 view .LVU1887 2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5312 .loc 1 2600 32 is_stmt 0 view .LVU1888 5313 00d0 628D ldrh r2, [r4, #42] 5314 00d2 92B2 uxth r2, r2 2600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5315 .loc 1 2600 26 view .LVU1889 5316 00d4 2285 strh r2, [r4, #40] @ movhi 2601:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5317 .loc 1 2601 11 is_stmt 1 view .LVU1890 5318 00d6 0023 movs r3, #0 5319 00d8 0093 str r3, [sp] 5320 00da 4FF00073 mov r3, #33554432 5321 00de D2B2 uxtb r2, r2 5322 00e0 2946 mov r1, r5 5323 00e2 2046 mov r0, r4 5324 00e4 FFF7FEFF bl I2C_TransferConfig ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 256 5325 .LVL371: 5326 .L348: 2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5327 .loc 1 2606 30 view .LVU1891 2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5328 .loc 1 2606 18 is_stmt 0 view .LVU1892 5329 00e8 638D ldrh r3, [r4, #42] 5330 00ea 9BB2 uxth r3, r3 2606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5331 .loc 1 2606 30 view .LVU1893 5332 00ec 002B cmp r3, #0 5333 00ee 33D0 beq .L361 5334 .L350: 2567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5335 .loc 1 2567 5 is_stmt 1 view .LVU1894 2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5336 .loc 1 2570 7 view .LVU1895 2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5337 .loc 1 2570 11 is_stmt 0 view .LVU1896 5338 00f0 3246 mov r2, r6 5339 00f2 3946 mov r1, r7 5340 00f4 2046 mov r0, r4 5341 00f6 FFF7FEFF bl I2C_WaitOnTXISFlagUntilTimeout 5342 .LVL372: 2570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5343 .loc 1 2570 10 discriminator 1 view .LVU1897 5344 00fa 0028 cmp r0, #0 5345 00fc 4ED1 bne .L354 2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5346 .loc 1 2576 7 is_stmt 1 view .LVU1898 2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5347 .loc 1 2576 35 is_stmt 0 view .LVU1899 5348 00fe 626A ldr r2, [r4, #36] 2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5349 .loc 1 2576 11 view .LVU1900 5350 0100 2368 ldr r3, [r4] 2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5351 .loc 1 2576 30 view .LVU1901 5352 0102 1278 ldrb r2, [r2] @ zero_extendqisi2 2576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5353 .loc 1 2576 28 view .LVU1902 5354 0104 9A62 str r2, [r3, #40] 2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5355 .loc 1 2579 7 is_stmt 1 view .LVU1903 2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5356 .loc 1 2579 11 is_stmt 0 view .LVU1904 5357 0106 636A ldr r3, [r4, #36] 2579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5358 .loc 1 2579 21 view .LVU1905 5359 0108 0133 adds r3, r3, #1 5360 010a 6362 str r3, [r4, #36] 2581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5361 .loc 1 2581 7 is_stmt 1 view .LVU1906 2581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5362 .loc 1 2581 11 is_stmt 0 view .LVU1907 5363 010c 638D ldrh r3, [r4, #42] 5364 010e 9BB2 uxth r3, r3 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 257 2581:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 5365 .loc 1 2581 22 view .LVU1908 5366 0110 013B subs r3, r3, #1 5367 0112 9BB2 uxth r3, r3 5368 0114 6385 strh r3, [r4, #42] @ movhi 2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5369 .loc 1 2582 7 is_stmt 1 view .LVU1909 2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5370 .loc 1 2582 11 is_stmt 0 view .LVU1910 5371 0116 238D ldrh r3, [r4, #40] 2582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5372 .loc 1 2582 21 view .LVU1911 5373 0118 013B subs r3, r3, #1 5374 011a 9BB2 uxth r3, r3 5375 011c 2385 strh r3, [r4, #40] @ movhi 2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5376 .loc 1 2584 7 is_stmt 1 view .LVU1912 2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5377 .loc 1 2584 16 is_stmt 0 view .LVU1913 5378 011e 628D ldrh r2, [r4, #42] 5379 0120 92B2 uxth r2, r2 2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5380 .loc 1 2584 10 view .LVU1914 5381 0122 002A cmp r2, #0 5382 0124 E0D0 beq .L348 2584:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5383 .loc 1 2584 35 discriminator 1 view .LVU1915 5384 0126 002B cmp r3, #0 5385 0128 DED1 bne .L348 2587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5386 .loc 1 2587 9 is_stmt 1 view .LVU1916 2587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5387 .loc 1 2587 13 is_stmt 0 view .LVU1917 5388 012a 0096 str r6, [sp] 5389 012c 3B46 mov r3, r7 5390 012e 0022 movs r2, #0 5391 0130 8021 movs r1, #128 5392 0132 2046 mov r0, r4 5393 0134 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5394 .LVL373: 2587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5395 .loc 1 2587 12 discriminator 1 view .LVU1918 5396 0138 90BB cbnz r0, .L355 2592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5397 .loc 1 2592 9 is_stmt 1 view .LVU1919 2592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5398 .loc 1 2592 17 is_stmt 0 view .LVU1920 5399 013a 638D ldrh r3, [r4, #42] 5400 013c 9BB2 uxth r3, r3 2592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5401 .loc 1 2592 12 view .LVU1921 5402 013e FF2B cmp r3, #255 5403 0140 C6D9 bls .L349 2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5404 .loc 1 2594 11 is_stmt 1 view .LVU1922 2594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5405 .loc 1 2594 26 is_stmt 0 view .LVU1923 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 258 5406 0142 FF22 movs r2, #255 5407 0144 2285 strh r2, [r4, #40] @ movhi 2595:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5408 .loc 1 2595 11 is_stmt 1 view .LVU1924 5409 0146 0023 movs r3, #0 5410 0148 0093 str r3, [sp] 5411 014a 4FF08073 mov r3, #16777216 5412 014e 2946 mov r1, r5 5413 0150 2046 mov r0, r4 5414 0152 FFF7FEFF bl I2C_TransferConfig 5415 .LVL374: 5416 0156 C7E7 b .L348 5417 .L361: 2610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5418 .loc 1 2610 5 view .LVU1925 2610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5419 .loc 1 2610 9 is_stmt 0 view .LVU1926 5420 0158 3246 mov r2, r6 5421 015a 3946 mov r1, r7 5422 015c 2046 mov r0, r4 5423 015e FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5424 .LVL375: 2610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5425 .loc 1 2610 8 discriminator 1 view .LVU1927 5426 0162 F8B9 cbnz r0, .L356 2616:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5427 .loc 1 2616 5 is_stmt 1 view .LVU1928 5428 0164 2368 ldr r3, [r4] 5429 0166 2022 movs r2, #32 5430 0168 DA61 str r2, [r3, #28] 2619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5431 .loc 1 2619 5 view .LVU1929 5432 016a 2168 ldr r1, [r4] 5433 016c 4B68 ldr r3, [r1, #4] 5434 016e 23F0FF73 bic r3, r3, #33423360 5435 0172 23F48B33 bic r3, r3, #71168 5436 0176 23F4FF73 bic r3, r3, #510 5437 017a 23F00103 bic r3, r3, #1 5438 017e 4B60 str r3, [r1, #4] 2621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5439 .loc 1 2621 5 view .LVU1930 2621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5440 .loc 1 2621 17 is_stmt 0 view .LVU1931 5441 0180 84F84120 strb r2, [r4, #65] 2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5442 .loc 1 2622 5 is_stmt 1 view .LVU1932 2622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5443 .loc 1 2622 17 is_stmt 0 view .LVU1933 5444 0184 0023 movs r3, #0 5445 0186 84F84230 strb r3, [r4, #66] 2625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5446 .loc 1 2625 5 is_stmt 1 view .LVU1934 2625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5447 .loc 1 2625 5 view .LVU1935 5448 018a 84F84030 strb r3, [r4, #64] 2625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5449 .loc 1 2625 5 view .LVU1936 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 259 2627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5450 .loc 1 2627 5 view .LVU1937 2627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5451 .loc 1 2627 12 is_stmt 0 view .LVU1938 5452 018e 00E0 b .L343 5453 .LVL376: 5454 .L351: 2631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5455 .loc 1 2631 12 view .LVU1939 5456 0190 0220 movs r0, #2 5457 .LVL377: 5458 .L343: 2633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5459 .loc 1 2633 1 view .LVU1940 5460 0192 03B0 add sp, sp, #12 5461 .cfi_remember_state 5462 .cfi_def_cfa_offset 36 5463 @ sp needed 5464 0194 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5465 .LVL378: 5466 .L352: 5467 .cfi_restore_state 2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5468 .loc 1 2528 5 discriminator 1 view .LVU1941 5469 0198 0220 movs r0, #2 5470 .LVL379: 2528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5471 .loc 1 2528 5 discriminator 1 view .LVU1942 5472 019a FAE7 b .L343 5473 .LVL380: 5474 .L354: 2572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5475 .loc 1 2572 16 view .LVU1943 5476 019c 0120 movs r0, #1 5477 019e F8E7 b .L343 5478 .L355: 2589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5479 .loc 1 2589 18 view .LVU1944 5480 01a0 0120 movs r0, #1 5481 01a2 F6E7 b .L343 5482 .L356: 2612:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5483 .loc 1 2612 14 view .LVU1945 5484 01a4 0120 movs r0, #1 5485 01a6 F4E7 b .L343 5486 .cfi_endproc 5487 .LFE351: 5489 .section .text.HAL_I2C_Mem_Read,"ax",%progbits 5490 .align 1 5491 .global HAL_I2C_Mem_Read 5492 .syntax unified 5493 .thumb 5494 .thumb_func 5496 HAL_I2C_Mem_Read: 5497 .LVL381: 5498 .LFB352: 2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 260 5499 .loc 1 2650 1 is_stmt 1 view -0 5500 .cfi_startproc 5501 @ args = 12, pretend = 0, frame = 0 5502 @ frame_needed = 0, uses_anonymous_args = 0 2650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 5503 .loc 1 2650 1 is_stmt 0 view .LVU1947 5504 0000 2DE9F04F push {r4, r5, r6, r7, r8, r9, r10, fp, lr} 5505 .cfi_def_cfa_offset 36 5506 .cfi_offset 4, -36 5507 .cfi_offset 5, -32 5508 .cfi_offset 6, -28 5509 .cfi_offset 7, -24 5510 .cfi_offset 8, -20 5511 .cfi_offset 9, -16 5512 .cfi_offset 10, -12 5513 .cfi_offset 11, -8 5514 .cfi_offset 14, -4 5515 0004 83B0 sub sp, sp, #12 5516 .cfi_def_cfa_offset 48 5517 0006 0D46 mov r5, r1 5518 0008 BDF834A0 ldrh r10, [sp, #52] 5519 000c 0E9F ldr r7, [sp, #56] 2651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5520 .loc 1 2651 3 is_stmt 1 view .LVU1948 2654:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5521 .loc 1 2654 3 view .LVU1949 2656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5522 .loc 1 2656 3 view .LVU1950 2656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5523 .loc 1 2656 11 is_stmt 0 view .LVU1951 5524 000e 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 5525 .LVL382: 2656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5526 .loc 1 2656 6 view .LVU1952 5527 0012 2029 cmp r1, #32 5528 0014 40F0BD80 bne .L371 5529 0018 0446 mov r4, r0 5530 001a 9146 mov r9, r2 5531 001c 9846 mov r8, r3 2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5532 .loc 1 2658 5 is_stmt 1 view .LVU1953 2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5533 .loc 1 2658 8 is_stmt 0 view .LVU1954 5534 001e 0C9B ldr r3, [sp, #48] 5535 .LVL383: 2658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5536 .loc 1 2658 8 view .LVU1955 5537 0020 BAF1000F cmp r10, #0 5538 0024 18BF it ne 5539 0026 002B cmpne r3, #0 5540 0028 16D0 beq .L378 2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5541 .loc 1 2665 5 is_stmt 1 view .LVU1956 2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5542 .loc 1 2665 5 view .LVU1957 5543 002a 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 5544 002e 012B cmp r3, #1 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 261 5545 0030 00F0B380 beq .L372 2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5546 .loc 1 2665 5 discriminator 2 view .LVU1958 5547 0034 4FF0010B mov fp, #1 5548 0038 80F840B0 strb fp, [r0, #64] 2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5549 .loc 1 2665 5 view .LVU1959 2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5550 .loc 1 2668 5 view .LVU1960 2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5551 .loc 1 2668 17 is_stmt 0 view .LVU1961 5552 003c FFF7FEFF bl HAL_GetTick 5553 .LVL384: 2668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5554 .loc 1 2668 17 view .LVU1962 5555 0040 0646 mov r6, r0 5556 .LVL385: 2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5557 .loc 1 2670 5 is_stmt 1 view .LVU1963 2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5558 .loc 1 2670 9 is_stmt 0 view .LVU1964 5559 0042 0090 str r0, [sp] 5560 0044 1923 movs r3, #25 5561 0046 5A46 mov r2, fp 5562 0048 4FF40041 mov r1, #32768 5563 004c 2046 mov r0, r4 5564 .LVL386: 2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5565 .loc 1 2670 9 view .LVU1965 5566 004e FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5567 .LVL387: 2670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5568 .loc 1 2670 8 discriminator 1 view .LVU1966 5569 0052 30B1 cbz r0, .L379 2672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5570 .loc 1 2672 14 view .LVU1967 5571 0054 0120 movs r0, #1 5572 0056 9DE0 b .L363 5573 .LVL388: 5574 .L378: 2660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5575 .loc 1 2660 7 is_stmt 1 view .LVU1968 2660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5576 .loc 1 2660 23 is_stmt 0 view .LVU1969 5577 0058 4FF40073 mov r3, #512 5578 005c 4364 str r3, [r0, #68] 2661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5579 .loc 1 2661 7 is_stmt 1 view .LVU1970 2661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5580 .loc 1 2661 15 is_stmt 0 view .LVU1971 5581 005e 0120 movs r0, #1 5582 .LVL389: 2661:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5583 .loc 1 2661 15 view .LVU1972 5584 0060 98E0 b .L363 5585 .LVL390: 5586 .L379: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 262 2675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5587 .loc 1 2675 5 is_stmt 1 view .LVU1973 2675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5588 .loc 1 2675 21 is_stmt 0 view .LVU1974 5589 0062 2223 movs r3, #34 5590 0064 84F84130 strb r3, [r4, #65] 2676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5591 .loc 1 2676 5 is_stmt 1 view .LVU1975 2676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5592 .loc 1 2676 21 is_stmt 0 view .LVU1976 5593 0068 4023 movs r3, #64 5594 006a 84F84230 strb r3, [r4, #66] 2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5595 .loc 1 2677 5 is_stmt 1 view .LVU1977 2677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5596 .loc 1 2677 21 is_stmt 0 view .LVU1978 5597 006e 0023 movs r3, #0 5598 0070 6364 str r3, [r4, #68] 2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5599 .loc 1 2680 5 is_stmt 1 view .LVU1979 2680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5600 .loc 1 2680 21 is_stmt 0 view .LVU1980 5601 0072 0C9A ldr r2, [sp, #48] 5602 0074 6262 str r2, [r4, #36] 2681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5603 .loc 1 2681 5 is_stmt 1 view .LVU1981 2681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 5604 .loc 1 2681 21 is_stmt 0 view .LVU1982 5605 0076 A4F82AA0 strh r10, [r4, #42] @ movhi 2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5606 .loc 1 2682 5 is_stmt 1 view .LVU1983 2682:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5607 .loc 1 2682 21 is_stmt 0 view .LVU1984 5608 007a 6363 str r3, [r4, #52] 2685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5609 .loc 1 2685 5 is_stmt 1 view .LVU1985 2685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5610 .loc 1 2685 9 is_stmt 0 view .LVU1986 5611 007c 0196 str r6, [sp, #4] 5612 007e 0097 str r7, [sp] 5613 0080 4346 mov r3, r8 5614 0082 4A46 mov r2, r9 5615 0084 2946 mov r1, r5 5616 0086 2046 mov r0, r4 5617 0088 FFF7FEFF bl I2C_RequestMemoryRead 5618 .LVL391: 2685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5619 .loc 1 2685 8 discriminator 1 view .LVU1987 5620 008c 70B9 cbnz r0, .L380 2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5621 .loc 1 2694 5 is_stmt 1 view .LVU1988 2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5622 .loc 1 2694 13 is_stmt 0 view .LVU1989 5623 008e 638D ldrh r3, [r4, #42] 5624 0090 9BB2 uxth r3, r3 2694:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5625 .loc 1 2694 8 view .LVU1990 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 263 5626 0092 FF2B cmp r3, #255 5627 0094 0FD9 bls .L366 2696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5628 .loc 1 2696 7 is_stmt 1 view .LVU1991 2696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, 5629 .loc 1 2696 22 is_stmt 0 view .LVU1992 5630 0096 FF22 movs r2, #255 5631 0098 2285 strh r2, [r4, #40] @ movhi 2697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5632 .loc 1 2697 7 is_stmt 1 view .LVU1993 5633 009a 444B ldr r3, .L382 5634 009c 0093 str r3, [sp] 5635 009e 4FF08073 mov r3, #16777216 5636 00a2 2946 mov r1, r5 5637 00a4 2046 mov r0, r4 5638 00a6 FFF7FEFF bl I2C_TransferConfig 5639 .LVL392: 5640 00aa 21E0 b .L370 5641 .L380: 2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5642 .loc 1 2688 7 view .LVU1994 2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5643 .loc 1 2688 7 view .LVU1995 5644 00ac 0023 movs r3, #0 5645 00ae 84F84030 strb r3, [r4, #64] 2688:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5646 .loc 1 2688 7 view .LVU1996 2689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5647 .loc 1 2689 7 view .LVU1997 2689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5648 .loc 1 2689 14 is_stmt 0 view .LVU1998 5649 00b2 5846 mov r0, fp 5650 00b4 6EE0 b .L363 5651 .L366: 2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5652 .loc 1 2702 7 is_stmt 1 view .LVU1999 2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5653 .loc 1 2702 28 is_stmt 0 view .LVU2000 5654 00b6 628D ldrh r2, [r4, #42] 5655 00b8 92B2 uxth r2, r2 2702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5656 .loc 1 2702 22 view .LVU2001 5657 00ba 2285 strh r2, [r4, #40] @ movhi 2703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 5658 .loc 1 2703 7 is_stmt 1 view .LVU2002 5659 00bc 3B4B ldr r3, .L382 5660 00be 0093 str r3, [sp] 5661 00c0 4FF00073 mov r3, #33554432 5662 00c4 D2B2 uxtb r2, r2 5663 00c6 2946 mov r1, r5 5664 00c8 2046 mov r0, r4 5665 00ca FFF7FEFF bl I2C_TransferConfig 5666 .LVL393: 5667 00ce 0FE0 b .L370 5668 .L369: 2740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5669 .loc 1 2740 11 view .LVU2003 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 264 2740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5670 .loc 1 2740 32 is_stmt 0 view .LVU2004 5671 00d0 628D ldrh r2, [r4, #42] 5672 00d2 92B2 uxth r2, r2 2740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t)hi2c->XferSize, I2C_AUTOEND_MODE, 5673 .loc 1 2740 26 view .LVU2005 5674 00d4 2285 strh r2, [r4, #40] @ movhi 2741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5675 .loc 1 2741 11 is_stmt 1 view .LVU2006 5676 00d6 0023 movs r3, #0 5677 00d8 0093 str r3, [sp] 5678 00da 4FF00073 mov r3, #33554432 5679 00de D2B2 uxtb r2, r2 5680 00e0 2946 mov r1, r5 5681 00e2 2046 mov r0, r4 5682 00e4 FFF7FEFF bl I2C_TransferConfig 5683 .LVL394: 5684 .L368: 2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5685 .loc 1 2745 30 view .LVU2007 2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5686 .loc 1 2745 18 is_stmt 0 view .LVU2008 5687 00e8 638D ldrh r3, [r4, #42] 5688 00ea 9BB2 uxth r3, r3 2745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5689 .loc 1 2745 30 view .LVU2009 5690 00ec 002B cmp r3, #0 5691 00ee 34D0 beq .L381 5692 .L370: 2707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5693 .loc 1 2707 5 is_stmt 1 view .LVU2010 2710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5694 .loc 1 2710 7 view .LVU2011 2710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5695 .loc 1 2710 11 is_stmt 0 view .LVU2012 5696 00f0 0096 str r6, [sp] 5697 00f2 3B46 mov r3, r7 5698 00f4 0022 movs r2, #0 5699 00f6 0421 movs r1, #4 5700 00f8 2046 mov r0, r4 5701 00fa FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5702 .LVL395: 2710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5703 .loc 1 2710 10 discriminator 1 view .LVU2013 5704 00fe 0028 cmp r0, #0 5705 0100 4DD1 bne .L374 2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5706 .loc 1 2716 7 is_stmt 1 view .LVU2014 2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5707 .loc 1 2716 38 is_stmt 0 view .LVU2015 5708 0102 2368 ldr r3, [r4] 2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5709 .loc 1 2716 48 view .LVU2016 5710 0104 5A6A ldr r2, [r3, #36] 2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5711 .loc 1 2716 12 view .LVU2017 5712 0106 636A ldr r3, [r4, #36] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 265 2716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5713 .loc 1 2716 23 view .LVU2018 5714 0108 1A70 strb r2, [r3] 2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5715 .loc 1 2719 7 is_stmt 1 view .LVU2019 2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5716 .loc 1 2719 11 is_stmt 0 view .LVU2020 5717 010a 636A ldr r3, [r4, #36] 2719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5718 .loc 1 2719 21 view .LVU2021 5719 010c 0133 adds r3, r3, #1 5720 010e 6362 str r3, [r4, #36] 2721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5721 .loc 1 2721 7 is_stmt 1 view .LVU2022 2721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5722 .loc 1 2721 11 is_stmt 0 view .LVU2023 5723 0110 228D ldrh r2, [r4, #40] 2721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 5724 .loc 1 2721 21 view .LVU2024 5725 0112 013A subs r2, r2, #1 5726 0114 92B2 uxth r2, r2 5727 0116 2285 strh r2, [r4, #40] @ movhi 2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5728 .loc 1 2722 7 is_stmt 1 view .LVU2025 2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5729 .loc 1 2722 11 is_stmt 0 view .LVU2026 5730 0118 638D ldrh r3, [r4, #42] 5731 011a 9BB2 uxth r3, r3 2722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5732 .loc 1 2722 22 view .LVU2027 5733 011c 013B subs r3, r3, #1 5734 011e 9BB2 uxth r3, r3 5735 0120 6385 strh r3, [r4, #42] @ movhi 2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5736 .loc 1 2724 7 is_stmt 1 view .LVU2028 2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5737 .loc 1 2724 16 is_stmt 0 view .LVU2029 5738 0122 638D ldrh r3, [r4, #42] 5739 0124 9BB2 uxth r3, r3 2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5740 .loc 1 2724 10 view .LVU2030 5741 0126 002B cmp r3, #0 5742 0128 DED0 beq .L368 2724:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5743 .loc 1 2724 35 discriminator 1 view .LVU2031 5744 012a 002A cmp r2, #0 5745 012c DCD1 bne .L368 2727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5746 .loc 1 2727 9 is_stmt 1 view .LVU2032 2727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5747 .loc 1 2727 13 is_stmt 0 view .LVU2033 5748 012e 0096 str r6, [sp] 5749 0130 3B46 mov r3, r7 5750 0132 8021 movs r1, #128 5751 0134 2046 mov r0, r4 5752 0136 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 5753 .LVL396: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 266 2727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5754 .loc 1 2727 12 discriminator 1 view .LVU2034 5755 013a 90BB cbnz r0, .L375 2732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5756 .loc 1 2732 9 is_stmt 1 view .LVU2035 2732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5757 .loc 1 2732 17 is_stmt 0 view .LVU2036 5758 013c 638D ldrh r3, [r4, #42] 5759 013e 9BB2 uxth r3, r3 2732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5760 .loc 1 2732 12 view .LVU2037 5761 0140 FF2B cmp r3, #255 5762 0142 C5D9 bls .L369 2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5763 .loc 1 2734 11 is_stmt 1 view .LVU2038 2734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, DevAddress, (uint8_t) hi2c->XferSize, I2C_RELOAD_MODE, 5764 .loc 1 2734 26 is_stmt 0 view .LVU2039 5765 0144 FF22 movs r2, #255 5766 0146 2285 strh r2, [r4, #40] @ movhi 2735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_NO_STARTSTOP); 5767 .loc 1 2735 11 is_stmt 1 view .LVU2040 5768 0148 0023 movs r3, #0 5769 014a 0093 str r3, [sp] 5770 014c 4FF08073 mov r3, #16777216 5771 0150 2946 mov r1, r5 5772 0152 2046 mov r0, r4 5773 0154 FFF7FEFF bl I2C_TransferConfig 5774 .LVL397: 5775 0158 C6E7 b .L368 5776 .L381: 2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5777 .loc 1 2749 5 view .LVU2041 2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5778 .loc 1 2749 9 is_stmt 0 view .LVU2042 5779 015a 3246 mov r2, r6 5780 015c 3946 mov r1, r7 5781 015e 2046 mov r0, r4 5782 0160 FFF7FEFF bl I2C_WaitOnSTOPFlagUntilTimeout 5783 .LVL398: 2749:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5784 .loc 1 2749 8 discriminator 1 view .LVU2043 5785 0164 F8B9 cbnz r0, .L376 2755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5786 .loc 1 2755 5 is_stmt 1 view .LVU2044 5787 0166 2368 ldr r3, [r4] 5788 0168 2022 movs r2, #32 5789 016a DA61 str r2, [r3, #28] 2758:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5790 .loc 1 2758 5 view .LVU2045 5791 016c 2168 ldr r1, [r4] 5792 016e 4B68 ldr r3, [r1, #4] 5793 0170 23F0FF73 bic r3, r3, #33423360 5794 0174 23F48B33 bic r3, r3, #71168 5795 0178 23F4FF73 bic r3, r3, #510 5796 017c 23F00103 bic r3, r3, #1 5797 0180 4B60 str r3, [r1, #4] 2760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 267 5798 .loc 1 2760 5 view .LVU2046 2760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 5799 .loc 1 2760 17 is_stmt 0 view .LVU2047 5800 0182 84F84120 strb r2, [r4, #65] 2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5801 .loc 1 2761 5 is_stmt 1 view .LVU2048 2761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5802 .loc 1 2761 17 is_stmt 0 view .LVU2049 5803 0186 0023 movs r3, #0 5804 0188 84F84230 strb r3, [r4, #66] 2764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5805 .loc 1 2764 5 is_stmt 1 view .LVU2050 2764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5806 .loc 1 2764 5 view .LVU2051 5807 018c 84F84030 strb r3, [r4, #64] 2764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5808 .loc 1 2764 5 view .LVU2052 2766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5809 .loc 1 2766 5 view .LVU2053 2766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5810 .loc 1 2766 12 is_stmt 0 view .LVU2054 5811 0190 00E0 b .L363 5812 .LVL399: 5813 .L371: 2770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5814 .loc 1 2770 12 view .LVU2055 5815 0192 0220 movs r0, #2 5816 .LVL400: 5817 .L363: 2772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /** 5818 .loc 1 2772 1 view .LVU2056 5819 0194 03B0 add sp, sp, #12 5820 .cfi_remember_state 5821 .cfi_def_cfa_offset 36 5822 @ sp needed 5823 0196 BDE8F08F pop {r4, r5, r6, r7, r8, r9, r10, fp, pc} 5824 .LVL401: 5825 .L372: 5826 .cfi_restore_state 2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5827 .loc 1 2665 5 discriminator 1 view .LVU2057 5828 019a 0220 movs r0, #2 5829 .LVL402: 2665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5830 .loc 1 2665 5 discriminator 1 view .LVU2058 5831 019c FAE7 b .L363 5832 .LVL403: 5833 .L374: 2712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5834 .loc 1 2712 16 view .LVU2059 5835 019e 0120 movs r0, #1 5836 01a0 F8E7 b .L363 5837 .L375: 2729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5838 .loc 1 2729 18 view .LVU2060 5839 01a2 0120 movs r0, #1 5840 01a4 F6E7 b .L363 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 268 5841 .L376: 2751:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5842 .loc 1 2751 14 view .LVU2061 5843 01a6 0120 movs r0, #1 5844 01a8 F4E7 b .L363 5845 .L383: 5846 01aa 00BF .align 2 5847 .L382: 5848 01ac 00240080 .word -2147474432 5849 .cfi_endproc 5850 .LFE352: 5852 .section .text.HAL_I2C_Mem_Write_IT,"ax",%progbits 5853 .align 1 5854 .global HAL_I2C_Mem_Write_IT 5855 .syntax unified 5856 .thumb 5857 .thumb_func 5859 HAL_I2C_Mem_Write_IT: 5860 .LVL404: 5861 .LFB353: 2787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 5862 .loc 1 2787 1 is_stmt 1 view -0 5863 .cfi_startproc 5864 @ args = 8, pretend = 0, frame = 0 5865 @ frame_needed = 0, uses_anonymous_args = 0 2787:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 5866 .loc 1 2787 1 is_stmt 0 view .LVU2063 5867 0000 70B5 push {r4, r5, r6, lr} 5868 .cfi_def_cfa_offset 16 5869 .cfi_offset 4, -16 5870 .cfi_offset 5, -12 5871 .cfi_offset 6, -8 5872 .cfi_offset 14, -4 5873 0002 82B0 sub sp, sp, #8 5874 .cfi_def_cfa_offset 24 5875 0004 0446 mov r4, r0 5876 0006 1D46 mov r5, r3 5877 0008 BDF81C30 ldrh r3, [sp, #28] 5878 .LVL405: 2789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5879 .loc 1 2789 3 is_stmt 1 view .LVU2064 2791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5880 .loc 1 2791 3 view .LVU2065 2791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5881 .loc 1 2791 11 is_stmt 0 view .LVU2066 5882 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 5883 .LVL406: 2791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5884 .loc 1 2791 6 view .LVU2067 5885 0010 2028 cmp r0, #32 5886 0012 43D1 bne .L389 2793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5887 .loc 1 2793 5 is_stmt 1 view .LVU2068 2793:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5888 .loc 1 2793 8 is_stmt 0 view .LVU2069 5889 0014 0698 ldr r0, [sp, #24] 5890 0016 002B cmp r3, #0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 269 5891 0018 18BF it ne 5892 001a 0028 cmpne r0, #0 5893 001c 33D0 beq .L393 2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5894 .loc 1 2799 5 is_stmt 1 view .LVU2070 2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5895 .loc 1 2799 9 is_stmt 0 view .LVU2071 5896 001e 2068 ldr r0, [r4] 5897 0020 8669 ldr r6, [r0, #24] 2799:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5898 .loc 1 2799 8 view .LVU2072 5899 0022 16F4004F tst r6, #32768 5900 0026 3CD1 bne .L390 2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5901 .loc 1 2805 5 is_stmt 1 view .LVU2073 2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5902 .loc 1 2805 5 view .LVU2074 5903 0028 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 5904 002c 012E cmp r6, #1 5905 002e 3AD0 beq .L391 2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5906 .loc 1 2805 5 discriminator 2 view .LVU2075 5907 0030 0126 movs r6, #1 5908 0032 84F84060 strb r6, [r4, #64] 2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5909 .loc 1 2805 5 view .LVU2076 2807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5910 .loc 1 2807 5 view .LVU2077 2807:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 5911 .loc 1 2807 23 is_stmt 0 view .LVU2078 5912 0036 2126 movs r6, #33 5913 0038 84F84160 strb r6, [r4, #65] 2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5914 .loc 1 2808 5 is_stmt 1 view .LVU2079 2808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 5915 .loc 1 2808 23 is_stmt 0 view .LVU2080 5916 003c 4026 movs r6, #64 5917 003e 84F84260 strb r6, [r4, #66] 2809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5918 .loc 1 2809 5 is_stmt 1 view .LVU2081 2809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5919 .loc 1 2809 23 is_stmt 0 view .LVU2082 5920 0042 0026 movs r6, #0 5921 0044 6664 str r6, [r4, #68] 2812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 5922 .loc 1 2812 5 is_stmt 1 view .LVU2083 2812:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->pBuffPtr = pData; 5923 .loc 1 2812 23 is_stmt 0 view .LVU2084 5924 0046 2685 strh r6, [r4, #40] @ movhi 2813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5925 .loc 1 2813 5 is_stmt 1 view .LVU2085 2813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 5926 .loc 1 2813 23 is_stmt 0 view .LVU2086 5927 0048 069E ldr r6, [sp, #24] 5928 004a 6662 str r6, [r4, #36] 2814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5929 .loc 1 2814 5 is_stmt 1 view .LVU2087 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 270 2814:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 5930 .loc 1 2814 23 is_stmt 0 view .LVU2088 5931 004c 6385 strh r3, [r4, #42] @ movhi 2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 5932 .loc 1 2815 5 is_stmt 1 view .LVU2089 2815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 5933 .loc 1 2815 23 is_stmt 0 view .LVU2090 5934 004e 174B ldr r3, .L395 5935 0050 E362 str r3, [r4, #44] 2816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 5936 .loc 1 2816 5 is_stmt 1 view .LVU2091 2816:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 5937 .loc 1 2816 23 is_stmt 0 view .LVU2092 5938 0052 174B ldr r3, .L395+4 5939 0054 6363 str r3, [r4, #52] 2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5940 .loc 1 2817 5 is_stmt 1 view .LVU2093 2817:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5941 .loc 1 2817 23 is_stmt 0 view .LVU2094 5942 0056 E164 str r1, [r4, #76] 2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5943 .loc 1 2820 5 is_stmt 1 view .LVU2095 2820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 5944 .loc 1 2820 8 is_stmt 0 view .LVU2096 5945 0058 012D cmp r5, #1 5946 005a 19D0 beq .L394 2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5947 .loc 1 2832 7 is_stmt 1 view .LVU2097 2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5948 .loc 1 2832 30 is_stmt 0 view .LVU2098 5949 005c 130A lsrs r3, r2, #8 2832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5950 .loc 1 2832 28 view .LVU2099 5951 005e 8362 str r3, [r0, #40] 2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5952 .loc 1 2835 7 is_stmt 1 view .LVU2100 2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5953 .loc 1 2835 26 is_stmt 0 view .LVU2101 5954 0060 D2B2 uxtb r2, r2 5955 .LVL407: 2835:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5956 .loc 1 2835 24 view .LVU2102 5957 0062 2265 str r2, [r4, #80] 5958 .L388: 2838:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5959 .loc 1 2838 5 is_stmt 1 view .LVU2103 5960 0064 134B ldr r3, .L395+8 5961 0066 0093 str r3, [sp] 5962 0068 4FF08073 mov r3, #16777216 5963 006c EAB2 uxtb r2, r5 5964 006e 2046 mov r0, r4 5965 0070 FFF7FEFF bl I2C_TransferConfig 5966 .LVL408: 2841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5967 .loc 1 2841 5 view .LVU2104 2841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5968 .loc 1 2841 5 view .LVU2105 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 271 5969 0074 0025 movs r5, #0 5970 .LVL409: 2841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5971 .loc 1 2841 5 is_stmt 0 view .LVU2106 5972 0076 84F84050 strb r5, [r4, #64] 2841:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5973 .loc 1 2841 5 is_stmt 1 view .LVU2107 2851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5974 .loc 1 2851 5 view .LVU2108 5975 007a 0121 movs r1, #1 5976 007c 2046 mov r0, r4 5977 007e FFF7FEFF bl I2C_Enable_IRQ 5978 .LVL410: 2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5979 .loc 1 2853 5 view .LVU2109 2853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5980 .loc 1 2853 12 is_stmt 0 view .LVU2110 5981 0082 2846 mov r0, r5 5982 0084 0BE0 b .L385 5983 .LVL411: 5984 .L393: 2795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5985 .loc 1 2795 7 is_stmt 1 view .LVU2111 2795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 5986 .loc 1 2795 23 is_stmt 0 view .LVU2112 5987 0086 4FF40073 mov r3, #512 5988 008a 6364 str r3, [r4, #68] 2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5989 .loc 1 2796 7 is_stmt 1 view .LVU2113 2796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 5990 .loc 1 2796 15 is_stmt 0 view .LVU2114 5991 008c 0120 movs r0, #1 5992 008e 06E0 b .L385 5993 .L394: 2823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5994 .loc 1 2823 7 is_stmt 1 view .LVU2115 2823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5995 .loc 1 2823 30 is_stmt 0 view .LVU2116 5996 0090 D2B2 uxtb r2, r2 5997 .LVL412: 2823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 5998 .loc 1 2823 28 view .LVU2117 5999 0092 8262 str r2, [r0, #40] 2826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6000 .loc 1 2826 7 is_stmt 1 view .LVU2118 2826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6001 .loc 1 2826 24 is_stmt 0 view .LVU2119 6002 0094 4FF0FF33 mov r3, #-1 6003 0098 2365 str r3, [r4, #80] 6004 009a E3E7 b .L388 6005 .LVL413: 6006 .L389: 2857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6007 .loc 1 2857 12 view .LVU2120 6008 009c 0220 movs r0, #2 6009 .LVL414: 6010 .L385: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 272 2859:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6011 .loc 1 2859 1 view .LVU2121 6012 009e 02B0 add sp, sp, #8 6013 .cfi_remember_state 6014 .cfi_def_cfa_offset 16 6015 @ sp needed 6016 00a0 70BD pop {r4, r5, r6, pc} 6017 .LVL415: 6018 .L390: 6019 .cfi_restore_state 2801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6020 .loc 1 2801 14 view .LVU2122 6021 00a2 0220 movs r0, #2 6022 00a4 FBE7 b .L385 6023 .L391: 2805:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6024 .loc 1 2805 5 discriminator 1 view .LVU2123 6025 00a6 0220 movs r0, #2 6026 00a8 F9E7 b .L385 6027 .L396: 6028 00aa 00BF .align 2 6029 .L395: 6030 00ac 0000FFFF .word -65536 6031 00b0 00000000 .word I2C_Mem_ISR_IT 6032 00b4 00200080 .word -2147475456 6033 .cfi_endproc 6034 .LFE353: 6036 .section .text.HAL_I2C_Mem_Read_IT,"ax",%progbits 6037 .align 1 6038 .global HAL_I2C_Mem_Read_IT 6039 .syntax unified 6040 .thumb 6041 .thumb_func 6043 HAL_I2C_Mem_Read_IT: 6044 .LVL416: 6045 .LFB354: 2875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 6046 .loc 1 2875 1 is_stmt 1 view -0 6047 .cfi_startproc 6048 @ args = 8, pretend = 0, frame = 0 6049 @ frame_needed = 0, uses_anonymous_args = 0 2875:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Check the parameters */ 6050 .loc 1 2875 1 is_stmt 0 view .LVU2125 6051 0000 70B5 push {r4, r5, r6, lr} 6052 .cfi_def_cfa_offset 16 6053 .cfi_offset 4, -16 6054 .cfi_offset 5, -12 6055 .cfi_offset 6, -8 6056 .cfi_offset 14, -4 6057 0002 82B0 sub sp, sp, #8 6058 .cfi_def_cfa_offset 24 6059 0004 0446 mov r4, r0 6060 0006 1D46 mov r5, r3 6061 0008 BDF81C30 ldrh r3, [sp, #28] 6062 .LVL417: 2877:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6063 .loc 1 2877 3 is_stmt 1 view .LVU2126 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 273 2879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6064 .loc 1 2879 3 view .LVU2127 2879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6065 .loc 1 2879 11 is_stmt 0 view .LVU2128 6066 000c 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6067 .LVL418: 2879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6068 .loc 1 2879 6 view .LVU2129 6069 0010 2028 cmp r0, #32 6070 0012 41D1 bne .L402 2881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6071 .loc 1 2881 5 is_stmt 1 view .LVU2130 2881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6072 .loc 1 2881 8 is_stmt 0 view .LVU2131 6073 0014 0698 ldr r0, [sp, #24] 6074 0016 002B cmp r3, #0 6075 0018 18BF it ne 6076 001a 0028 cmpne r0, #0 6077 001c 31D0 beq .L406 2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6078 .loc 1 2887 5 is_stmt 1 view .LVU2132 2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6079 .loc 1 2887 9 is_stmt 0 view .LVU2133 6080 001e 2068 ldr r0, [r4] 6081 0020 8669 ldr r6, [r0, #24] 2887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6082 .loc 1 2887 8 view .LVU2134 6083 0022 16F4004F tst r6, #32768 6084 0026 3AD1 bne .L403 2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6085 .loc 1 2893 5 is_stmt 1 view .LVU2135 2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6086 .loc 1 2893 5 view .LVU2136 6087 0028 94F84060 ldrb r6, [r4, #64] @ zero_extendqisi2 6088 002c 012E cmp r6, #1 6089 002e 38D0 beq .L404 2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6090 .loc 1 2893 5 discriminator 2 view .LVU2137 6091 0030 0126 movs r6, #1 6092 0032 84F84060 strb r6, [r4, #64] 2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6093 .loc 1 2893 5 view .LVU2138 2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6094 .loc 1 2895 5 view .LVU2139 2895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6095 .loc 1 2895 23 is_stmt 0 view .LVU2140 6096 0036 2226 movs r6, #34 6097 0038 84F84160 strb r6, [r4, #65] 2896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6098 .loc 1 2896 5 is_stmt 1 view .LVU2141 2896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6099 .loc 1 2896 23 is_stmt 0 view .LVU2142 6100 003c 4026 movs r6, #64 6101 003e 84F84260 strb r6, [r4, #66] 2897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6102 .loc 1 2897 5 is_stmt 1 view .LVU2143 2897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 274 6103 .loc 1 2897 23 is_stmt 0 view .LVU2144 6104 0042 0026 movs r6, #0 6105 0044 6664 str r6, [r4, #68] 2900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6106 .loc 1 2900 5 is_stmt 1 view .LVU2145 2900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6107 .loc 1 2900 23 is_stmt 0 view .LVU2146 6108 0046 069E ldr r6, [sp, #24] 6109 0048 6662 str r6, [r4, #36] 2901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6110 .loc 1 2901 5 is_stmt 1 view .LVU2147 2901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6111 .loc 1 2901 23 is_stmt 0 view .LVU2148 6112 004a 6385 strh r3, [r4, #42] @ movhi 2902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6113 .loc 1 2902 5 is_stmt 1 view .LVU2149 2902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_IT; 6114 .loc 1 2902 23 is_stmt 0 view .LVU2150 6115 004c 164B ldr r3, .L408 6116 004e E362 str r3, [r4, #44] 2903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6117 .loc 1 2903 5 is_stmt 1 view .LVU2151 2903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6118 .loc 1 2903 23 is_stmt 0 view .LVU2152 6119 0050 164B ldr r3, .L408+4 6120 0052 6363 str r3, [r4, #52] 2904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6121 .loc 1 2904 5 is_stmt 1 view .LVU2153 2904:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6122 .loc 1 2904 23 is_stmt 0 view .LVU2154 6123 0054 E164 str r1, [r4, #76] 2907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6124 .loc 1 2907 5 is_stmt 1 view .LVU2155 2907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6125 .loc 1 2907 8 is_stmt 0 view .LVU2156 6126 0056 012D cmp r5, #1 6127 0058 18D0 beq .L407 2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6128 .loc 1 2919 7 is_stmt 1 view .LVU2157 2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6129 .loc 1 2919 30 is_stmt 0 view .LVU2158 6130 005a 130A lsrs r3, r2, #8 2919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6131 .loc 1 2919 28 view .LVU2159 6132 005c 8362 str r3, [r0, #40] 2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6133 .loc 1 2922 7 is_stmt 1 view .LVU2160 2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6134 .loc 1 2922 26 is_stmt 0 view .LVU2161 6135 005e D2B2 uxtb r2, r2 6136 .LVL419: 2922:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6137 .loc 1 2922 24 view .LVU2162 6138 0060 2265 str r2, [r4, #80] 6139 .L401: 2925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6140 .loc 1 2925 5 is_stmt 1 view .LVU2163 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 275 6141 0062 134B ldr r3, .L408+8 6142 0064 0093 str r3, [sp] 6143 0066 0023 movs r3, #0 6144 0068 EAB2 uxtb r2, r5 6145 006a 2046 mov r0, r4 6146 006c FFF7FEFF bl I2C_TransferConfig 6147 .LVL420: 2928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6148 .loc 1 2928 5 view .LVU2164 2928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6149 .loc 1 2928 5 view .LVU2165 6150 0070 0025 movs r5, #0 6151 .LVL421: 2928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6152 .loc 1 2928 5 is_stmt 0 view .LVU2166 6153 0072 84F84050 strb r5, [r4, #64] 2928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6154 .loc 1 2928 5 is_stmt 1 view .LVU2167 2938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6155 .loc 1 2938 5 view .LVU2168 6156 0076 0121 movs r1, #1 6157 0078 2046 mov r0, r4 6158 007a FFF7FEFF bl I2C_Enable_IRQ 6159 .LVL422: 2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6160 .loc 1 2940 5 view .LVU2169 2940:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6161 .loc 1 2940 12 is_stmt 0 view .LVU2170 6162 007e 2846 mov r0, r5 6163 0080 0BE0 b .L398 6164 .LVL423: 6165 .L406: 2883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6166 .loc 1 2883 7 is_stmt 1 view .LVU2171 2883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6167 .loc 1 2883 23 is_stmt 0 view .LVU2172 6168 0082 4FF40073 mov r3, #512 6169 0086 6364 str r3, [r4, #68] 2884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6170 .loc 1 2884 7 is_stmt 1 view .LVU2173 2884:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6171 .loc 1 2884 15 is_stmt 0 view .LVU2174 6172 0088 0120 movs r0, #1 6173 008a 06E0 b .L398 6174 .L407: 2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6175 .loc 1 2910 7 is_stmt 1 view .LVU2175 2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6176 .loc 1 2910 30 is_stmt 0 view .LVU2176 6177 008c D2B2 uxtb r2, r2 6178 .LVL424: 2910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6179 .loc 1 2910 28 view .LVU2177 6180 008e 8262 str r2, [r0, #40] 2913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6181 .loc 1 2913 7 is_stmt 1 view .LVU2178 2913:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 276 6182 .loc 1 2913 24 is_stmt 0 view .LVU2179 6183 0090 4FF0FF33 mov r3, #-1 6184 0094 2365 str r3, [r4, #80] 6185 0096 E4E7 b .L401 6186 .LVL425: 6187 .L402: 2944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6188 .loc 1 2944 12 view .LVU2180 6189 0098 0220 movs r0, #2 6190 .LVL426: 6191 .L398: 2946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6192 .loc 1 2946 1 view .LVU2181 6193 009a 02B0 add sp, sp, #8 6194 .cfi_remember_state 6195 .cfi_def_cfa_offset 16 6196 @ sp needed 6197 009c 70BD pop {r4, r5, r6, pc} 6198 .LVL427: 6199 .L403: 6200 .cfi_restore_state 2889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6201 .loc 1 2889 14 view .LVU2182 6202 009e 0220 movs r0, #2 6203 00a0 FBE7 b .L398 6204 .L404: 2893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6205 .loc 1 2893 5 discriminator 1 view .LVU2183 6206 00a2 0220 movs r0, #2 6207 00a4 F9E7 b .L398 6208 .L409: 6209 00a6 00BF .align 2 6210 .L408: 6211 00a8 0000FFFF .word -65536 6212 00ac 00000000 .word I2C_Mem_ISR_IT 6213 00b0 00200080 .word -2147475456 6214 .cfi_endproc 6215 .LFE354: 6217 .section .text.HAL_I2C_Mem_Write_DMA,"ax",%progbits 6218 .align 1 6219 .global HAL_I2C_Mem_Write_DMA 6220 .syntax unified 6221 .thumb 6222 .thumb_func 6224 HAL_I2C_Mem_Write_DMA: 6225 .LVL428: 6226 .LFB355: 2962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6227 .loc 1 2962 1 is_stmt 1 view -0 6228 .cfi_startproc 6229 @ args = 8, pretend = 0, frame = 0 6230 @ frame_needed = 0, uses_anonymous_args = 0 2962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6231 .loc 1 2962 1 is_stmt 0 view .LVU2185 6232 0000 F0B5 push {r4, r5, r6, r7, lr} 6233 .cfi_def_cfa_offset 20 6234 .cfi_offset 4, -20 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 277 6235 .cfi_offset 5, -16 6236 .cfi_offset 6, -12 6237 .cfi_offset 7, -8 6238 .cfi_offset 14, -4 6239 0002 83B0 sub sp, sp, #12 6240 .cfi_def_cfa_offset 32 6241 0004 0446 mov r4, r0 6242 0006 0E46 mov r6, r1 6243 0008 1F46 mov r7, r3 6244 000a 0899 ldr r1, [sp, #32] 6245 .LVL429: 2962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6246 .loc 1 2962 1 view .LVU2186 6247 000c BDF82430 ldrh r3, [sp, #36] 6248 .LVL430: 2963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6249 .loc 1 2963 3 is_stmt 1 view .LVU2187 2966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6250 .loc 1 2966 3 view .LVU2188 2968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6251 .loc 1 2968 3 view .LVU2189 2968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6252 .loc 1 2968 11 is_stmt 0 view .LVU2190 6253 0010 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6254 .LVL431: 2968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6255 .loc 1 2968 6 view .LVU2191 6256 0014 2028 cmp r0, #32 6257 0016 7AD1 bne .L420 2970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6258 .loc 1 2970 5 is_stmt 1 view .LVU2192 2970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6259 .loc 1 2970 8 is_stmt 0 view .LVU2193 6260 0018 002B cmp r3, #0 6261 001a 18BF it ne 6262 001c 0029 cmpne r1, #0 6263 001e 49D0 beq .L425 2976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6264 .loc 1 2976 5 is_stmt 1 view .LVU2194 2976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6265 .loc 1 2976 9 is_stmt 0 view .LVU2195 6266 0020 2068 ldr r0, [r4] 6267 0022 8569 ldr r5, [r0, #24] 2976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6268 .loc 1 2976 8 view .LVU2196 6269 0024 15F4004F tst r5, #32768 6270 0028 75D1 bne .L421 2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6271 .loc 1 2982 5 is_stmt 1 view .LVU2197 2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6272 .loc 1 2982 5 view .LVU2198 6273 002a 94F84050 ldrb r5, [r4, #64] @ zero_extendqisi2 6274 002e 012D cmp r5, #1 6275 0030 73D0 beq .L422 2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6276 .loc 1 2982 5 discriminator 2 view .LVU2199 6277 0032 0125 movs r5, #1 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 278 6278 0034 84F84050 strb r5, [r4, #64] 2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6279 .loc 1 2982 5 view .LVU2200 2984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6280 .loc 1 2984 5 view .LVU2201 2984:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6281 .loc 1 2984 23 is_stmt 0 view .LVU2202 6282 0038 2125 movs r5, #33 6283 003a 84F84150 strb r5, [r4, #65] 2985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6284 .loc 1 2985 5 is_stmt 1 view .LVU2203 2985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6285 .loc 1 2985 23 is_stmt 0 view .LVU2204 6286 003e 4025 movs r5, #64 6287 0040 84F84250 strb r5, [r4, #66] 2986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6288 .loc 1 2986 5 is_stmt 1 view .LVU2205 2986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6289 .loc 1 2986 23 is_stmt 0 view .LVU2206 6290 0044 0025 movs r5, #0 6291 0046 6564 str r5, [r4, #68] 2989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6292 .loc 1 2989 5 is_stmt 1 view .LVU2207 2989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6293 .loc 1 2989 23 is_stmt 0 view .LVU2208 6294 0048 6162 str r1, [r4, #36] 2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6295 .loc 1 2990 5 is_stmt 1 view .LVU2209 2990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6296 .loc 1 2990 23 is_stmt 0 view .LVU2210 6297 004a 6385 strh r3, [r4, #42] @ movhi 2991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6298 .loc 1 2991 5 is_stmt 1 view .LVU2211 2991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6299 .loc 1 2991 23 is_stmt 0 view .LVU2212 6300 004c 344B ldr r3, .L428 6301 004e E362 str r3, [r4, #44] 2992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6302 .loc 1 2992 5 is_stmt 1 view .LVU2213 2992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6303 .loc 1 2992 23 is_stmt 0 view .LVU2214 6304 0050 344B ldr r3, .L428+4 6305 0052 6363 str r3, [r4, #52] 2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6306 .loc 1 2993 5 is_stmt 1 view .LVU2215 2993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6307 .loc 1 2993 23 is_stmt 0 view .LVU2216 6308 0054 E664 str r6, [r4, #76] 2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6309 .loc 1 2995 5 is_stmt 1 view .LVU2217 2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6310 .loc 1 2995 13 is_stmt 0 view .LVU2218 6311 0056 638D ldrh r3, [r4, #42] 6312 0058 9BB2 uxth r3, r3 2995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6313 .loc 1 2995 8 view .LVU2219 6314 005a FF2B cmp r3, #255 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 279 6315 005c 2FD9 bls .L413 2997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6316 .loc 1 2997 7 is_stmt 1 view .LVU2220 2997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6317 .loc 1 2997 22 is_stmt 0 view .LVU2221 6318 005e FF23 movs r3, #255 6319 0060 2385 strh r3, [r4, #40] @ movhi 6320 .L414: 3005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6321 .loc 1 3005 5 is_stmt 1 view .LVU2222 3005:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6322 .loc 1 3005 8 is_stmt 0 view .LVU2223 6323 0062 012F cmp r7, #1 6324 0064 2ED0 beq .L426 3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6325 .loc 1 3017 7 is_stmt 1 view .LVU2224 3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6326 .loc 1 3017 30 is_stmt 0 view .LVU2225 6327 0066 130A lsrs r3, r2, #8 3017:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6328 .loc 1 3017 28 view .LVU2226 6329 0068 8362 str r3, [r0, #40] 3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6330 .loc 1 3020 7 is_stmt 1 view .LVU2227 3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6331 .loc 1 3020 26 is_stmt 0 view .LVU2228 6332 006a D2B2 uxtb r2, r2 6333 .LVL432: 3020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6334 .loc 1 3020 24 view .LVU2229 6335 006c 2265 str r2, [r4, #80] 6336 .L416: 3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6337 .loc 1 3023 5 is_stmt 1 view .LVU2230 3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6338 .loc 1 3023 13 is_stmt 0 view .LVU2231 6339 006e A36B ldr r3, [r4, #56] 3023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6340 .loc 1 3023 8 view .LVU2232 6341 0070 002B cmp r3, #0 6342 0072 2DD0 beq .L417 3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6343 .loc 1 3026 7 is_stmt 1 view .LVU2233 3026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6344 .loc 1 3026 38 is_stmt 0 view .LVU2234 6345 0074 2C4A ldr r2, .L428+8 6346 0076 DA63 str r2, [r3, #60] 3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6347 .loc 1 3029 7 is_stmt 1 view .LVU2235 3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6348 .loc 1 3029 11 is_stmt 0 view .LVU2236 6349 0078 A36B ldr r3, [r4, #56] 3029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6350 .loc 1 3029 39 view .LVU2237 6351 007a 2C4A ldr r2, .L428+12 6352 007c DA64 str r2, [r3, #76] 3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 280 6353 .loc 1 3032 7 is_stmt 1 view .LVU2238 3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6354 .loc 1 3032 11 is_stmt 0 view .LVU2239 6355 007e A26B ldr r2, [r4, #56] 3032:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 6356 .loc 1 3032 42 view .LVU2240 6357 0080 0023 movs r3, #0 6358 0082 1364 str r3, [r2, #64] 3033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6359 .loc 1 3033 7 is_stmt 1 view .LVU2241 3033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6360 .loc 1 3033 11 is_stmt 0 view .LVU2242 6361 0084 A26B ldr r2, [r4, #56] 3033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6362 .loc 1 3033 39 view .LVU2243 6363 0086 1365 str r3, [r2, #80] 3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 6364 .loc 1 3036 7 is_stmt 1 view .LVU2244 3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 6365 .loc 1 3036 86 is_stmt 0 view .LVU2245 6366 0088 2268 ldr r2, [r4] 3036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 6367 .loc 1 3036 23 view .LVU2246 6368 008a 238D ldrh r3, [r4, #40] 6369 008c 2832 adds r2, r2, #40 6370 008e A06B ldr r0, [r4, #56] 6371 0090 FFF7FEFF bl HAL_DMA_Start_IT 6372 .LVL433: 3054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6373 .loc 1 3054 5 is_stmt 1 view .LVU2247 3054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6374 .loc 1 3054 8 is_stmt 0 view .LVU2248 6375 0094 0546 mov r5, r0 6376 0096 48B3 cbz r0, .L427 3074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6377 .loc 1 3074 7 is_stmt 1 view .LVU2249 3074:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6378 .loc 1 3074 23 is_stmt 0 view .LVU2250 6379 0098 2023 movs r3, #32 6380 009a 84F84130 strb r3, [r4, #65] 3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6381 .loc 1 3075 7 is_stmt 1 view .LVU2251 3075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6382 .loc 1 3075 23 is_stmt 0 view .LVU2252 6383 009e 0022 movs r2, #0 6384 00a0 84F84220 strb r2, [r4, #66] 3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6385 .loc 1 3078 7 is_stmt 1 view .LVU2253 3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6386 .loc 1 3078 11 is_stmt 0 view .LVU2254 6387 00a4 636C ldr r3, [r4, #68] 3078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6388 .loc 1 3078 23 view .LVU2255 6389 00a6 43F01003 orr r3, r3, #16 6390 00aa 6364 str r3, [r4, #68] 3081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6391 .loc 1 3081 7 is_stmt 1 view .LVU2256 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 281 3081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6392 .loc 1 3081 7 view .LVU2257 6393 00ac 84F84020 strb r2, [r4, #64] 3081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6394 .loc 1 3081 7 view .LVU2258 3083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6395 .loc 1 3083 7 view .LVU2259 3083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6396 .loc 1 3083 14 is_stmt 0 view .LVU2260 6397 00b0 0125 movs r5, #1 6398 00b2 2DE0 b .L411 6399 .LVL434: 6400 .L425: 2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6401 .loc 1 2972 7 is_stmt 1 view .LVU2261 2972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6402 .loc 1 2972 23 is_stmt 0 view .LVU2262 6403 00b4 4FF40073 mov r3, #512 6404 00b8 6364 str r3, [r4, #68] 2973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6405 .loc 1 2973 7 is_stmt 1 view .LVU2263 2973:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6406 .loc 1 2973 15 is_stmt 0 view .LVU2264 6407 00ba 0125 movs r5, #1 6408 00bc 28E0 b .L411 6409 .L413: 3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6410 .loc 1 3001 7 is_stmt 1 view .LVU2265 3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6411 .loc 1 3001 28 is_stmt 0 view .LVU2266 6412 00be 638D ldrh r3, [r4, #42] 3001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6413 .loc 1 3001 22 view .LVU2267 6414 00c0 2385 strh r3, [r4, #40] @ movhi 6415 00c2 CEE7 b .L414 6416 .L426: 3008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6417 .loc 1 3008 7 is_stmt 1 view .LVU2268 3008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6418 .loc 1 3008 30 is_stmt 0 view .LVU2269 6419 00c4 D2B2 uxtb r2, r2 6420 .LVL435: 3008:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6421 .loc 1 3008 28 view .LVU2270 6422 00c6 8262 str r2, [r0, #40] 3011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6423 .loc 1 3011 7 is_stmt 1 view .LVU2271 3011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6424 .loc 1 3011 24 is_stmt 0 view .LVU2272 6425 00c8 4FF0FF33 mov r3, #-1 6426 00cc 2365 str r3, [r4, #80] 6427 00ce CEE7 b .L416 6428 .L417: 3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6429 .loc 1 3042 7 is_stmt 1 view .LVU2273 3042:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6430 .loc 1 3042 23 is_stmt 0 view .LVU2274 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 282 6431 00d0 2023 movs r3, #32 6432 00d2 84F84130 strb r3, [r4, #65] 3043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6433 .loc 1 3043 7 is_stmt 1 view .LVU2275 3043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6434 .loc 1 3043 23 is_stmt 0 view .LVU2276 6435 00d6 0022 movs r2, #0 6436 00d8 84F84220 strb r2, [r4, #66] 3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6437 .loc 1 3046 7 is_stmt 1 view .LVU2277 3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6438 .loc 1 3046 11 is_stmt 0 view .LVU2278 6439 00dc 636C ldr r3, [r4, #68] 3046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6440 .loc 1 3046 23 view .LVU2279 6441 00de 43F08003 orr r3, r3, #128 6442 00e2 6364 str r3, [r4, #68] 3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6443 .loc 1 3049 7 is_stmt 1 view .LVU2280 3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6444 .loc 1 3049 7 view .LVU2281 6445 00e4 84F84020 strb r2, [r4, #64] 3049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6446 .loc 1 3049 7 view .LVU2282 3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6447 .loc 1 3051 7 view .LVU2283 3051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6448 .loc 1 3051 14 is_stmt 0 view .LVU2284 6449 00e8 0125 movs r5, #1 6450 00ea 11E0 b .L411 6451 .LVL436: 6452 .L427: 3057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6453 .loc 1 3057 7 is_stmt 1 view .LVU2285 6454 00ec 104B ldr r3, .L428+16 6455 00ee 0093 str r3, [sp] 6456 00f0 4FF08073 mov r3, #16777216 6457 00f4 FAB2 uxtb r2, r7 6458 00f6 3146 mov r1, r6 6459 00f8 2046 mov r0, r4 6460 .LVL437: 3057:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6461 .loc 1 3057 7 is_stmt 0 view .LVU2286 6462 00fa FFF7FEFF bl I2C_TransferConfig 6463 .LVL438: 3060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6464 .loc 1 3060 7 is_stmt 1 view .LVU2287 3060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6465 .loc 1 3060 7 view .LVU2288 6466 00fe 0023 movs r3, #0 6467 0100 84F84030 strb r3, [r4, #64] 3060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6468 .loc 1 3060 7 view .LVU2289 3069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6469 .loc 1 3069 7 view .LVU2290 6470 0104 0121 movs r1, #1 6471 0106 2046 mov r0, r4 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 283 6472 0108 FFF7FEFF bl I2C_Enable_IRQ 6473 .LVL439: 3086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6474 .loc 1 3086 5 view .LVU2291 3086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6475 .loc 1 3086 12 is_stmt 0 view .LVU2292 6476 010c 00E0 b .L411 6477 .LVL440: 6478 .L420: 3090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6479 .loc 1 3090 12 view .LVU2293 6480 010e 0225 movs r5, #2 6481 .LVL441: 6482 .L411: 3092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6483 .loc 1 3092 1 view .LVU2294 6484 0110 2846 mov r0, r5 6485 0112 03B0 add sp, sp, #12 6486 .cfi_remember_state 6487 .cfi_def_cfa_offset 20 6488 @ sp needed 6489 0114 F0BD pop {r4, r5, r6, r7, pc} 6490 .LVL442: 6491 .L421: 6492 .cfi_restore_state 2978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6493 .loc 1 2978 14 view .LVU2295 6494 0116 0225 movs r5, #2 6495 0118 FAE7 b .L411 6496 .L422: 2982:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6497 .loc 1 2982 5 discriminator 1 view .LVU2296 6498 011a 0225 movs r5, #2 6499 011c F8E7 b .L411 6500 .L429: 6501 011e 00BF .align 2 6502 .L428: 6503 0120 0000FFFF .word -65536 6504 0124 00000000 .word I2C_Mem_ISR_DMA 6505 0128 00000000 .word I2C_DMAMasterTransmitCplt 6506 012c 00000000 .word I2C_DMAError 6507 0130 00200080 .word -2147475456 6508 .cfi_endproc 6509 .LFE355: 6511 .section .text.HAL_I2C_Mem_Read_DMA,"ax",%progbits 6512 .align 1 6513 .global HAL_I2C_Mem_Read_DMA 6514 .syntax unified 6515 .thumb 6516 .thumb_func 6518 HAL_I2C_Mem_Read_DMA: 6519 .LVL443: 6520 .LFB356: 3108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6521 .loc 1 3108 1 is_stmt 1 view -0 6522 .cfi_startproc 6523 @ args = 8, pretend = 0, frame = 0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 284 6524 @ frame_needed = 0, uses_anonymous_args = 0 3108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 6525 .loc 1 3108 1 is_stmt 0 view .LVU2298 6526 0000 F0B5 push {r4, r5, r6, r7, lr} 6527 .cfi_def_cfa_offset 20 6528 .cfi_offset 4, -20 6529 .cfi_offset 5, -16 6530 .cfi_offset 6, -12 6531 .cfi_offset 7, -8 6532 .cfi_offset 14, -4 6533 0002 83B0 sub sp, sp, #12 6534 .cfi_def_cfa_offset 32 6535 0004 0446 mov r4, r0 6536 0006 1F46 mov r7, r3 6537 0008 089D ldr r5, [sp, #32] 6538 000a BDF82430 ldrh r3, [sp, #36] 6539 .LVL444: 3109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6540 .loc 1 3109 3 is_stmt 1 view .LVU2299 3112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6541 .loc 1 3112 3 view .LVU2300 3114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6542 .loc 1 3114 3 view .LVU2301 3114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6543 .loc 1 3114 11 is_stmt 0 view .LVU2302 6544 000e 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 6545 .LVL445: 3114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6546 .loc 1 3114 6 view .LVU2303 6547 0012 2028 cmp r0, #32 6548 0014 7BD1 bne .L440 6549 0016 0E46 mov r6, r1 3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6550 .loc 1 3116 5 is_stmt 1 view .LVU2304 3116:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6551 .loc 1 3116 8 is_stmt 0 view .LVU2305 6552 0018 002B cmp r3, #0 6553 001a 18BF it ne 6554 001c 002D cmpne r5, #0 6555 001e 4AD0 beq .L445 3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6556 .loc 1 3122 5 is_stmt 1 view .LVU2306 3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6557 .loc 1 3122 9 is_stmt 0 view .LVU2307 6558 0020 2168 ldr r1, [r4] 6559 .LVL446: 3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6560 .loc 1 3122 9 view .LVU2308 6561 0022 8869 ldr r0, [r1, #24] 3122:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6562 .loc 1 3122 8 view .LVU2309 6563 0024 10F4004F tst r0, #32768 6564 0028 75D1 bne .L441 3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6565 .loc 1 3128 5 is_stmt 1 view .LVU2310 3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6566 .loc 1 3128 5 view .LVU2311 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 285 6567 002a 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 6568 002e 0128 cmp r0, #1 6569 0030 73D0 beq .L442 3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6570 .loc 1 3128 5 discriminator 2 view .LVU2312 6571 0032 0120 movs r0, #1 6572 0034 84F84000 strb r0, [r4, #64] 3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6573 .loc 1 3128 5 view .LVU2313 3130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6574 .loc 1 3130 5 view .LVU2314 3130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MEM; 6575 .loc 1 3130 23 is_stmt 0 view .LVU2315 6576 0038 2220 movs r0, #34 6577 003a 84F84100 strb r0, [r4, #65] 3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6578 .loc 1 3131 5 is_stmt 1 view .LVU2316 3131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6579 .loc 1 3131 23 is_stmt 0 view .LVU2317 6580 003e 4020 movs r0, #64 6581 0040 84F84200 strb r0, [r4, #66] 3132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6582 .loc 1 3132 5 is_stmt 1 view .LVU2318 3132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6583 .loc 1 3132 23 is_stmt 0 view .LVU2319 6584 0044 0020 movs r0, #0 6585 0046 6064 str r0, [r4, #68] 3135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6586 .loc 1 3135 5 is_stmt 1 view .LVU2320 3135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 6587 .loc 1 3135 23 is_stmt 0 view .LVU2321 6588 0048 6562 str r5, [r4, #36] 3136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6589 .loc 1 3136 5 is_stmt 1 view .LVU2322 3136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 6590 .loc 1 3136 23 is_stmt 0 view .LVU2323 6591 004a 6385 strh r3, [r4, #42] @ movhi 3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6592 .loc 1 3137 5 is_stmt 1 view .LVU2324 3137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Mem_ISR_DMA; 6593 .loc 1 3137 23 is_stmt 0 view .LVU2325 6594 004c 344B ldr r3, .L448 6595 004e E362 str r3, [r4, #44] 3138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6596 .loc 1 3138 5 is_stmt 1 view .LVU2326 3138:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Devaddress = DevAddress; 6597 .loc 1 3138 23 is_stmt 0 view .LVU2327 6598 0050 344B ldr r3, .L448+4 6599 0052 6363 str r3, [r4, #52] 3139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6600 .loc 1 3139 5 is_stmt 1 view .LVU2328 3139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6601 .loc 1 3139 23 is_stmt 0 view .LVU2329 6602 0054 E664 str r6, [r4, #76] 3141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6603 .loc 1 3141 5 is_stmt 1 view .LVU2330 3141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 286 6604 .loc 1 3141 13 is_stmt 0 view .LVU2331 6605 0056 638D ldrh r3, [r4, #42] 6606 0058 9BB2 uxth r3, r3 3141:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6607 .loc 1 3141 8 view .LVU2332 6608 005a FF2B cmp r3, #255 6609 005c 30D9 bls .L433 3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6610 .loc 1 3143 7 is_stmt 1 view .LVU2333 3143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6611 .loc 1 3143 22 is_stmt 0 view .LVU2334 6612 005e FF23 movs r3, #255 6613 0060 2385 strh r3, [r4, #40] @ movhi 6614 .L434: 3151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6615 .loc 1 3151 5 is_stmt 1 view .LVU2335 3151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6616 .loc 1 3151 8 is_stmt 0 view .LVU2336 6617 0062 012F cmp r7, #1 6618 0064 2FD0 beq .L446 3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6619 .loc 1 3163 7 is_stmt 1 view .LVU2337 3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6620 .loc 1 3163 30 is_stmt 0 view .LVU2338 6621 0066 130A lsrs r3, r2, #8 3163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6622 .loc 1 3163 28 view .LVU2339 6623 0068 8B62 str r3, [r1, #40] 3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6624 .loc 1 3166 7 is_stmt 1 view .LVU2340 3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6625 .loc 1 3166 26 is_stmt 0 view .LVU2341 6626 006a D2B2 uxtb r2, r2 6627 .LVL447: 3166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6628 .loc 1 3166 24 view .LVU2342 6629 006c 2265 str r2, [r4, #80] 6630 .L436: 3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6631 .loc 1 3169 5 is_stmt 1 view .LVU2343 3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6632 .loc 1 3169 13 is_stmt 0 view .LVU2344 6633 006e E36B ldr r3, [r4, #60] 3169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6634 .loc 1 3169 8 view .LVU2345 6635 0070 002B cmp r3, #0 6636 0072 2ED0 beq .L437 3172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6637 .loc 1 3172 7 is_stmt 1 view .LVU2346 3172:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6638 .loc 1 3172 38 is_stmt 0 view .LVU2347 6639 0074 2C4A ldr r2, .L448+8 6640 0076 DA63 str r2, [r3, #60] 3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6641 .loc 1 3175 7 is_stmt 1 view .LVU2348 3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6642 .loc 1 3175 11 is_stmt 0 view .LVU2349 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 287 6643 0078 E36B ldr r3, [r4, #60] 3175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6644 .loc 1 3175 39 view .LVU2350 6645 007a 2C4A ldr r2, .L448+12 6646 007c DA64 str r2, [r3, #76] 3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6647 .loc 1 3178 7 is_stmt 1 view .LVU2351 3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6648 .loc 1 3178 11 is_stmt 0 view .LVU2352 6649 007e E26B ldr r2, [r4, #60] 3178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 6650 .loc 1 3178 42 view .LVU2353 6651 0080 0023 movs r3, #0 6652 0082 1364 str r3, [r2, #64] 3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6653 .loc 1 3179 7 is_stmt 1 view .LVU2354 3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6654 .loc 1 3179 11 is_stmt 0 view .LVU2355 6655 0084 E26B ldr r2, [r4, #60] 3179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6656 .loc 1 3179 39 view .LVU2356 6657 0086 1365 str r3, [r2, #80] 3182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 6658 .loc 1 3182 7 is_stmt 1 view .LVU2357 3182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 6659 .loc 1 3182 69 is_stmt 0 view .LVU2358 6660 0088 2168 ldr r1, [r4] 3182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 6661 .loc 1 3182 23 view .LVU2359 6662 008a 238D ldrh r3, [r4, #40] 6663 008c 2A46 mov r2, r5 6664 008e 2431 adds r1, r1, #36 6665 0090 E06B ldr r0, [r4, #60] 6666 0092 FFF7FEFF bl HAL_DMA_Start_IT 6667 .LVL448: 3200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6668 .loc 1 3200 5 is_stmt 1 view .LVU2360 3200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6669 .loc 1 3200 8 is_stmt 0 view .LVU2361 6670 0096 0546 mov r5, r0 6671 0098 48B3 cbz r0, .L447 3220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6672 .loc 1 3220 7 is_stmt 1 view .LVU2362 3220:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6673 .loc 1 3220 23 is_stmt 0 view .LVU2363 6674 009a 2023 movs r3, #32 6675 009c 84F84130 strb r3, [r4, #65] 3221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6676 .loc 1 3221 7 is_stmt 1 view .LVU2364 3221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6677 .loc 1 3221 23 is_stmt 0 view .LVU2365 6678 00a0 0022 movs r2, #0 6679 00a2 84F84220 strb r2, [r4, #66] 3224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6680 .loc 1 3224 7 is_stmt 1 view .LVU2366 3224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6681 .loc 1 3224 11 is_stmt 0 view .LVU2367 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 288 6682 00a6 636C ldr r3, [r4, #68] 3224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6683 .loc 1 3224 23 view .LVU2368 6684 00a8 43F01003 orr r3, r3, #16 6685 00ac 6364 str r3, [r4, #68] 3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6686 .loc 1 3227 7 is_stmt 1 view .LVU2369 3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6687 .loc 1 3227 7 view .LVU2370 6688 00ae 84F84020 strb r2, [r4, #64] 3227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6689 .loc 1 3227 7 view .LVU2371 3229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6690 .loc 1 3229 7 view .LVU2372 3229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6691 .loc 1 3229 14 is_stmt 0 view .LVU2373 6692 00b2 0125 movs r5, #1 6693 00b4 2CE0 b .L431 6694 .LVL449: 6695 .L445: 3118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6696 .loc 1 3118 7 is_stmt 1 view .LVU2374 3118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 6697 .loc 1 3118 23 is_stmt 0 view .LVU2375 6698 00b6 4FF40073 mov r3, #512 6699 00ba 6364 str r3, [r4, #68] 3119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6700 .loc 1 3119 7 is_stmt 1 view .LVU2376 3119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6701 .loc 1 3119 15 is_stmt 0 view .LVU2377 6702 00bc 0125 movs r5, #1 6703 00be 27E0 b .L431 6704 .LVL450: 6705 .L433: 3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6706 .loc 1 3147 7 is_stmt 1 view .LVU2378 3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6707 .loc 1 3147 28 is_stmt 0 view .LVU2379 6708 00c0 638D ldrh r3, [r4, #42] 3147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6709 .loc 1 3147 22 view .LVU2380 6710 00c2 2385 strh r3, [r4, #40] @ movhi 6711 00c4 CDE7 b .L434 6712 .L446: 3154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6713 .loc 1 3154 7 is_stmt 1 view .LVU2381 3154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6714 .loc 1 3154 30 is_stmt 0 view .LVU2382 6715 00c6 D2B2 uxtb r2, r2 6716 .LVL451: 3154:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6717 .loc 1 3154 28 view .LVU2383 6718 00c8 8A62 str r2, [r1, #40] 3157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6719 .loc 1 3157 7 is_stmt 1 view .LVU2384 3157:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6720 .loc 1 3157 24 is_stmt 0 view .LVU2385 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 289 6721 00ca 4FF0FF33 mov r3, #-1 6722 00ce 2365 str r3, [r4, #80] 6723 00d0 CDE7 b .L436 6724 .L437: 3188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6725 .loc 1 3188 7 is_stmt 1 view .LVU2386 3188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 6726 .loc 1 3188 23 is_stmt 0 view .LVU2387 6727 00d2 2023 movs r3, #32 6728 00d4 84F84130 strb r3, [r4, #65] 3189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6729 .loc 1 3189 7 is_stmt 1 view .LVU2388 3189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6730 .loc 1 3189 23 is_stmt 0 view .LVU2389 6731 00d8 0022 movs r2, #0 6732 00da 84F84220 strb r2, [r4, #66] 3192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6733 .loc 1 3192 7 is_stmt 1 view .LVU2390 3192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6734 .loc 1 3192 11 is_stmt 0 view .LVU2391 6735 00de 636C ldr r3, [r4, #68] 3192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6736 .loc 1 3192 23 view .LVU2392 6737 00e0 43F08003 orr r3, r3, #128 6738 00e4 6364 str r3, [r4, #68] 3195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6739 .loc 1 3195 7 is_stmt 1 view .LVU2393 3195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6740 .loc 1 3195 7 view .LVU2394 6741 00e6 84F84020 strb r2, [r4, #64] 3195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6742 .loc 1 3195 7 view .LVU2395 3197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6743 .loc 1 3197 7 view .LVU2396 3197:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6744 .loc 1 3197 14 is_stmt 0 view .LVU2397 6745 00ea 0125 movs r5, #1 6746 00ec 10E0 b .L431 6747 .LVL452: 6748 .L447: 3203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6749 .loc 1 3203 7 is_stmt 1 view .LVU2398 6750 00ee 104B ldr r3, .L448+16 6751 00f0 0093 str r3, [sp] 6752 00f2 0023 movs r3, #0 6753 00f4 FAB2 uxtb r2, r7 6754 00f6 3146 mov r1, r6 6755 00f8 2046 mov r0, r4 6756 .LVL453: 3203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6757 .loc 1 3203 7 is_stmt 0 view .LVU2399 6758 00fa FFF7FEFF bl I2C_TransferConfig 6759 .LVL454: 3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6760 .loc 1 3206 7 is_stmt 1 view .LVU2400 3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6761 .loc 1 3206 7 view .LVU2401 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 290 6762 00fe 0023 movs r3, #0 6763 0100 84F84030 strb r3, [r4, #64] 3206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6764 .loc 1 3206 7 view .LVU2402 3215:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6765 .loc 1 3215 7 view .LVU2403 6766 0104 0121 movs r1, #1 6767 0106 2046 mov r0, r4 6768 0108 FFF7FEFF bl I2C_Enable_IRQ 6769 .LVL455: 3232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6770 .loc 1 3232 5 view .LVU2404 3232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6771 .loc 1 3232 12 is_stmt 0 view .LVU2405 6772 010c 00E0 b .L431 6773 .LVL456: 6774 .L440: 3236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6775 .loc 1 3236 12 view .LVU2406 6776 010e 0225 movs r5, #2 6777 .LVL457: 6778 .L431: 3238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6779 .loc 1 3238 1 view .LVU2407 6780 0110 2846 mov r0, r5 6781 0112 03B0 add sp, sp, #12 6782 .cfi_remember_state 6783 .cfi_def_cfa_offset 20 6784 @ sp needed 6785 0114 F0BD pop {r4, r5, r6, r7, pc} 6786 .LVL458: 6787 .L441: 6788 .cfi_restore_state 3124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6789 .loc 1 3124 14 view .LVU2408 6790 0116 0225 movs r5, #2 6791 0118 FAE7 b .L431 6792 .L442: 3128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6793 .loc 1 3128 5 discriminator 1 view .LVU2409 6794 011a 0225 movs r5, #2 6795 011c F8E7 b .L431 6796 .L449: 6797 011e 00BF .align 2 6798 .L448: 6799 0120 0000FFFF .word -65536 6800 0124 00000000 .word I2C_Mem_ISR_DMA 6801 0128 00000000 .word I2C_DMAMasterReceiveCplt 6802 012c 00000000 .word I2C_DMAError 6803 0130 00200080 .word -2147475456 6804 .cfi_endproc 6805 .LFE356: 6807 .section .text.HAL_I2C_IsDeviceReady,"ax",%progbits 6808 .align 1 6809 .global HAL_I2C_IsDeviceReady 6810 .syntax unified 6811 .thumb ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 291 6812 .thumb_func 6814 HAL_I2C_IsDeviceReady: 6815 .LVL459: 6816 .LFB357: 3253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 6817 .loc 1 3253 1 is_stmt 1 view -0 6818 .cfi_startproc 6819 @ args = 0, pretend = 0, frame = 8 6820 @ frame_needed = 0, uses_anonymous_args = 0 3253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tickstart; 6821 .loc 1 3253 1 is_stmt 0 view .LVU2411 6822 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 6823 .cfi_def_cfa_offset 28 6824 .cfi_offset 4, -28 6825 .cfi_offset 5, -24 6826 .cfi_offset 6, -20 6827 .cfi_offset 7, -16 6828 .cfi_offset 8, -12 6829 .cfi_offset 9, -8 6830 .cfi_offset 14, -4 6831 0004 85B0 sub sp, sp, #20 6832 .cfi_def_cfa_offset 48 6833 0006 1D46 mov r5, r3 3254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6834 .loc 1 3254 3 is_stmt 1 view .LVU2412 3256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6835 .loc 1 3256 3 view .LVU2413 3256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6836 .loc 1 3256 17 is_stmt 0 view .LVU2414 6837 0008 0023 movs r3, #0 6838 .LVL460: 3256:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6839 .loc 1 3256 17 view .LVU2415 6840 000a 0393 str r3, [sp, #12] 3258:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** FlagStatus tmp2; 6841 .loc 1 3258 3 is_stmt 1 view .LVU2416 3259:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6842 .loc 1 3259 3 view .LVU2417 3261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6843 .loc 1 3261 3 view .LVU2418 3261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6844 .loc 1 3261 11 is_stmt 0 view .LVU2419 6845 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 3261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6846 .loc 1 3261 6 view .LVU2420 6847 0010 202B cmp r3, #32 6848 0012 40F08380 bne .L460 6849 0016 0646 mov r6, r0 6850 0018 8846 mov r8, r1 6851 001a 9146 mov r9, r2 3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6852 .loc 1 3263 5 is_stmt 1 view .LVU2421 3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6853 .loc 1 3263 9 is_stmt 0 view .LVU2422 6854 001c 0368 ldr r3, [r0] 6855 001e 9B69 ldr r3, [r3, #24] 3263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 292 6856 .loc 1 3263 8 view .LVU2423 6857 0020 13F4004F tst r3, #32768 6858 0024 7CD1 bne .L461 3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6859 .loc 1 3269 5 is_stmt 1 view .LVU2424 3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6860 .loc 1 3269 5 view .LVU2425 6861 0026 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 6862 002a 012B cmp r3, #1 6863 002c 7AD0 beq .L462 3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6864 .loc 1 3269 5 discriminator 2 view .LVU2426 6865 002e 0123 movs r3, #1 6866 0030 80F84030 strb r3, [r0, #64] 3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6867 .loc 1 3269 5 view .LVU2427 3271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6868 .loc 1 3271 5 view .LVU2428 3271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 6869 .loc 1 3271 17 is_stmt 0 view .LVU2429 6870 0034 2423 movs r3, #36 6871 0036 80F84130 strb r3, [r0, #65] 3272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6872 .loc 1 3272 5 is_stmt 1 view .LVU2430 3272:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6873 .loc 1 3272 21 is_stmt 0 view .LVU2431 6874 003a 0023 movs r3, #0 6875 003c 4364 str r3, [r0, #68] 6876 .LVL461: 6877 .L459: 3274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6878 .loc 1 3274 5 is_stmt 1 view .LVU2432 3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6879 .loc 1 3277 7 view .LVU2433 3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6880 .loc 1 3277 29 is_stmt 0 view .LVU2434 6881 003e F368 ldr r3, [r6, #12] 6882 0040 012B cmp r3, #1 6883 0042 10D0 beq .L466 3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6884 .loc 1 3277 29 discriminator 2 view .LVU2435 6885 0044 C8F30902 ubfx r2, r8, #0, #10 6886 0048 394B ldr r3, .L469 6887 004a 1343 orrs r3, r3, r2 6888 .L453: 3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6889 .loc 1 3277 11 discriminator 4 view .LVU2436 6890 004c 3268 ldr r2, [r6] 3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6891 .loc 1 3277 27 discriminator 4 view .LVU2437 6892 004e 5360 str r3, [r2, #4] 3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6893 .loc 1 3281 7 is_stmt 1 view .LVU2438 3281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6894 .loc 1 3281 19 is_stmt 0 view .LVU2439 6895 0050 FFF7FEFF bl HAL_GetTick 6896 .LVL462: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 293 6897 0054 0746 mov r7, r0 6898 .LVL463: 3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6899 .loc 1 3283 7 is_stmt 1 view .LVU2440 3283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6900 .loc 1 3283 14 is_stmt 0 view .LVU2441 6901 0056 3268 ldr r2, [r6] 6902 0058 9369 ldr r3, [r2, #24] 6903 005a C3F3401C ubfx ip, r3, #5, #1 6904 .LVL464: 3284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6905 .loc 1 3284 7 is_stmt 1 view .LVU2442 3284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6906 .loc 1 3284 14 is_stmt 0 view .LVU2443 6907 005e 9369 ldr r3, [r2, #24] 6908 0060 C3F30013 ubfx r3, r3, #4, #1 6909 .LVL465: 3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6910 .loc 1 3286 7 is_stmt 1 view .LVU2444 3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6911 .loc 1 3286 13 is_stmt 0 view .LVU2445 6912 0064 0BE0 b .L454 6913 .LVL466: 6914 .L466: 3277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6915 .loc 1 3277 29 discriminator 1 view .LVU2446 6916 0066 C8F30902 ubfx r2, r8, #0, #10 6917 006a 324B ldr r3, .L469+4 6918 006c 1343 orrs r3, r3, r2 6919 006e EDE7 b .L453 6920 .LVL467: 6921 .L455: 3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6922 .loc 1 3305 9 is_stmt 1 view .LVU2447 3305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** tmp2 = __HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_AF); 6923 .loc 1 3305 16 is_stmt 0 view .LVU2448 6924 0070 3368 ldr r3, [r6] 6925 0072 9C69 ldr r4, [r3, #24] 6926 0074 C4F3401C ubfx ip, r4, #5, #1 6927 .LVL468: 3306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6928 .loc 1 3306 9 is_stmt 1 view .LVU2449 3306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6929 .loc 1 3306 16 is_stmt 0 view .LVU2450 6930 0078 9B69 ldr r3, [r3, #24] 6931 007a C3F30013 ubfx r3, r3, #4, #1 6932 .LVL469: 6933 .L454: 3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6934 .loc 1 3286 30 is_stmt 1 view .LVU2451 6935 007e 5CEA030C orrs ip, ip, r3 6936 .LVL470: 3286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6937 .loc 1 3286 30 is_stmt 0 view .LVU2452 6938 0082 17D1 bne .L467 3288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6939 .loc 1 3288 9 is_stmt 1 view .LVU2453 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 294 3288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6940 .loc 1 3288 12 is_stmt 0 view .LVU2454 6941 0084 B5F1FF3F cmp r5, #-1 6942 0088 F2D0 beq .L455 3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6943 .loc 1 3290 11 is_stmt 1 view .LVU2455 3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6944 .loc 1 3290 17 is_stmt 0 view .LVU2456 6945 008a FFF7FEFF bl HAL_GetTick 6946 .LVL471: 3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6947 .loc 1 3290 31 discriminator 1 view .LVU2457 6948 008e C01B subs r0, r0, r7 3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6949 .loc 1 3290 14 discriminator 1 view .LVU2458 6950 0090 A842 cmp r0, r5 6951 0092 01D8 bhi .L456 3290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6952 .loc 1 3290 55 discriminator 1 view .LVU2459 6953 0094 002D cmp r5, #0 6954 0096 EBD1 bne .L455 6955 .L456: 3293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6956 .loc 1 3293 13 is_stmt 1 view .LVU2460 3293:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6957 .loc 1 3293 25 is_stmt 0 view .LVU2461 6958 0098 2023 movs r3, #32 6959 009a 86F84130 strb r3, [r6, #65] 3296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6960 .loc 1 3296 13 is_stmt 1 view .LVU2462 3296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6961 .loc 1 3296 17 is_stmt 0 view .LVU2463 6962 009e 736C ldr r3, [r6, #68] 3296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6963 .loc 1 3296 29 view .LVU2464 6964 00a0 43F02003 orr r3, r3, #32 6965 00a4 7364 str r3, [r6, #68] 3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6966 .loc 1 3299 13 is_stmt 1 view .LVU2465 3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6967 .loc 1 3299 13 view .LVU2466 6968 00a6 0023 movs r3, #0 6969 00a8 86F84030 strb r3, [r6, #64] 3299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6970 .loc 1 3299 13 view .LVU2467 3301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6971 .loc 1 3301 13 view .LVU2468 3301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 6972 .loc 1 3301 20 is_stmt 0 view .LVU2469 6973 00ac 0120 movs r0, #1 6974 .LVL472: 6975 .L451: 3363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 6976 .loc 1 3363 1 view .LVU2470 6977 00ae 05B0 add sp, sp, #20 6978 .cfi_remember_state 6979 .cfi_def_cfa_offset 28 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 295 6980 @ sp needed 6981 00b0 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 6982 .LVL473: 6983 .L467: 6984 .cfi_restore_state 3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6985 .loc 1 3310 7 is_stmt 1 view .LVU2471 3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6986 .loc 1 3310 11 is_stmt 0 view .LVU2472 6987 00b4 3368 ldr r3, [r6] 6988 .LVL474: 3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6989 .loc 1 3310 11 view .LVU2473 6990 00b6 9B69 ldr r3, [r3, #24] 3310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6991 .loc 1 3310 10 view .LVU2474 6992 00b8 13F0100F tst r3, #16 6993 00bc 1DD0 beq .L468 3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6994 .loc 1 3332 9 is_stmt 1 view .LVU2475 3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 6995 .loc 1 3332 13 is_stmt 0 view .LVU2476 6996 00be 0097 str r7, [sp] 6997 00c0 2B46 mov r3, r5 6998 00c2 0022 movs r2, #0 6999 00c4 2021 movs r1, #32 7000 00c6 3046 mov r0, r6 7001 00c8 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7002 .LVL475: 3332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7003 .loc 1 3332 12 discriminator 1 view .LVU2477 7004 00cc 70BB cbnz r0, .L464 3338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7005 .loc 1 3338 9 is_stmt 1 view .LVU2478 7006 00ce 3368 ldr r3, [r6] 7007 00d0 1022 movs r2, #16 7008 00d2 DA61 str r2, [r3, #28] 3341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7009 .loc 1 3341 9 view .LVU2479 7010 00d4 3368 ldr r3, [r6] 7011 00d6 2022 movs r2, #32 7012 00d8 DA61 str r2, [r3, #28] 3345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7013 .loc 1 3345 7 view .LVU2480 3345:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } while (I2C_Trials < Trials); 7014 .loc 1 3345 17 is_stmt 0 view .LVU2481 7015 00da 039B ldr r3, [sp, #12] 7016 00dc 0133 adds r3, r3, #1 7017 00de 0393 str r3, [sp, #12] 3346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7018 .loc 1 3346 25 is_stmt 1 view .LVU2482 7019 00e0 039B ldr r3, [sp, #12] 7020 00e2 4B45 cmp r3, r9 7021 00e4 ABD3 bcc .L459 3349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7022 .loc 1 3349 5 view .LVU2483 3349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 296 7023 .loc 1 3349 17 is_stmt 0 view .LVU2484 7024 00e6 86F84120 strb r2, [r6, #65] 3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7025 .loc 1 3352 5 is_stmt 1 view .LVU2485 3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7026 .loc 1 3352 9 is_stmt 0 view .LVU2486 7027 00ea 736C ldr r3, [r6, #68] 3352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7028 .loc 1 3352 21 view .LVU2487 7029 00ec 1343 orrs r3, r3, r2 7030 00ee 7364 str r3, [r6, #68] 3355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7031 .loc 1 3355 5 is_stmt 1 view .LVU2488 3355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7032 .loc 1 3355 5 view .LVU2489 7033 00f0 0023 movs r3, #0 7034 00f2 86F84030 strb r3, [r6, #64] 3355:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7035 .loc 1 3355 5 view .LVU2490 3357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7036 .loc 1 3357 5 view .LVU2491 3357:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7037 .loc 1 3357 12 is_stmt 0 view .LVU2492 7038 00f6 0120 movs r0, #1 7039 00f8 D9E7 b .L451 7040 .L468: 3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7041 .loc 1 3313 9 is_stmt 1 view .LVU2493 3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7042 .loc 1 3313 13 is_stmt 0 view .LVU2494 7043 00fa 0097 str r7, [sp] 7044 00fc 2B46 mov r3, r5 7045 00fe 0022 movs r2, #0 7046 0100 2021 movs r1, #32 7047 0102 3046 mov r0, r6 7048 0104 FFF7FEFF bl I2C_WaitOnFlagUntilTimeout 7049 .LVL476: 3313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7050 .loc 1 3313 12 discriminator 1 view .LVU2495 7051 0108 70B9 cbnz r0, .L463 3319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7052 .loc 1 3319 9 is_stmt 1 view .LVU2496 7053 010a 3268 ldr r2, [r6] 7054 010c 2023 movs r3, #32 7055 010e D361 str r3, [r2, #28] 3322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7056 .loc 1 3322 9 view .LVU2497 3322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7057 .loc 1 3322 21 is_stmt 0 view .LVU2498 7058 0110 86F84130 strb r3, [r6, #65] 3325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7059 .loc 1 3325 9 is_stmt 1 view .LVU2499 3325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7060 .loc 1 3325 9 view .LVU2500 7061 0114 0023 movs r3, #0 7062 0116 86F84030 strb r3, [r6, #64] 3325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 297 7063 .loc 1 3325 9 view .LVU2501 3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7064 .loc 1 3327 9 view .LVU2502 3327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7065 .loc 1 3327 16 is_stmt 0 view .LVU2503 7066 011a C8E7 b .L451 7067 .LVL477: 7068 .L460: 3361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7069 .loc 1 3361 12 view .LVU2504 7070 011c 0220 movs r0, #2 7071 .LVL478: 3361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7072 .loc 1 3361 12 view .LVU2505 7073 011e C6E7 b .L451 7074 .LVL479: 7075 .L461: 3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7076 .loc 1 3265 14 view .LVU2506 7077 0120 0220 movs r0, #2 7078 .LVL480: 3265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7079 .loc 1 3265 14 view .LVU2507 7080 0122 C4E7 b .L451 7081 .LVL481: 7082 .L462: 3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7083 .loc 1 3269 5 discriminator 1 view .LVU2508 7084 0124 0220 movs r0, #2 7085 .LVL482: 3269:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7086 .loc 1 3269 5 discriminator 1 view .LVU2509 7087 0126 C2E7 b .L451 7088 .LVL483: 7089 .L463: 3315:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7090 .loc 1 3315 18 view .LVU2510 7091 0128 0120 movs r0, #1 7092 012a C0E7 b .L451 7093 .L464: 3334:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7094 .loc 1 3334 18 view .LVU2511 7095 012c 0120 movs r0, #1 7096 012e BEE7 b .L451 7097 .L470: 7098 .align 2 7099 .L469: 7100 0130 00280002 .word 33564672 7101 0134 00200002 .word 33562624 7102 .cfi_endproc 7103 .LFE357: 7105 .section .text.HAL_I2C_Master_Seq_Transmit_IT,"ax",%progbits 7106 .align 1 7107 .global HAL_I2C_Master_Seq_Transmit_IT 7108 .syntax unified 7109 .thumb 7110 .thumb_func ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 298 7112 HAL_I2C_Master_Seq_Transmit_IT: 7113 .LVL484: 7114 .LFB358: 3379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7115 .loc 1 3379 1 is_stmt 1 view -0 7116 .cfi_startproc 7117 @ args = 4, pretend = 0, frame = 0 7118 @ frame_needed = 0, uses_anonymous_args = 0 3379:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7119 .loc 1 3379 1 is_stmt 0 view .LVU2513 7120 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 7121 .cfi_def_cfa_offset 24 7122 .cfi_offset 4, -24 7123 .cfi_offset 5, -20 7124 .cfi_offset 6, -16 7125 .cfi_offset 7, -12 7126 .cfi_offset 8, -8 7127 .cfi_offset 14, -4 7128 0004 82B0 sub sp, sp, #8 7129 .cfi_def_cfa_offset 32 7130 0006 0446 mov r4, r0 7131 0008 089E ldr r6, [sp, #32] 3380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7132 .loc 1 3380 3 is_stmt 1 view .LVU2514 3381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7133 .loc 1 3381 3 view .LVU2515 7134 .LVL485: 3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7135 .loc 1 3382 3 view .LVU2516 3385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7136 .loc 1 3385 3 view .LVU2517 3387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7137 .loc 1 3387 3 view .LVU2518 3387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7138 .loc 1 3387 11 is_stmt 0 view .LVU2519 7139 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7140 .LVL486: 3387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7141 .loc 1 3387 6 view .LVU2520 7142 000e 2028 cmp r0, #32 7143 0010 73D1 bne .L480 7144 0012 0D46 mov r5, r1 3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7145 .loc 1 3390 5 is_stmt 1 view .LVU2521 3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7146 .loc 1 3390 5 view .LVU2522 7147 0014 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7148 .LVL487: 3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7149 .loc 1 3390 5 is_stmt 0 view .LVU2523 7150 0018 0129 cmp r1, #1 7151 001a 70D0 beq .L481 3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7152 .loc 1 3390 5 is_stmt 1 discriminator 2 view .LVU2524 7153 001c 0121 movs r1, #1 7154 001e 84F84010 strb r1, [r4, #64] 3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 299 7155 .loc 1 3390 5 view .LVU2525 3392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7156 .loc 1 3392 5 view .LVU2526 3392:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7157 .loc 1 3392 21 is_stmt 0 view .LVU2527 7158 0022 2121 movs r1, #33 7159 0024 84F84110 strb r1, [r4, #65] 3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7160 .loc 1 3393 5 is_stmt 1 view .LVU2528 3393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7161 .loc 1 3393 21 is_stmt 0 view .LVU2529 7162 0028 1021 movs r1, #16 7163 002a 84F84210 strb r1, [r4, #66] 3394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7164 .loc 1 3394 5 is_stmt 1 view .LVU2530 3394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7165 .loc 1 3394 21 is_stmt 0 view .LVU2531 7166 002e 0021 movs r1, #0 7167 0030 6164 str r1, [r4, #68] 3397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7168 .loc 1 3397 5 is_stmt 1 view .LVU2532 3397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7169 .loc 1 3397 23 is_stmt 0 view .LVU2533 7170 0032 6262 str r2, [r4, #36] 3398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7171 .loc 1 3398 5 is_stmt 1 view .LVU2534 3398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7172 .loc 1 3398 23 is_stmt 0 view .LVU2535 7173 0034 6385 strh r3, [r4, #42] @ movhi 3399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7174 .loc 1 3399 5 is_stmt 1 view .LVU2536 3399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7175 .loc 1 3399 23 is_stmt 0 view .LVU2537 7176 0036 E662 str r6, [r4, #44] 3400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7177 .loc 1 3400 5 is_stmt 1 view .LVU2538 3400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7178 .loc 1 3400 23 is_stmt 0 view .LVU2539 7179 0038 324B ldr r3, .L487 7180 .LVL488: 3400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7181 .loc 1 3400 23 view .LVU2540 7182 003a 6363 str r3, [r4, #52] 3403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7183 .loc 1 3403 5 is_stmt 1 view .LVU2541 3403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7184 .loc 1 3403 13 is_stmt 0 view .LVU2542 7185 003c 638D ldrh r3, [r4, #42] 7186 003e 9BB2 uxth r3, r3 3403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7187 .loc 1 3403 8 view .LVU2543 7188 0040 FF2B cmp r3, #255 7189 0042 1BD9 bls .L473 3405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7190 .loc 1 3405 7 is_stmt 1 view .LVU2544 3405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7191 .loc 1 3405 22 is_stmt 0 view .LVU2545 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 300 7192 0044 FF23 movs r3, #255 7193 0046 2385 strh r3, [r4, #40] @ movhi 3406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7194 .loc 1 3406 7 is_stmt 1 view .LVU2546 7195 .LVL489: 3406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7196 .loc 1 3406 16 is_stmt 0 view .LVU2547 7197 0048 4FF08077 mov r7, #16777216 7198 .LVL490: 7199 .L474: 3414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7200 .loc 1 3414 5 is_stmt 1 view .LVU2548 3414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7201 .loc 1 3414 14 is_stmt 0 view .LVU2549 7202 004c 238D ldrh r3, [r4, #40] 3414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7203 .loc 1 3414 8 view .LVU2550 7204 004e CBB1 cbz r3, .L482 3414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7205 .loc 1 3414 31 discriminator 1 view .LVU2551 7206 0050 B6F1007F cmp r6, #33554432 7207 0054 18BF it ne 7208 0056 002E cmpne r6, #0 7209 0058 3FD1 bne .L483 3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7210 .loc 1 3419 7 is_stmt 1 view .LVU2552 3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7211 .loc 1 3419 11 is_stmt 0 view .LVU2553 7212 005a 2368 ldr r3, [r4] 3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7213 .loc 1 3419 30 view .LVU2554 7214 005c 1278 ldrb r2, [r2] @ zero_extendqisi2 7215 .LVL491: 3419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7216 .loc 1 3419 28 view .LVU2555 7217 005e 9A62 str r2, [r3, #40] 7218 .LVL492: 3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7219 .loc 1 3422 7 is_stmt 1 view .LVU2556 3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7220 .loc 1 3422 11 is_stmt 0 view .LVU2557 7221 0060 636A ldr r3, [r4, #36] 3422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7222 .loc 1 3422 21 view .LVU2558 7223 0062 0133 adds r3, r3, #1 7224 0064 6362 str r3, [r4, #36] 3424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 7225 .loc 1 3424 7 is_stmt 1 view .LVU2559 3424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 7226 .loc 1 3424 24 is_stmt 0 view .LVU2560 7227 0066 B4F82880 ldrh r8, [r4, #40] 7228 .LVL493: 3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 7229 .loc 1 3425 7 is_stmt 1 view .LVU2561 3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 7230 .loc 1 3425 11 is_stmt 0 view .LVU2562 7231 006a 638D ldrh r3, [r4, #42] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 301 7232 006c 9BB2 uxth r3, r3 3425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 7233 .loc 1 3425 22 view .LVU2563 7234 006e 013B subs r3, r3, #1 7235 0070 9BB2 uxth r3, r3 7236 0072 6385 strh r3, [r4, #42] @ movhi 3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7237 .loc 1 3426 7 is_stmt 1 view .LVU2564 3426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7238 .loc 1 3426 21 is_stmt 0 view .LVU2565 7239 0074 08F1FF33 add r3, r8, #-1 7240 0078 2385 strh r3, [r4, #40] @ movhi 7241 007a 05E0 b .L475 7242 .LVL494: 7243 .L473: 3410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7244 .loc 1 3410 7 is_stmt 1 view .LVU2566 3410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7245 .loc 1 3410 28 is_stmt 0 view .LVU2567 7246 007c 638D ldrh r3, [r4, #42] 3410:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7247 .loc 1 3410 22 view .LVU2568 7248 007e 2385 strh r3, [r4, #40] @ movhi 3411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7249 .loc 1 3411 7 is_stmt 1 view .LVU2569 3411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7250 .loc 1 3411 16 is_stmt 0 view .LVU2570 7251 0080 E76A ldr r7, [r4, #44] 7252 0082 E3E7 b .L474 7253 .LVL495: 7254 .L482: 3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7255 .loc 1 3382 12 view .LVU2571 7256 0084 4FF00008 mov r8, #0 7257 .LVL496: 7258 .L475: 3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7259 .loc 1 3432 5 is_stmt 1 view .LVU2572 3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7260 .loc 1 3432 14 is_stmt 0 view .LVU2573 7261 0088 236B ldr r3, [r4, #48] 3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7262 .loc 1 3432 8 view .LVU2574 7263 008a 112B cmp r3, #17 7264 008c 04D1 bne .L476 3432:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7265 .loc 1 3432 59 discriminator 1 view .LVU2575 7266 008e B6F52A4F cmp r6, #43520 7267 0092 18BF it ne 7268 0094 AA2E cmpne r6, #170 7269 0096 23D1 bne .L484 7270 .L476: 3440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7271 .loc 1 3440 7 is_stmt 1 view .LVU2576 7272 0098 2046 mov r0, r4 7273 009a FFF7FEFF bl I2C_ConvertOtherXferOptions 7274 .LVL497: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 302 3443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7275 .loc 1 3443 7 view .LVU2577 3443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7276 .loc 1 3443 15 is_stmt 0 view .LVU2578 7277 009e 638D ldrh r3, [r4, #42] 7278 00a0 9BB2 uxth r3, r3 3443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7279 .loc 1 3443 10 view .LVU2579 7280 00a2 FF2B cmp r3, #255 7281 00a4 1ED8 bhi .L485 3445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7282 .loc 1 3445 9 is_stmt 1 view .LVU2580 3445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7283 .loc 1 3445 18 is_stmt 0 view .LVU2581 7284 00a6 E76A ldr r7, [r4, #44] 7285 .LVL498: 3381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7286 .loc 1 3381 12 view .LVU2582 7287 00a8 174B ldr r3, .L487+4 7288 .L477: 7289 .LVL499: 3450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7290 .loc 1 3450 5 is_stmt 1 view .LVU2583 3450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7291 .loc 1 3450 8 is_stmt 0 view .LVU2584 7292 00aa B6F1007F cmp r6, #33554432 7293 00ae 18BF it ne 7294 00b0 002E cmpne r6, #0 7295 00b2 19D1 bne .L478 3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7296 .loc 1 3452 7 is_stmt 1 view .LVU2585 7297 00b4 0093 str r3, [sp] 7298 00b6 3B46 mov r3, r7 7299 .LVL500: 3452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7300 .loc 1 3452 7 is_stmt 0 view .LVU2586 7301 00b8 5FFA88F2 uxtb r2, r8 7302 00bc 2946 mov r1, r5 7303 00be 2046 mov r0, r4 7304 00c0 FFF7FEFF bl I2C_TransferConfig 7305 .LVL501: 7306 .L479: 3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7307 .loc 1 3460 5 is_stmt 1 view .LVU2587 3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7308 .loc 1 3460 5 view .LVU2588 7309 00c4 0025 movs r5, #0 7310 .LVL502: 3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7311 .loc 1 3460 5 is_stmt 0 view .LVU2589 7312 00c6 84F84050 strb r5, [r4, #64] 3460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7313 .loc 1 3460 5 is_stmt 1 view .LVU2590 3469:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7314 .loc 1 3469 5 view .LVU2591 7315 00ca 0121 movs r1, #1 7316 00cc 2046 mov r0, r4 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 303 7317 00ce FFF7FEFF bl I2C_Enable_IRQ 7318 .LVL503: 3471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7319 .loc 1 3471 5 view .LVU2592 3471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7320 .loc 1 3471 12 is_stmt 0 view .LVU2593 7321 00d2 2846 mov r0, r5 7322 .LVL504: 7323 .L472: 3477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7324 .loc 1 3477 1 view .LVU2594 7325 00d4 02B0 add sp, sp, #8 7326 .cfi_remember_state 7327 .cfi_def_cfa_offset 24 7328 @ sp needed 7329 00d6 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 7330 .LVL505: 7331 .L483: 7332 .cfi_restore_state 3382:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7333 .loc 1 3382 12 view .LVU2595 7334 00da 4FF00008 mov r8, #0 7335 00de D3E7 b .L475 7336 .LVL506: 7337 .L484: 3435:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7338 .loc 1 3435 19 view .LVU2596 7339 00e0 0023 movs r3, #0 7340 00e2 E2E7 b .L477 7341 .L485: 3381:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7342 .loc 1 3381 12 view .LVU2597 7343 00e4 084B ldr r3, .L487+4 7344 00e6 E0E7 b .L477 7345 .LVL507: 7346 .L478: 3456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7347 .loc 1 3456 7 is_stmt 1 view .LVU2598 7348 00e8 0093 str r3, [sp] 7349 00ea 3B46 mov r3, r7 7350 .LVL508: 3456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7351 .loc 1 3456 7 is_stmt 0 view .LVU2599 7352 00ec 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7353 00f0 2946 mov r1, r5 7354 00f2 2046 mov r0, r4 7355 00f4 FFF7FEFF bl I2C_TransferConfig 7356 .LVL509: 3456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7357 .loc 1 3456 7 view .LVU2600 7358 00f8 E4E7 b .L479 7359 .LVL510: 7360 .L480: 3475:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7361 .loc 1 3475 12 view .LVU2601 7362 00fa 0220 movs r0, #2 7363 00fc EAE7 b .L472 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 304 7364 .LVL511: 7365 .L481: 3390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7366 .loc 1 3390 5 discriminator 1 view .LVU2602 7367 00fe 0220 movs r0, #2 7368 0100 E8E7 b .L472 7369 .L488: 7370 0102 00BF .align 2 7371 .L487: 7372 0104 00000000 .word I2C_Master_ISR_IT 7373 0108 00200080 .word -2147475456 7374 .cfi_endproc 7375 .LFE358: 7377 .section .text.HAL_I2C_Master_Seq_Transmit_DMA,"ax",%progbits 7378 .align 1 7379 .global HAL_I2C_Master_Seq_Transmit_DMA 7380 .syntax unified 7381 .thumb 7382 .thumb_func 7384 HAL_I2C_Master_Seq_Transmit_DMA: 7385 .LVL512: 7386 .LFB359: 3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7387 .loc 1 3493 1 is_stmt 1 view -0 7388 .cfi_startproc 7389 @ args = 4, pretend = 0, frame = 0 7390 @ frame_needed = 0, uses_anonymous_args = 0 3493:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7391 .loc 1 3493 1 is_stmt 0 view .LVU2604 7392 0000 2DE9F043 push {r4, r5, r6, r7, r8, r9, lr} 7393 .cfi_def_cfa_offset 28 7394 .cfi_offset 4, -28 7395 .cfi_offset 5, -24 7396 .cfi_offset 6, -20 7397 .cfi_offset 7, -16 7398 .cfi_offset 8, -12 7399 .cfi_offset 9, -8 7400 .cfi_offset 14, -4 7401 0004 83B0 sub sp, sp, #12 7402 .cfi_def_cfa_offset 40 7403 0006 0446 mov r4, r0 7404 0008 0A9E ldr r6, [sp, #40] 3494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_WRITE; 7405 .loc 1 3494 3 is_stmt 1 view .LVU2605 3495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7406 .loc 1 3495 3 view .LVU2606 7407 .LVL513: 3496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t sizetoxfer = 0U; 7408 .loc 1 3496 3 view .LVU2607 3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7409 .loc 1 3497 3 view .LVU2608 3500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7410 .loc 1 3500 3 view .LVU2609 3502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7411 .loc 1 3502 3 view .LVU2610 3502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7412 .loc 1 3502 11 is_stmt 0 view .LVU2611 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 305 7413 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7414 .LVL514: 3502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7415 .loc 1 3502 6 view .LVU2612 7416 000e 2028 cmp r0, #32 7417 0010 40F0D780 bne .L505 7418 0014 0D46 mov r5, r1 3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7419 .loc 1 3505 5 is_stmt 1 view .LVU2613 3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7420 .loc 1 3505 5 view .LVU2614 7421 0016 94F84010 ldrb r1, [r4, #64] @ zero_extendqisi2 7422 .LVL515: 3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7423 .loc 1 3505 5 is_stmt 0 view .LVU2615 7424 001a 0129 cmp r1, #1 7425 001c 00F0D580 beq .L506 3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7426 .loc 1 3505 5 is_stmt 1 discriminator 2 view .LVU2616 7427 0020 0121 movs r1, #1 7428 0022 84F84010 strb r1, [r4, #64] 3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7429 .loc 1 3505 5 view .LVU2617 3507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7430 .loc 1 3507 5 view .LVU2618 3507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7431 .loc 1 3507 21 is_stmt 0 view .LVU2619 7432 0026 2121 movs r1, #33 7433 0028 84F84110 strb r1, [r4, #65] 3508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7434 .loc 1 3508 5 is_stmt 1 view .LVU2620 3508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7435 .loc 1 3508 21 is_stmt 0 view .LVU2621 7436 002c 1021 movs r1, #16 7437 002e 84F84210 strb r1, [r4, #66] 3509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7438 .loc 1 3509 5 is_stmt 1 view .LVU2622 3509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7439 .loc 1 3509 21 is_stmt 0 view .LVU2623 7440 0032 0021 movs r1, #0 7441 0034 6164 str r1, [r4, #68] 3512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7442 .loc 1 3512 5 is_stmt 1 view .LVU2624 3512:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7443 .loc 1 3512 23 is_stmt 0 view .LVU2625 7444 0036 6262 str r2, [r4, #36] 3513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7445 .loc 1 3513 5 is_stmt 1 view .LVU2626 3513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7446 .loc 1 3513 23 is_stmt 0 view .LVU2627 7447 0038 6385 strh r3, [r4, #42] @ movhi 3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7448 .loc 1 3514 5 is_stmt 1 view .LVU2628 3514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 7449 .loc 1 3514 23 is_stmt 0 view .LVU2629 7450 003a E662 str r6, [r4, #44] 3515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 306 7451 .loc 1 3515 5 is_stmt 1 view .LVU2630 3515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7452 .loc 1 3515 23 is_stmt 0 view .LVU2631 7453 003c 644B ldr r3, .L513 7454 .LVL516: 3515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7455 .loc 1 3515 23 view .LVU2632 7456 003e 6363 str r3, [r4, #52] 3518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7457 .loc 1 3518 5 is_stmt 1 view .LVU2633 3518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7458 .loc 1 3518 13 is_stmt 0 view .LVU2634 7459 0040 638D ldrh r3, [r4, #42] 7460 0042 9BB2 uxth r3, r3 3518:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7461 .loc 1 3518 8 view .LVU2635 7462 0044 FF2B cmp r3, #255 7463 0046 1BD9 bls .L491 3520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7464 .loc 1 3520 7 is_stmt 1 view .LVU2636 3520:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7465 .loc 1 3520 22 is_stmt 0 view .LVU2637 7466 0048 FF23 movs r3, #255 7467 004a 2385 strh r3, [r4, #40] @ movhi 3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7468 .loc 1 3521 7 is_stmt 1 view .LVU2638 7469 .LVL517: 3521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7470 .loc 1 3521 16 is_stmt 0 view .LVU2639 7471 004c 4FF08077 mov r7, #16777216 7472 .LVL518: 7473 .L492: 3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7474 .loc 1 3529 5 is_stmt 1 view .LVU2640 3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7475 .loc 1 3529 14 is_stmt 0 view .LVU2641 7476 0050 238D ldrh r3, [r4, #40] 3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7477 .loc 1 3529 8 view .LVU2642 7478 0052 CBB1 cbz r3, .L507 3529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (XferOptions == I2C_FIRST_AND_LAST_FRAME))) 7479 .loc 1 3529 31 discriminator 1 view .LVU2643 7480 0054 B6F1007F cmp r6, #33554432 7481 0058 18BF it ne 7482 005a 002E cmpne r6, #0 7483 005c 29D1 bne .L508 3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7484 .loc 1 3534 7 is_stmt 1 view .LVU2644 3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7485 .loc 1 3534 11 is_stmt 0 view .LVU2645 7486 005e 2368 ldr r3, [r4] 3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7487 .loc 1 3534 30 view .LVU2646 7488 0060 1278 ldrb r2, [r2] @ zero_extendqisi2 7489 .LVL519: 3534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7490 .loc 1 3534 28 view .LVU2647 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 307 7491 0062 9A62 str r2, [r3, #40] 7492 .LVL520: 3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7493 .loc 1 3537 7 is_stmt 1 view .LVU2648 3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7494 .loc 1 3537 11 is_stmt 0 view .LVU2649 7495 0064 636A ldr r3, [r4, #36] 3537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7496 .loc 1 3537 21 view .LVU2650 7497 0066 0133 adds r3, r3, #1 7498 0068 6362 str r3, [r4, #36] 3539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 7499 .loc 1 3539 7 is_stmt 1 view .LVU2651 3539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 7500 .loc 1 3539 24 is_stmt 0 view .LVU2652 7501 006a B4F82880 ldrh r8, [r4, #40] 7502 .LVL521: 3540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 7503 .loc 1 3540 7 is_stmt 1 view .LVU2653 3540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 7504 .loc 1 3540 11 is_stmt 0 view .LVU2654 7505 006e 638D ldrh r3, [r4, #42] 7506 0070 9BB2 uxth r3, r3 3540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 7507 .loc 1 3540 22 view .LVU2655 7508 0072 013B subs r3, r3, #1 7509 0074 9BB2 uxth r3, r3 7510 0076 6385 strh r3, [r4, #42] @ movhi 3541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7511 .loc 1 3541 7 is_stmt 1 view .LVU2656 3541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7512 .loc 1 3541 21 is_stmt 0 view .LVU2657 7513 0078 08F1FF33 add r3, r8, #-1 7514 007c 2385 strh r3, [r4, #40] @ movhi 7515 007e 05E0 b .L493 7516 .LVL522: 7517 .L491: 3525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7518 .loc 1 3525 7 is_stmt 1 view .LVU2658 3525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7519 .loc 1 3525 28 is_stmt 0 view .LVU2659 7520 0080 638D ldrh r3, [r4, #42] 3525:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7521 .loc 1 3525 22 view .LVU2660 7522 0082 2385 strh r3, [r4, #40] @ movhi 3526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7523 .loc 1 3526 7 is_stmt 1 view .LVU2661 3526:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7524 .loc 1 3526 16 is_stmt 0 view .LVU2662 7525 0084 E76A ldr r7, [r4, #44] 7526 0086 E3E7 b .L492 7527 .LVL523: 7528 .L507: 3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7529 .loc 1 3497 12 view .LVU2663 7530 0088 4FF00008 mov r8, #0 7531 .LVL524: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 308 7532 .L493: 3547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7533 .loc 1 3547 5 is_stmt 1 view .LVU2664 3547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7534 .loc 1 3547 14 is_stmt 0 view .LVU2665 7535 008c 236B ldr r3, [r4, #48] 3547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7536 .loc 1 3547 8 view .LVU2666 7537 008e 112B cmp r3, #17 7538 0090 04D1 bne .L494 3547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7539 .loc 1 3547 59 discriminator 1 view .LVU2667 7540 0092 B6F52A4F cmp r6, #43520 7541 0096 18BF it ne 7542 0098 AA2E cmpne r6, #170 7543 009a 0DD1 bne .L509 7544 .L494: 3555:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7545 .loc 1 3555 7 is_stmt 1 view .LVU2668 7546 009c 2046 mov r0, r4 7547 009e FFF7FEFF bl I2C_ConvertOtherXferOptions 7548 .LVL525: 3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7549 .loc 1 3558 7 view .LVU2669 3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7550 .loc 1 3558 15 is_stmt 0 view .LVU2670 7551 00a2 638D ldrh r3, [r4, #42] 7552 00a4 9BB2 uxth r3, r3 3558:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7553 .loc 1 3558 10 view .LVU2671 7554 00a6 FF2B cmp r3, #255 7555 00a8 09D8 bhi .L510 3560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7556 .loc 1 3560 9 is_stmt 1 view .LVU2672 3560:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7557 .loc 1 3560 18 is_stmt 0 view .LVU2673 7558 00aa E76A ldr r7, [r4, #44] 7559 .LVL526: 3495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7560 .loc 1 3495 12 view .LVU2674 7561 00ac DFF83091 ldr r9, .L513+16 7562 00b0 07E0 b .L495 7563 .LVL527: 7564 .L508: 3497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7565 .loc 1 3497 12 view .LVU2675 7566 00b2 4FF00008 mov r8, #0 7567 00b6 E9E7 b .L493 7568 .LVL528: 7569 .L509: 3550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7570 .loc 1 3550 19 view .LVU2676 7571 00b8 4FF00009 mov r9, #0 7572 00bc 01E0 b .L495 7573 .L510: 3495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 7574 .loc 1 3495 12 view .LVU2677 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 309 7575 00be DFF82091 ldr r9, .L513+16 7576 .L495: 7577 .LVL529: 3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7578 .loc 1 3564 5 is_stmt 1 view .LVU2678 3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7579 .loc 1 3564 13 is_stmt 0 view .LVU2679 7580 00c2 228D ldrh r2, [r4, #40] 3564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7581 .loc 1 3564 8 view .LVU2680 7582 00c4 002A cmp r2, #0 7583 00c6 5AD0 beq .L496 3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7584 .loc 1 3566 7 is_stmt 1 view .LVU2681 3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7585 .loc 1 3566 15 is_stmt 0 view .LVU2682 7586 00c8 A36B ldr r3, [r4, #56] 3566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7587 .loc 1 3566 10 view .LVU2683 7588 00ca FBB1 cbz r3, .L497 3569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7589 .loc 1 3569 9 is_stmt 1 view .LVU2684 3569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7590 .loc 1 3569 40 is_stmt 0 view .LVU2685 7591 00cc 414A ldr r2, .L513+4 7592 00ce DA63 str r2, [r3, #60] 3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7593 .loc 1 3572 9 is_stmt 1 view .LVU2686 3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7594 .loc 1 3572 13 is_stmt 0 view .LVU2687 7595 00d0 A36B ldr r3, [r4, #56] 3572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7596 .loc 1 3572 41 view .LVU2688 7597 00d2 414A ldr r2, .L513+8 7598 00d4 DA64 str r2, [r3, #76] 3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7599 .loc 1 3575 9 is_stmt 1 view .LVU2689 3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7600 .loc 1 3575 13 is_stmt 0 view .LVU2690 7601 00d6 A26B ldr r2, [r4, #56] 3575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 7602 .loc 1 3575 44 view .LVU2691 7603 00d8 0023 movs r3, #0 7604 00da 1364 str r3, [r2, #64] 3576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7605 .loc 1 3576 9 is_stmt 1 view .LVU2692 3576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7606 .loc 1 3576 13 is_stmt 0 view .LVU2693 7607 00dc A26B ldr r2, [r4, #56] 3576:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7608 .loc 1 3576 41 view .LVU2694 7609 00de 1365 str r3, [r2, #80] 3579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 7610 .loc 1 3579 9 is_stmt 1 view .LVU2695 3580:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7611 .loc 1 3580 57 is_stmt 0 view .LVU2696 7612 00e0 2268 ldr r2, [r4] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 310 3579:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)&hi2c->Instance->TXDR, hi2c->XferSize); 7613 .loc 1 3579 25 view .LVU2697 7614 00e2 238D ldrh r3, [r4, #40] 7615 00e4 2832 adds r2, r2, #40 7616 00e6 616A ldr r1, [r4, #36] 7617 00e8 A06B ldr r0, [r4, #56] 7618 00ea FFF7FEFF bl HAL_DMA_Start_IT 7619 .LVL530: 3597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7620 .loc 1 3597 7 is_stmt 1 view .LVU2698 3597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7621 .loc 1 3597 10 is_stmt 0 view .LVU2699 7622 00ee D8B1 cbz r0, .L498 3627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7623 .loc 1 3627 9 is_stmt 1 view .LVU2700 3627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7624 .loc 1 3627 25 is_stmt 0 view .LVU2701 7625 00f0 2023 movs r3, #32 7626 00f2 84F84130 strb r3, [r4, #65] 3628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7627 .loc 1 3628 9 is_stmt 1 view .LVU2702 3628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7628 .loc 1 3628 25 is_stmt 0 view .LVU2703 7629 00f6 0022 movs r2, #0 7630 00f8 84F84220 strb r2, [r4, #66] 3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7631 .loc 1 3631 9 is_stmt 1 view .LVU2704 3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7632 .loc 1 3631 13 is_stmt 0 view .LVU2705 7633 00fc 636C ldr r3, [r4, #68] 3631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7634 .loc 1 3631 25 view .LVU2706 7635 00fe 43F01003 orr r3, r3, #16 7636 0102 6364 str r3, [r4, #68] 3634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7637 .loc 1 3634 9 is_stmt 1 view .LVU2707 3634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7638 .loc 1 3634 9 view .LVU2708 7639 0104 84F84020 strb r2, [r4, #64] 3634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7640 .loc 1 3634 9 view .LVU2709 3636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7641 .loc 1 3636 9 view .LVU2710 3636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7642 .loc 1 3636 16 is_stmt 0 view .LVU2711 7643 0108 0120 movs r0, #1 7644 .LVL531: 3636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7645 .loc 1 3636 16 view .LVU2712 7646 010a 5BE0 b .L490 7647 .LVL532: 7648 .L497: 3585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7649 .loc 1 3585 9 is_stmt 1 view .LVU2713 3585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 7650 .loc 1 3585 25 is_stmt 0 view .LVU2714 7651 010c 2023 movs r3, #32 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 311 7652 010e 84F84130 strb r3, [r4, #65] 3586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7653 .loc 1 3586 9 is_stmt 1 view .LVU2715 3586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7654 .loc 1 3586 25 is_stmt 0 view .LVU2716 7655 0112 0022 movs r2, #0 7656 0114 84F84220 strb r2, [r4, #66] 3589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7657 .loc 1 3589 9 is_stmt 1 view .LVU2717 3589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7658 .loc 1 3589 13 is_stmt 0 view .LVU2718 7659 0118 636C ldr r3, [r4, #68] 3589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7660 .loc 1 3589 25 view .LVU2719 7661 011a 43F08003 orr r3, r3, #128 7662 011e 6364 str r3, [r4, #68] 3592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7663 .loc 1 3592 9 is_stmt 1 view .LVU2720 3592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7664 .loc 1 3592 9 view .LVU2721 7665 0120 84F84020 strb r2, [r4, #64] 3592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7666 .loc 1 3592 9 view .LVU2722 3594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7667 .loc 1 3594 9 view .LVU2723 3594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7668 .loc 1 3594 16 is_stmt 0 view .LVU2724 7669 0124 0120 movs r0, #1 7670 0126 4DE0 b .L490 7671 .LVL533: 7672 .L498: 3600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7673 .loc 1 3600 9 is_stmt 1 view .LVU2725 3600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7674 .loc 1 3600 12 is_stmt 0 view .LVU2726 7675 0128 B6F1007F cmp r6, #33554432 7676 012c 18BF it ne 7677 012e 002E cmpne r6, #0 7678 0130 1BD1 bne .L500 3602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7679 .loc 1 3602 11 is_stmt 1 view .LVU2727 7680 0132 CDF80090 str r9, [sp] 7681 0136 3B46 mov r3, r7 7682 0138 5FFA88F2 uxtb r2, r8 7683 013c 2946 mov r1, r5 7684 013e 2046 mov r0, r4 7685 .LVL534: 3602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7686 .loc 1 3602 11 is_stmt 0 view .LVU2728 7687 0140 FFF7FEFF bl I2C_TransferConfig 7688 .LVL535: 7689 .L501: 3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7690 .loc 1 3610 9 is_stmt 1 view .LVU2729 3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7691 .loc 1 3610 13 is_stmt 0 view .LVU2730 7692 0144 638D ldrh r3, [r4, #42] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 312 7693 0146 9BB2 uxth r3, r3 3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7694 .loc 1 3610 32 view .LVU2731 7695 0148 228D ldrh r2, [r4, #40] 3610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7696 .loc 1 3610 25 view .LVU2732 7697 014a 9B1A subs r3, r3, r2 7698 014c 9BB2 uxth r3, r3 7699 014e 6385 strh r3, [r4, #42] @ movhi 3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7700 .loc 1 3613 9 is_stmt 1 view .LVU2733 3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7701 .loc 1 3613 9 view .LVU2734 7702 0150 0023 movs r3, #0 7703 0152 84F84030 strb r3, [r4, #64] 3613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7704 .loc 1 3613 9 view .LVU2735 3619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7705 .loc 1 3619 9 view .LVU2736 7706 0156 1021 movs r1, #16 7707 0158 2046 mov r0, r4 7708 015a FFF7FEFF bl I2C_Enable_IRQ 7709 .LVL536: 3622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7710 .loc 1 3622 9 view .LVU2737 3622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7711 .loc 1 3622 13 is_stmt 0 view .LVU2738 7712 015e 2268 ldr r2, [r4] 3622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7713 .loc 1 3622 23 view .LVU2739 7714 0160 1368 ldr r3, [r2] 3622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7715 .loc 1 3622 29 view .LVU2740 7716 0162 43F48043 orr r3, r3, #16384 7717 0166 1360 str r3, [r2] 7718 0168 20E0 b .L502 7719 .LVL537: 7720 .L500: 3606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7721 .loc 1 3606 11 is_stmt 1 view .LVU2741 7722 016a CDF80090 str r9, [sp] 7723 016e 3B46 mov r3, r7 7724 0170 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7725 0174 2946 mov r1, r5 7726 0176 2046 mov r0, r4 7727 .LVL538: 3606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7728 .loc 1 3606 11 is_stmt 0 view .LVU2742 7729 0178 FFF7FEFF bl I2C_TransferConfig 7730 .LVL539: 7731 017c E2E7 b .L501 7732 .LVL540: 7733 .L496: 3642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7734 .loc 1 3642 7 is_stmt 1 view .LVU2743 3642:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7735 .loc 1 3642 21 is_stmt 0 view .LVU2744 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 313 7736 017e 174B ldr r3, .L513+12 7737 0180 6363 str r3, [r4, #52] 3646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7738 .loc 1 3646 7 is_stmt 1 view .LVU2745 3646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7739 .loc 1 3646 10 is_stmt 0 view .LVU2746 7740 0182 B6F1007F cmp r6, #33554432 7741 0186 18BF it ne 7742 0188 002E cmpne r6, #0 7743 018a 11D1 bne .L503 3648:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7744 .loc 1 3648 9 is_stmt 1 view .LVU2747 7745 018c CDF80090 str r9, [sp] 7746 0190 3B46 mov r3, r7 7747 0192 5FFA88F2 uxtb r2, r8 7748 0196 2946 mov r1, r5 7749 0198 2046 mov r0, r4 7750 019a FFF7FEFF bl I2C_TransferConfig 7751 .LVL541: 7752 .L504: 3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7753 .loc 1 3656 7 view .LVU2748 3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7754 .loc 1 3656 7 view .LVU2749 7755 019e 0023 movs r3, #0 7756 01a0 84F84030 strb r3, [r4, #64] 3656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7757 .loc 1 3656 7 view .LVU2750 3665:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7758 .loc 1 3665 7 view .LVU2751 7759 01a4 0121 movs r1, #1 7760 01a6 2046 mov r0, r4 7761 01a8 FFF7FEFF bl I2C_Enable_IRQ 7762 .LVL542: 7763 .L502: 3668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7764 .loc 1 3668 5 view .LVU2752 3668:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7765 .loc 1 3668 12 is_stmt 0 view .LVU2753 7766 01ac 0020 movs r0, #0 7767 01ae 09E0 b .L490 7768 .L503: 3652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7769 .loc 1 3652 9 is_stmt 1 view .LVU2754 7770 01b0 CDF80090 str r9, [sp] 7771 01b4 3B46 mov r3, r7 7772 01b6 D2B2 uxtb r2, r2 7773 01b8 2946 mov r1, r5 7774 01ba 2046 mov r0, r4 7775 01bc FFF7FEFF bl I2C_TransferConfig 7776 .LVL543: 7777 01c0 EDE7 b .L504 7778 .LVL544: 7779 .L505: 3672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7780 .loc 1 3672 12 is_stmt 0 view .LVU2755 7781 01c2 0220 movs r0, #2 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 314 7782 .LVL545: 7783 .L490: 3674:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7784 .loc 1 3674 1 view .LVU2756 7785 01c4 03B0 add sp, sp, #12 7786 .cfi_remember_state 7787 .cfi_def_cfa_offset 28 7788 @ sp needed 7789 01c6 BDE8F083 pop {r4, r5, r6, r7, r8, r9, pc} 7790 .LVL546: 7791 .L506: 7792 .cfi_restore_state 3505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7793 .loc 1 3505 5 discriminator 1 view .LVU2757 7794 01ca 0220 movs r0, #2 7795 01cc FAE7 b .L490 7796 .L514: 7797 01ce 00BF .align 2 7798 .L513: 7799 01d0 00000000 .word I2C_Master_ISR_DMA 7800 01d4 00000000 .word I2C_DMAMasterTransmitCplt 7801 01d8 00000000 .word I2C_DMAError 7802 01dc 00000000 .word I2C_Master_ISR_IT 7803 01e0 00200080 .word -2147475456 7804 .cfi_endproc 7805 .LFE359: 7807 .section .text.HAL_I2C_Master_Seq_Receive_IT,"ax",%progbits 7808 .align 1 7809 .global HAL_I2C_Master_Seq_Receive_IT 7810 .syntax unified 7811 .thumb 7812 .thumb_func 7814 HAL_I2C_Master_Seq_Receive_IT: 7815 .LVL547: 7816 .LFB360: 3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7817 .loc 1 3690 1 is_stmt 1 view -0 7818 .cfi_startproc 7819 @ args = 4, pretend = 0, frame = 0 7820 @ frame_needed = 0, uses_anonymous_args = 0 3690:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 7821 .loc 1 3690 1 is_stmt 0 view .LVU2759 7822 0000 70B5 push {r4, r5, r6, lr} 7823 .cfi_def_cfa_offset 16 7824 .cfi_offset 4, -16 7825 .cfi_offset 5, -12 7826 .cfi_offset 6, -8 7827 .cfi_offset 14, -4 7828 0002 82B0 sub sp, sp, #8 7829 .cfi_def_cfa_offset 24 7830 0004 0446 mov r4, r0 7831 0006 0D46 mov r5, r1 7832 0008 0699 ldr r1, [sp, #24] 7833 .LVL548: 3691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 7834 .loc 1 3691 3 is_stmt 1 view .LVU2760 3692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 315 7835 .loc 1 3692 3 view .LVU2761 3695:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7836 .loc 1 3695 3 view .LVU2762 3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7837 .loc 1 3697 3 view .LVU2763 3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7838 .loc 1 3697 11 is_stmt 0 view .LVU2764 7839 000a 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 7840 .LVL549: 3697:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7841 .loc 1 3697 6 view .LVU2765 7842 000e 2028 cmp r0, #32 7843 0010 46D1 bne .L521 3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7844 .loc 1 3700 5 is_stmt 1 view .LVU2766 3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7845 .loc 1 3700 5 view .LVU2767 7846 0012 94F84000 ldrb r0, [r4, #64] @ zero_extendqisi2 7847 0016 0128 cmp r0, #1 7848 0018 44D0 beq .L522 3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7849 .loc 1 3700 5 discriminator 2 view .LVU2768 7850 001a 0120 movs r0, #1 7851 001c 84F84000 strb r0, [r4, #64] 3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7852 .loc 1 3700 5 view .LVU2769 3702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7853 .loc 1 3702 5 view .LVU2770 3702:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 7854 .loc 1 3702 21 is_stmt 0 view .LVU2771 7855 0020 2220 movs r0, #34 7856 0022 84F84100 strb r0, [r4, #65] 3703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7857 .loc 1 3703 5 is_stmt 1 view .LVU2772 3703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 7858 .loc 1 3703 21 is_stmt 0 view .LVU2773 7859 0026 1020 movs r0, #16 7860 0028 84F84200 strb r0, [r4, #66] 3704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7861 .loc 1 3704 5 is_stmt 1 view .LVU2774 3704:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7862 .loc 1 3704 21 is_stmt 0 view .LVU2775 7863 002c 0020 movs r0, #0 7864 002e 6064 str r0, [r4, #68] 3707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7865 .loc 1 3707 5 is_stmt 1 view .LVU2776 3707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 7866 .loc 1 3707 23 is_stmt 0 view .LVU2777 7867 0030 6262 str r2, [r4, #36] 3708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7868 .loc 1 3708 5 is_stmt 1 view .LVU2778 3708:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 7869 .loc 1 3708 23 is_stmt 0 view .LVU2779 7870 0032 6385 strh r3, [r4, #42] @ movhi 3709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; 7871 .loc 1 3709 5 is_stmt 1 view .LVU2780 3709:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_IT; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 316 7872 .loc 1 3709 23 is_stmt 0 view .LVU2781 7873 0034 E162 str r1, [r4, #44] 3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7874 .loc 1 3710 5 is_stmt 1 view .LVU2782 3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7875 .loc 1 3710 23 is_stmt 0 view .LVU2783 7876 0036 1C4B ldr r3, .L526 7877 .LVL550: 3710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7878 .loc 1 3710 23 view .LVU2784 7879 0038 6363 str r3, [r4, #52] 3713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7880 .loc 1 3713 5 is_stmt 1 view .LVU2785 3713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7881 .loc 1 3713 13 is_stmt 0 view .LVU2786 7882 003a 638D ldrh r3, [r4, #42] 7883 003c 9BB2 uxth r3, r3 3713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7884 .loc 1 3713 8 view .LVU2787 7885 003e FF2B cmp r3, #255 7886 0040 26D9 bls .L517 3715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7887 .loc 1 3715 7 is_stmt 1 view .LVU2788 3715:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 7888 .loc 1 3715 22 is_stmt 0 view .LVU2789 7889 0042 FF23 movs r3, #255 7890 0044 2385 strh r3, [r4, #40] @ movhi 3716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7891 .loc 1 3716 7 is_stmt 1 view .LVU2790 7892 .LVL551: 3716:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7893 .loc 1 3716 16 is_stmt 0 view .LVU2791 7894 0046 4FF08076 mov r6, #16777216 7895 .LVL552: 7896 .L518: 3727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7897 .loc 1 3727 5 is_stmt 1 view .LVU2792 3727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7898 .loc 1 3727 14 is_stmt 0 view .LVU2793 7899 004a 236B ldr r3, [r4, #48] 3727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7900 .loc 1 3727 8 view .LVU2794 7901 004c 122B cmp r3, #18 7902 004e 04D1 bne .L519 3727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 7903 .loc 1 3727 59 discriminator 1 view .LVU2795 7904 0050 B1F52A4F cmp r1, #43520 7905 0054 18BF it ne 7906 0056 AA29 cmpne r1, #170 7907 0058 1ED1 bne .L523 7908 .L519: 3735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7909 .loc 1 3735 7 is_stmt 1 view .LVU2796 7910 005a 2046 mov r0, r4 7911 005c FFF7FEFF bl I2C_ConvertOtherXferOptions 7912 .LVL553: 3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 317 7913 .loc 1 3738 7 view .LVU2797 3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7914 .loc 1 3738 15 is_stmt 0 view .LVU2798 7915 0060 638D ldrh r3, [r4, #42] 7916 0062 9BB2 uxth r3, r3 3738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 7917 .loc 1 3738 10 view .LVU2799 7918 0064 FF2B cmp r3, #255 7919 0066 19D8 bhi .L524 3740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7920 .loc 1 3740 9 is_stmt 1 view .LVU2800 3740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7921 .loc 1 3740 18 is_stmt 0 view .LVU2801 7922 0068 E66A ldr r6, [r4, #44] 7923 .LVL554: 3692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7924 .loc 1 3692 12 view .LVU2802 7925 006a 104B ldr r3, .L526+4 7926 .L520: 7927 .LVL555: 3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7928 .loc 1 3745 5 is_stmt 1 view .LVU2803 7929 006c 0093 str r3, [sp] 7930 006e 3346 mov r3, r6 7931 .LVL556: 3745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7932 .loc 1 3745 5 is_stmt 0 view .LVU2804 7933 0070 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 7934 0074 2946 mov r1, r5 7935 0076 2046 mov r0, r4 7936 0078 FFF7FEFF bl I2C_TransferConfig 7937 .LVL557: 3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7938 .loc 1 3748 5 is_stmt 1 view .LVU2805 3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7939 .loc 1 3748 5 view .LVU2806 7940 007c 0025 movs r5, #0 7941 .LVL558: 3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7942 .loc 1 3748 5 is_stmt 0 view .LVU2807 7943 007e 84F84050 strb r5, [r4, #64] 3748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7944 .loc 1 3748 5 is_stmt 1 view .LVU2808 3753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7945 .loc 1 3753 5 view .LVU2809 7946 0082 0221 movs r1, #2 7947 0084 2046 mov r0, r4 7948 0086 FFF7FEFF bl I2C_Enable_IRQ 7949 .LVL559: 3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7950 .loc 1 3755 5 view .LVU2810 3755:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7951 .loc 1 3755 12 is_stmt 0 view .LVU2811 7952 008a 2846 mov r0, r5 7953 .LVL560: 7954 .L516: 3761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 318 7955 .loc 1 3761 1 view .LVU2812 7956 008c 02B0 add sp, sp, #8 7957 .cfi_remember_state 7958 .cfi_def_cfa_offset 16 7959 @ sp needed 7960 008e 70BD pop {r4, r5, r6, pc} 7961 .LVL561: 7962 .L517: 7963 .cfi_restore_state 3720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7964 .loc 1 3720 7 is_stmt 1 view .LVU2813 3720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7965 .loc 1 3720 28 is_stmt 0 view .LVU2814 7966 0090 638D ldrh r3, [r4, #42] 3720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 7967 .loc 1 3720 22 view .LVU2815 7968 0092 2385 strh r3, [r4, #40] @ movhi 3721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7969 .loc 1 3721 7 is_stmt 1 view .LVU2816 3721:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7970 .loc 1 3721 16 is_stmt 0 view .LVU2817 7971 0094 E66A ldr r6, [r4, #44] 7972 0096 D8E7 b .L518 7973 .LVL562: 7974 .L523: 3730:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7975 .loc 1 3730 19 view .LVU2818 7976 0098 0023 movs r3, #0 7977 009a E7E7 b .L520 7978 .LVL563: 7979 .L524: 3692:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7980 .loc 1 3692 12 view .LVU2819 7981 009c 034B ldr r3, .L526+4 7982 009e E5E7 b .L520 7983 .LVL564: 7984 .L521: 3759:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 7985 .loc 1 3759 12 view .LVU2820 7986 00a0 0220 movs r0, #2 7987 00a2 F3E7 b .L516 7988 .L522: 3700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 7989 .loc 1 3700 5 discriminator 1 view .LVU2821 7990 00a4 0220 movs r0, #2 7991 00a6 F1E7 b .L516 7992 .L527: 7993 .align 2 7994 .L526: 7995 00a8 00000000 .word I2C_Master_ISR_IT 7996 00ac 00240080 .word -2147474432 7997 .cfi_endproc 7998 .LFE360: 8000 .section .text.HAL_I2C_Master_Seq_Receive_DMA,"ax",%progbits 8001 .align 1 8002 .global HAL_I2C_Master_Seq_Receive_DMA 8003 .syntax unified ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 319 8004 .thumb 8005 .thumb_func 8007 HAL_I2C_Master_Seq_Receive_DMA: 8008 .LVL565: 8009 .LFB361: 3777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 8010 .loc 1 3777 1 is_stmt 1 view -0 8011 .cfi_startproc 8012 @ args = 4, pretend = 0, frame = 0 8013 @ frame_needed = 0, uses_anonymous_args = 0 3777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 8014 .loc 1 3777 1 is_stmt 0 view .LVU2823 8015 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 8016 .cfi_def_cfa_offset 24 8017 .cfi_offset 4, -24 8018 .cfi_offset 5, -20 8019 .cfi_offset 6, -16 8020 .cfi_offset 7, -12 8021 .cfi_offset 8, -8 8022 .cfi_offset 14, -4 8023 0004 82B0 sub sp, sp, #8 8024 .cfi_def_cfa_offset 32 8025 0006 0E46 mov r6, r1 8026 0008 1546 mov r5, r2 8027 000a 089A ldr r2, [sp, #32] 8028 .LVL566: 3778:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xferrequest = I2C_GENERATE_START_READ; 8029 .loc 1 3778 3 is_stmt 1 view .LVU2824 3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8030 .loc 1 3779 3 view .LVU2825 3780:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8031 .loc 1 3780 3 view .LVU2826 3783:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8032 .loc 1 3783 3 view .LVU2827 3785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8033 .loc 1 3785 3 view .LVU2828 3785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8034 .loc 1 3785 11 is_stmt 0 view .LVU2829 8035 000c 90F84110 ldrb r1, [r0, #65] @ zero_extendqisi2 8036 .LVL567: 3785:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8037 .loc 1 3785 6 view .LVU2830 8038 0010 2029 cmp r1, #32 8039 0012 40F09D80 bne .L539 8040 0016 0446 mov r4, r0 3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8041 .loc 1 3788 5 is_stmt 1 view .LVU2831 3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8042 .loc 1 3788 5 view .LVU2832 8043 0018 90F84010 ldrb r1, [r0, #64] @ zero_extendqisi2 8044 001c 0129 cmp r1, #1 8045 001e 00F09B80 beq .L540 3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8046 .loc 1 3788 5 discriminator 2 view .LVU2833 8047 0022 0121 movs r1, #1 8048 0024 80F84010 strb r1, [r0, #64] 3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 320 8049 .loc 1 3788 5 view .LVU2834 3790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8050 .loc 1 3790 5 view .LVU2835 3790:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_MASTER; 8051 .loc 1 3790 21 is_stmt 0 view .LVU2836 8052 0028 2221 movs r1, #34 8053 002a 80F84110 strb r1, [r0, #65] 3791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8054 .loc 1 3791 5 is_stmt 1 view .LVU2837 3791:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8055 .loc 1 3791 21 is_stmt 0 view .LVU2838 8056 002e 1021 movs r1, #16 8057 0030 80F84210 strb r1, [r0, #66] 3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8058 .loc 1 3792 5 is_stmt 1 view .LVU2839 3792:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8059 .loc 1 3792 21 is_stmt 0 view .LVU2840 8060 0034 0021 movs r1, #0 8061 0036 4164 str r1, [r0, #68] 3795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8062 .loc 1 3795 5 is_stmt 1 view .LVU2841 3795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8063 .loc 1 3795 23 is_stmt 0 view .LVU2842 8064 0038 4562 str r5, [r0, #36] 3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8065 .loc 1 3796 5 is_stmt 1 view .LVU2843 3796:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8066 .loc 1 3796 23 is_stmt 0 view .LVU2844 8067 003a 4385 strh r3, [r0, #42] @ movhi 3797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8068 .loc 1 3797 5 is_stmt 1 view .LVU2845 3797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Master_ISR_DMA; 8069 .loc 1 3797 23 is_stmt 0 view .LVU2846 8070 003c C262 str r2, [r0, #44] 3798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8071 .loc 1 3798 5 is_stmt 1 view .LVU2847 3798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8072 .loc 1 3798 23 is_stmt 0 view .LVU2848 8073 003e 474B ldr r3, .L546 8074 .LVL568: 3798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8075 .loc 1 3798 23 view .LVU2849 8076 0040 4363 str r3, [r0, #52] 3801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8077 .loc 1 3801 5 is_stmt 1 view .LVU2850 3801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8078 .loc 1 3801 13 is_stmt 0 view .LVU2851 8079 0042 438D ldrh r3, [r0, #42] 8080 0044 9BB2 uxth r3, r3 3801:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8081 .loc 1 3801 8 view .LVU2852 8082 0046 FF2B cmp r3, #255 8083 0048 3AD9 bls .L530 3803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8084 .loc 1 3803 7 is_stmt 1 view .LVU2853 3803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 8085 .loc 1 3803 22 is_stmt 0 view .LVU2854 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 321 8086 004a FF23 movs r3, #255 8087 004c 0385 strh r3, [r0, #40] @ movhi 3804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8088 .loc 1 3804 7 is_stmt 1 view .LVU2855 8089 .LVL569: 3804:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8090 .loc 1 3804 16 is_stmt 0 view .LVU2856 8091 004e 4FF08077 mov r7, #16777216 8092 .LVL570: 8093 .L531: 3815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8094 .loc 1 3815 5 is_stmt 1 view .LVU2857 3815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8095 .loc 1 3815 14 is_stmt 0 view .LVU2858 8096 0052 236B ldr r3, [r4, #48] 3815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8097 .loc 1 3815 8 view .LVU2859 8098 0054 122B cmp r3, #18 8099 0056 04D1 bne .L532 3815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (IS_I2C_TRANSFER_OTHER_OPTIONS_REQUEST(XferOptions) == 0)) 8100 .loc 1 3815 59 discriminator 1 view .LVU2860 8101 0058 B2F52A4F cmp r2, #43520 8102 005c 18BF it ne 8103 005e AA2A cmpne r2, #170 8104 0060 32D1 bne .L541 8105 .L532: 3823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8106 .loc 1 3823 7 is_stmt 1 view .LVU2861 8107 0062 2046 mov r0, r4 8108 .LVL571: 3823:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8109 .loc 1 3823 7 is_stmt 0 view .LVU2862 8110 0064 FFF7FEFF bl I2C_ConvertOtherXferOptions 8111 .LVL572: 3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8112 .loc 1 3826 7 is_stmt 1 view .LVU2863 3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8113 .loc 1 3826 15 is_stmt 0 view .LVU2864 8114 0068 638D ldrh r3, [r4, #42] 8115 006a 9BB2 uxth r3, r3 3826:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8116 .loc 1 3826 10 view .LVU2865 8117 006c FF2B cmp r3, #255 8118 006e 2ED8 bhi .L542 3828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8119 .loc 1 3828 9 is_stmt 1 view .LVU2866 3828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8120 .loc 1 3828 18 is_stmt 0 view .LVU2867 8121 0070 E76A ldr r7, [r4, #44] 8122 .LVL573: 3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8123 .loc 1 3779 12 view .LVU2868 8124 0072 DFF8F880 ldr r8, .L546+16 8125 .L533: 8126 .LVL574: 3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8127 .loc 1 3832 5 is_stmt 1 view .LVU2869 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 322 3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8128 .loc 1 3832 13 is_stmt 0 view .LVU2870 8129 0076 228D ldrh r2, [r4, #40] 3832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8130 .loc 1 3832 8 view .LVU2871 8131 0078 002A cmp r2, #0 8132 007a 55D0 beq .L534 3834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8133 .loc 1 3834 7 is_stmt 1 view .LVU2872 3834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8134 .loc 1 3834 15 is_stmt 0 view .LVU2873 8135 007c E36B ldr r3, [r4, #60] 3834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8136 .loc 1 3834 10 view .LVU2874 8137 007e 4BB3 cbz r3, .L535 3837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8138 .loc 1 3837 9 is_stmt 1 view .LVU2875 3837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8139 .loc 1 3837 40 is_stmt 0 view .LVU2876 8140 0080 374A ldr r2, .L546+4 8141 0082 DA63 str r2, [r3, #60] 3840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8142 .loc 1 3840 9 is_stmt 1 view .LVU2877 3840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8143 .loc 1 3840 13 is_stmt 0 view .LVU2878 8144 0084 E36B ldr r3, [r4, #60] 3840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8145 .loc 1 3840 41 view .LVU2879 8146 0086 374A ldr r2, .L546+8 8147 0088 DA64 str r2, [r3, #76] 3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8148 .loc 1 3843 9 is_stmt 1 view .LVU2880 3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8149 .loc 1 3843 13 is_stmt 0 view .LVU2881 8150 008a E26B ldr r2, [r4, #60] 3843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 8151 .loc 1 3843 44 view .LVU2882 8152 008c 0023 movs r3, #0 8153 008e 1364 str r3, [r2, #64] 3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8154 .loc 1 3844 9 is_stmt 1 view .LVU2883 3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8155 .loc 1 3844 13 is_stmt 0 view .LVU2884 8156 0090 E26B ldr r2, [r4, #60] 3844:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8157 .loc 1 3844 41 view .LVU2885 8158 0092 1365 str r3, [r2, #80] 3847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 8159 .loc 1 3847 9 is_stmt 1 view .LVU2886 3847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 8160 .loc 1 3847 71 is_stmt 0 view .LVU2887 8161 0094 2168 ldr r1, [r4] 3847:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 8162 .loc 1 3847 25 view .LVU2888 8163 0096 238D ldrh r3, [r4, #40] 8164 0098 2A46 mov r2, r5 8165 009a 2431 adds r1, r1, #36 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 323 8166 009c E06B ldr r0, [r4, #60] 8167 009e FFF7FEFF bl HAL_DMA_Start_IT 8168 .LVL575: 3865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8169 .loc 1 3865 7 is_stmt 1 view .LVU2889 3865:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8170 .loc 1 3865 10 is_stmt 0 view .LVU2890 8171 00a2 28B3 cbz r0, .L545 3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8172 .loc 1 3888 9 is_stmt 1 view .LVU2891 3888:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8173 .loc 1 3888 25 is_stmt 0 view .LVU2892 8174 00a4 2023 movs r3, #32 8175 00a6 84F84130 strb r3, [r4, #65] 3889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8176 .loc 1 3889 9 is_stmt 1 view .LVU2893 3889:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8177 .loc 1 3889 25 is_stmt 0 view .LVU2894 8178 00aa 0022 movs r2, #0 8179 00ac 84F84220 strb r2, [r4, #66] 3892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8180 .loc 1 3892 9 is_stmt 1 view .LVU2895 3892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8181 .loc 1 3892 13 is_stmt 0 view .LVU2896 8182 00b0 636C ldr r3, [r4, #68] 3892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8183 .loc 1 3892 25 view .LVU2897 8184 00b2 43F01003 orr r3, r3, #16 8185 00b6 6364 str r3, [r4, #68] 3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8186 .loc 1 3895 9 is_stmt 1 view .LVU2898 3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8187 .loc 1 3895 9 view .LVU2899 8188 00b8 84F84020 strb r2, [r4, #64] 3895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8189 .loc 1 3895 9 view .LVU2900 3897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8190 .loc 1 3897 9 view .LVU2901 3897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8191 .loc 1 3897 16 is_stmt 0 view .LVU2902 8192 00bc 0120 movs r0, #1 8193 .LVL576: 3897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8194 .loc 1 3897 16 view .LVU2903 8195 00be 48E0 b .L529 8196 .LVL577: 8197 .L530: 3808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8198 .loc 1 3808 7 is_stmt 1 view .LVU2904 3808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8199 .loc 1 3808 28 is_stmt 0 view .LVU2905 8200 00c0 438D ldrh r3, [r0, #42] 3808:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = hi2c->XferOptions; 8201 .loc 1 3808 22 view .LVU2906 8202 00c2 0385 strh r3, [r0, #40] @ movhi 3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8203 .loc 1 3809 7 is_stmt 1 view .LVU2907 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 324 3809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8204 .loc 1 3809 16 is_stmt 0 view .LVU2908 8205 00c4 C76A ldr r7, [r0, #44] 8206 00c6 C4E7 b .L531 8207 .LVL578: 8208 .L541: 3818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8209 .loc 1 3818 19 view .LVU2909 8210 00c8 4FF00008 mov r8, #0 8211 00cc D3E7 b .L533 8212 .LVL579: 8213 .L542: 3779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8214 .loc 1 3779 12 view .LVU2910 8215 00ce DFF89C80 ldr r8, .L546+16 8216 00d2 D0E7 b .L533 8217 .LVL580: 8218 .L535: 3853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8219 .loc 1 3853 9 is_stmt 1 view .LVU2911 3853:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8220 .loc 1 3853 25 is_stmt 0 view .LVU2912 8221 00d4 2023 movs r3, #32 8222 00d6 84F84130 strb r3, [r4, #65] 3854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8223 .loc 1 3854 9 is_stmt 1 view .LVU2913 3854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8224 .loc 1 3854 25 is_stmt 0 view .LVU2914 8225 00da 0022 movs r2, #0 8226 00dc 84F84220 strb r2, [r4, #66] 3857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8227 .loc 1 3857 9 is_stmt 1 view .LVU2915 3857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8228 .loc 1 3857 13 is_stmt 0 view .LVU2916 8229 00e0 636C ldr r3, [r4, #68] 3857:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8230 .loc 1 3857 25 view .LVU2917 8231 00e2 43F08003 orr r3, r3, #128 8232 00e6 6364 str r3, [r4, #68] 3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8233 .loc 1 3860 9 is_stmt 1 view .LVU2918 3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8234 .loc 1 3860 9 view .LVU2919 8235 00e8 84F84020 strb r2, [r4, #64] 3860:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8236 .loc 1 3860 9 view .LVU2920 3862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8237 .loc 1 3862 9 view .LVU2921 3862:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8238 .loc 1 3862 16 is_stmt 0 view .LVU2922 8239 00ec 0120 movs r0, #1 8240 00ee 30E0 b .L529 8241 .LVL581: 8242 .L545: 3868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8243 .loc 1 3868 9 is_stmt 1 view .LVU2923 8244 00f0 CDF80080 str r8, [sp] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 325 8245 00f4 3B46 mov r3, r7 8246 00f6 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 8247 00fa 3146 mov r1, r6 8248 00fc 2046 mov r0, r4 8249 .LVL582: 3868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8250 .loc 1 3868 9 is_stmt 0 view .LVU2924 8251 00fe FFF7FEFF bl I2C_TransferConfig 8252 .LVL583: 3871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8253 .loc 1 3871 9 is_stmt 1 view .LVU2925 3871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8254 .loc 1 3871 13 is_stmt 0 view .LVU2926 8255 0102 638D ldrh r3, [r4, #42] 8256 0104 9BB2 uxth r3, r3 3871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8257 .loc 1 3871 32 view .LVU2927 8258 0106 228D ldrh r2, [r4, #40] 3871:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8259 .loc 1 3871 25 view .LVU2928 8260 0108 9B1A subs r3, r3, r2 8261 010a 9BB2 uxth r3, r3 8262 010c 6385 strh r3, [r4, #42] @ movhi 3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8263 .loc 1 3874 9 is_stmt 1 view .LVU2929 3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8264 .loc 1 3874 9 view .LVU2930 8265 010e 0023 movs r3, #0 8266 0110 84F84030 strb r3, [r4, #64] 3874:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8267 .loc 1 3874 9 view .LVU2931 3880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8268 .loc 1 3880 9 view .LVU2932 8269 0114 1021 movs r1, #16 8270 0116 2046 mov r0, r4 8271 0118 FFF7FEFF bl I2C_Enable_IRQ 8272 .LVL584: 3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8273 .loc 1 3883 9 view .LVU2933 3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8274 .loc 1 3883 13 is_stmt 0 view .LVU2934 8275 011c 2268 ldr r2, [r4] 3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8276 .loc 1 3883 23 view .LVU2935 8277 011e 1368 ldr r3, [r2] 3883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8278 .loc 1 3883 29 view .LVU2936 8279 0120 43F40043 orr r3, r3, #32768 8280 0124 1360 str r3, [r2] 8281 0126 11E0 b .L538 8282 .LVL585: 8283 .L534: 3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8284 .loc 1 3903 7 is_stmt 1 view .LVU2937 3903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8285 .loc 1 3903 21 is_stmt 0 view .LVU2938 8286 0128 0F4B ldr r3, .L546+12 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 326 8287 012a 6363 str r3, [r4, #52] 3907:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_GENERATE_START_READ); 8288 .loc 1 3907 7 is_stmt 1 view .LVU2939 8289 012c 0F4B ldr r3, .L546+16 8290 012e 0093 str r3, [sp] 8291 0130 4FF00073 mov r3, #33554432 8292 0134 D2B2 uxtb r2, r2 8293 0136 3146 mov r1, r6 8294 0138 2046 mov r0, r4 8295 013a FFF7FEFF bl I2C_TransferConfig 8296 .LVL586: 3911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8297 .loc 1 3911 7 view .LVU2940 3911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8298 .loc 1 3911 7 view .LVU2941 8299 013e 0023 movs r3, #0 8300 0140 84F84030 strb r3, [r4, #64] 3911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8301 .loc 1 3911 7 view .LVU2942 3920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8302 .loc 1 3920 7 view .LVU2943 8303 0144 0221 movs r1, #2 8304 0146 2046 mov r0, r4 8305 0148 FFF7FEFF bl I2C_Enable_IRQ 8306 .LVL587: 8307 .L538: 3923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8308 .loc 1 3923 5 view .LVU2944 3923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8309 .loc 1 3923 12 is_stmt 0 view .LVU2945 8310 014c 0020 movs r0, #0 8311 014e 00E0 b .L529 8312 .LVL588: 8313 .L539: 3927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8314 .loc 1 3927 12 view .LVU2946 8315 0150 0220 movs r0, #2 8316 .LVL589: 8317 .L529: 3929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8318 .loc 1 3929 1 view .LVU2947 8319 0152 02B0 add sp, sp, #8 8320 .cfi_remember_state 8321 .cfi_def_cfa_offset 24 8322 @ sp needed 8323 0154 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 8324 .LVL590: 8325 .L540: 8326 .cfi_restore_state 3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8327 .loc 1 3788 5 discriminator 1 view .LVU2948 8328 0158 0220 movs r0, #2 8329 .LVL591: 3788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8330 .loc 1 3788 5 discriminator 1 view .LVU2949 8331 015a FAE7 b .L529 8332 .L547: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 327 8333 .align 2 8334 .L546: 8335 015c 00000000 .word I2C_Master_ISR_DMA 8336 0160 00000000 .word I2C_DMAMasterReceiveCplt 8337 0164 00000000 .word I2C_DMAError 8338 0168 00000000 .word I2C_Master_ISR_IT 8339 016c 00240080 .word -2147474432 8340 .cfi_endproc 8341 .LFE361: 8343 .section .text.HAL_I2C_Slave_Seq_Transmit_IT,"ax",%progbits 8344 .align 1 8345 .global HAL_I2C_Slave_Seq_Transmit_IT 8346 .syntax unified 8347 .thumb 8348 .thumb_func 8350 HAL_I2C_Slave_Seq_Transmit_IT: 8351 .LVL592: 8352 .LFB362: 3943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8353 .loc 1 3943 1 is_stmt 1 view -0 8354 .cfi_startproc 8355 @ args = 0, pretend = 0, frame = 0 8356 @ frame_needed = 0, uses_anonymous_args = 0 3943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8357 .loc 1 3943 1 is_stmt 0 view .LVU2951 8358 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8359 .cfi_def_cfa_offset 24 8360 .cfi_offset 3, -24 8361 .cfi_offset 4, -20 8362 .cfi_offset 5, -16 8363 .cfi_offset 6, -12 8364 .cfi_offset 7, -8 8365 .cfi_offset 14, -4 8366 0002 0446 mov r4, r0 3945:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8367 .loc 1 3945 3 is_stmt 1 view .LVU2952 3948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8368 .loc 1 3948 3 view .LVU2953 3950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8369 .loc 1 3950 3 view .LVU2954 3950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8370 .loc 1 3950 22 is_stmt 0 view .LVU2955 8371 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8372 .LVL593: 3950:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8373 .loc 1 3950 6 view .LVU2956 8374 0008 00F02800 and r0, r0, #40 8375 000c 2828 cmp r0, #40 8376 000e 5FD1 bne .L553 8377 0010 0F46 mov r7, r1 8378 0012 1646 mov r6, r2 8379 0014 1D46 mov r5, r3 3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8380 .loc 1 3952 5 is_stmt 1 view .LVU2957 3952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8381 .loc 1 3952 8 is_stmt 0 view .LVU2958 8382 0016 002A cmp r2, #0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 328 8383 0018 18BF it ne 8384 001a 0029 cmpne r1, #0 8385 001c 04D1 bne .L550 3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8386 .loc 1 3954 7 is_stmt 1 view .LVU2959 3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8387 .loc 1 3954 23 is_stmt 0 view .LVU2960 8388 001e 4FF40073 mov r3, #512 8389 .LVL594: 3954:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8390 .loc 1 3954 23 view .LVU2961 8391 0022 6364 str r3, [r4, #68] 3955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8392 .loc 1 3955 7 is_stmt 1 view .LVU2962 3955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8393 .loc 1 3955 15 is_stmt 0 view .LVU2963 8394 0024 0120 movs r0, #1 8395 0026 54E0 b .L549 8396 .LVL595: 8397 .L550: 3959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8398 .loc 1 3959 5 is_stmt 1 view .LVU2964 8399 0028 48F20101 movw r1, #32769 8400 .LVL596: 3959:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8401 .loc 1 3959 5 is_stmt 0 view .LVU2965 8402 002c 2046 mov r0, r4 8403 002e FFF7FEFF bl I2C_Disable_IRQ 8404 .LVL597: 3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8405 .loc 1 3962 5 is_stmt 1 view .LVU2966 3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8406 .loc 1 3962 5 view .LVU2967 8407 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8408 0036 012B cmp r3, #1 8409 0038 4CD0 beq .L554 3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8410 .loc 1 3962 5 discriminator 2 view .LVU2968 8411 003a 0123 movs r3, #1 8412 003c 84F84030 strb r3, [r4, #64] 3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8413 .loc 1 3962 5 view .LVU2969 3966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8414 .loc 1 3966 5 view .LVU2970 3966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8415 .loc 1 3966 13 is_stmt 0 view .LVU2971 8416 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 3966:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8417 .loc 1 3966 8 view .LVU2972 8418 0044 2A2B cmp r3, #42 8419 0046 28D0 beq .L556 8420 .L551: 3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8421 .loc 1 3992 5 is_stmt 1 view .LVU2973 3992:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8422 .loc 1 3992 21 is_stmt 0 view .LVU2974 8423 0048 2923 movs r3, #41 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 329 8424 004a 84F84130 strb r3, [r4, #65] 3993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8425 .loc 1 3993 5 is_stmt 1 view .LVU2975 3993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8426 .loc 1 3993 21 is_stmt 0 view .LVU2976 8427 004e 2023 movs r3, #32 8428 0050 84F84230 strb r3, [r4, #66] 3994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8429 .loc 1 3994 5 is_stmt 1 view .LVU2977 3994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8430 .loc 1 3994 21 is_stmt 0 view .LVU2978 8431 0054 0023 movs r3, #0 8432 0056 6364 str r3, [r4, #68] 3997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8433 .loc 1 3997 5 is_stmt 1 view .LVU2979 3997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8434 .loc 1 3997 9 is_stmt 0 view .LVU2980 8435 0058 2268 ldr r2, [r4] 3997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8436 .loc 1 3997 19 view .LVU2981 8437 005a 5368 ldr r3, [r2, #4] 3997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8438 .loc 1 3997 25 view .LVU2982 8439 005c 23F40043 bic r3, r3, #32768 8440 0060 5360 str r3, [r2, #4] 4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8441 .loc 1 4000 5 is_stmt 1 view .LVU2983 4000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8442 .loc 1 4000 23 is_stmt 0 view .LVU2984 8443 0062 6762 str r7, [r4, #36] 4001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8444 .loc 1 4001 5 is_stmt 1 view .LVU2985 4001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8445 .loc 1 4001 23 is_stmt 0 view .LVU2986 8446 0064 6685 strh r6, [r4, #42] @ movhi 4002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8447 .loc 1 4002 5 is_stmt 1 view .LVU2987 4002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8448 .loc 1 4002 29 is_stmt 0 view .LVU2988 8449 0066 638D ldrh r3, [r4, #42] 4002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8450 .loc 1 4002 23 view .LVU2989 8451 0068 2385 strh r3, [r4, #40] @ movhi 4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8452 .loc 1 4003 5 is_stmt 1 view .LVU2990 4003:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 8453 .loc 1 4003 23 is_stmt 0 view .LVU2991 8454 006a E562 str r5, [r4, #44] 4004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8455 .loc 1 4004 5 is_stmt 1 view .LVU2992 4004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8456 .loc 1 4004 23 is_stmt 0 view .LVU2993 8457 006c 1A4B ldr r3, .L557 8458 006e 6363 str r3, [r4, #52] 4006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8459 .loc 1 4006 5 is_stmt 1 view .LVU2994 4006:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 330 8460 .loc 1 4006 11 is_stmt 0 view .LVU2995 8461 0070 2268 ldr r2, [r4] 8462 0072 9369 ldr r3, [r2, #24] 8463 0074 03F00803 and r3, r3, #8 8464 .LVL598: 4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8465 .loc 1 4007 5 is_stmt 1 view .LVU2996 4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8466 .loc 1 4007 10 is_stmt 0 view .LVU2997 8467 0078 9169 ldr r1, [r2, #24] 4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8468 .loc 1 4007 8 view .LVU2998 8469 007a 11F4803F tst r1, #65536 8470 007e 02D0 beq .L552 4007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8471 .loc 1 4007 54 discriminator 1 view .LVU2999 8472 0080 0BB1 cbz r3, .L552 4011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8473 .loc 1 4011 7 is_stmt 1 view .LVU3000 8474 0082 0823 movs r3, #8 8475 .LVL599: 4011:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8476 .loc 1 4011 7 is_stmt 0 view .LVU3001 8477 0084 D361 str r3, [r2, #28] 8478 .L552: 4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8479 .loc 1 4015 5 is_stmt 1 view .LVU3002 4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8480 .loc 1 4015 5 view .LVU3003 8481 0086 0025 movs r5, #0 8482 .LVL600: 4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8483 .loc 1 4015 5 is_stmt 0 view .LVU3004 8484 0088 84F84050 strb r5, [r4, #64] 4015:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8485 .loc 1 4015 5 is_stmt 1 view .LVU3005 4021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8486 .loc 1 4021 5 view .LVU3006 8487 008c 48F20101 movw r1, #32769 8488 0090 2046 mov r0, r4 8489 0092 FFF7FEFF bl I2C_Enable_IRQ 8490 .LVL601: 4023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8491 .loc 1 4023 5 view .LVU3007 4023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8492 .loc 1 4023 12 is_stmt 0 view .LVU3008 8493 0096 2846 mov r0, r5 8494 0098 1BE0 b .L549 8495 .LVL602: 8496 .L556: 3969:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8497 .loc 1 3969 7 is_stmt 1 view .LVU3009 8498 009a 0221 movs r1, #2 8499 009c 2046 mov r0, r4 8500 009e FFF7FEFF bl I2C_Disable_IRQ 8501 .LVL603: 3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 331 8502 .loc 1 3972 7 view .LVU3010 3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8503 .loc 1 3972 16 is_stmt 0 view .LVU3011 8504 00a2 2368 ldr r3, [r4] 3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8505 .loc 1 3972 26 view .LVU3012 8506 00a4 1A68 ldr r2, [r3] 3972:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8507 .loc 1 3972 10 view .LVU3013 8508 00a6 12F4004F tst r2, #32768 8509 00aa CDD0 beq .L551 3974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8510 .loc 1 3974 9 is_stmt 1 view .LVU3014 3974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8511 .loc 1 3974 23 is_stmt 0 view .LVU3015 8512 00ac 1A68 ldr r2, [r3] 3974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8513 .loc 1 3974 29 view .LVU3016 8514 00ae 22F40042 bic r2, r2, #32768 8515 00b2 1A60 str r2, [r3] 3976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8516 .loc 1 3976 9 is_stmt 1 view .LVU3017 3976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8517 .loc 1 3976 17 is_stmt 0 view .LVU3018 8518 00b4 E36B ldr r3, [r4, #60] 3976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8519 .loc 1 3976 12 view .LVU3019 8520 00b6 002B cmp r3, #0 8521 00b8 C6D0 beq .L551 3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8522 .loc 1 3980 11 is_stmt 1 view .LVU3020 3980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8523 .loc 1 3980 43 is_stmt 0 view .LVU3021 8524 00ba 084A ldr r2, .L557+4 8525 00bc 1A65 str r2, [r3, #80] 3983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8526 .loc 1 3983 11 is_stmt 1 view .LVU3022 3983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8527 .loc 1 3983 15 is_stmt 0 view .LVU3023 8528 00be E06B ldr r0, [r4, #60] 8529 00c0 FFF7FEFF bl HAL_DMA_Abort_IT 8530 .LVL604: 3983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8531 .loc 1 3983 14 discriminator 1 view .LVU3024 8532 00c4 0028 cmp r0, #0 8533 00c6 BFD0 beq .L551 3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8534 .loc 1 3986 13 is_stmt 1 view .LVU3025 3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8535 .loc 1 3986 17 is_stmt 0 view .LVU3026 8536 00c8 E06B ldr r0, [r4, #60] 3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8537 .loc 1 3986 25 view .LVU3027 8538 00ca 036D ldr r3, [r0, #80] 3986:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8539 .loc 1 3986 13 view .LVU3028 8540 00cc 9847 blx r3 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 332 8541 .LVL605: 8542 00ce BBE7 b .L551 8543 .LVL606: 8544 .L553: 4027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8545 .loc 1 4027 12 view .LVU3029 8546 00d0 0120 movs r0, #1 8547 .LVL607: 8548 .L549: 4029:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8549 .loc 1 4029 1 view .LVU3030 8550 00d2 F8BD pop {r3, r4, r5, r6, r7, pc} 8551 .LVL608: 8552 .L554: 3962:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8553 .loc 1 3962 5 discriminator 1 view .LVU3031 8554 00d4 0220 movs r0, #2 8555 00d6 FCE7 b .L549 8556 .L558: 8557 .align 2 8558 .L557: 8559 00d8 00000000 .word I2C_Slave_ISR_IT 8560 00dc 00000000 .word I2C_DMAAbort 8561 .cfi_endproc 8562 .LFE362: 8564 .section .text.HAL_I2C_Slave_Seq_Transmit_DMA,"ax",%progbits 8565 .align 1 8566 .global HAL_I2C_Slave_Seq_Transmit_DMA 8567 .syntax unified 8568 .thumb 8569 .thumb_func 8571 HAL_I2C_Slave_Seq_Transmit_DMA: 8572 .LVL609: 8573 .LFB363: 4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8574 .loc 1 4043 1 is_stmt 1 view -0 8575 .cfi_startproc 8576 @ args = 0, pretend = 0, frame = 0 8577 @ frame_needed = 0, uses_anonymous_args = 0 4043:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8578 .loc 1 4043 1 is_stmt 0 view .LVU3033 8579 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8580 .cfi_def_cfa_offset 24 8581 .cfi_offset 3, -24 8582 .cfi_offset 4, -20 8583 .cfi_offset 5, -16 8584 .cfi_offset 6, -12 8585 .cfi_offset 7, -8 8586 .cfi_offset 14, -4 8587 0002 0446 mov r4, r0 4045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 8588 .loc 1 4045 3 is_stmt 1 view .LVU3034 4046:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8589 .loc 1 4046 3 view .LVU3035 4049:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8590 .loc 1 4049 3 view .LVU3036 4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 333 8591 .loc 1 4051 3 view .LVU3037 4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8592 .loc 1 4051 22 is_stmt 0 view .LVU3038 8593 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8594 .LVL610: 4051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8595 .loc 1 4051 6 view .LVU3039 8596 0008 00F02800 and r0, r0, #40 8597 000c 2828 cmp r0, #40 8598 000e 40F0BE80 bne .L569 8599 0012 0F46 mov r7, r1 8600 0014 1646 mov r6, r2 8601 0016 1D46 mov r5, r3 4053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8602 .loc 1 4053 5 is_stmt 1 view .LVU3040 4053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8603 .loc 1 4053 8 is_stmt 0 view .LVU3041 8604 0018 002A cmp r2, #0 8605 001a 18BF it ne 8606 001c 0029 cmpne r1, #0 8607 001e 4DD0 beq .L573 4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8608 .loc 1 4060 5 is_stmt 1 view .LVU3042 4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8609 .loc 1 4060 5 view .LVU3043 8610 0020 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 8611 .LVL611: 4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8612 .loc 1 4060 5 is_stmt 0 view .LVU3044 8613 0024 012B cmp r3, #1 8614 0026 00F0B580 beq .L570 4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8615 .loc 1 4060 5 is_stmt 1 discriminator 2 view .LVU3045 8616 002a 0123 movs r3, #1 8617 002c 84F84030 strb r3, [r4, #64] 4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8618 .loc 1 4060 5 view .LVU3046 4063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8619 .loc 1 4063 5 view .LVU3047 8620 0030 48F20101 movw r1, #32769 8621 .LVL612: 4063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8622 .loc 1 4063 5 is_stmt 0 view .LVU3048 8623 0034 2046 mov r0, r4 8624 0036 FFF7FEFF bl I2C_Disable_IRQ 8625 .LVL613: 4067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8626 .loc 1 4067 5 is_stmt 1 view .LVU3049 4067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8627 .loc 1 4067 13 is_stmt 0 view .LVU3050 8628 003a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4067:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8629 .loc 1 4067 8 view .LVU3051 8630 003e 2A2B cmp r3, #42 8631 0040 41D0 beq .L574 4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8632 .loc 1 4092 10 is_stmt 1 view .LVU3052 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 334 4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8633 .loc 1 4092 18 is_stmt 0 view .LVU3053 8634 0042 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4092:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8635 .loc 1 4092 13 view .LVU3054 8636 0046 292B cmp r3, #41 8637 0048 59D0 beq .L575 8638 .L563: 4117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8639 .loc 1 4117 5 is_stmt 1 view .LVU3055 4119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8640 .loc 1 4119 5 view .LVU3056 4119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 8641 .loc 1 4119 21 is_stmt 0 view .LVU3057 8642 004a 2923 movs r3, #41 8643 004c 84F84130 strb r3, [r4, #65] 4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8644 .loc 1 4120 5 is_stmt 1 view .LVU3058 4120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 8645 .loc 1 4120 21 is_stmt 0 view .LVU3059 8646 0050 2023 movs r3, #32 8647 0052 84F84230 strb r3, [r4, #66] 4121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8648 .loc 1 4121 5 is_stmt 1 view .LVU3060 4121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8649 .loc 1 4121 21 is_stmt 0 view .LVU3061 8650 0056 0023 movs r3, #0 8651 0058 6364 str r3, [r4, #68] 4124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8652 .loc 1 4124 5 is_stmt 1 view .LVU3062 4124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8653 .loc 1 4124 9 is_stmt 0 view .LVU3063 8654 005a 2268 ldr r2, [r4] 4124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8655 .loc 1 4124 19 view .LVU3064 8656 005c 5368 ldr r3, [r2, #4] 4124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8657 .loc 1 4124 25 view .LVU3065 8658 005e 23F40043 bic r3, r3, #32768 8659 0062 5360 str r3, [r2, #4] 4127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8660 .loc 1 4127 5 is_stmt 1 view .LVU3066 4127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 8661 .loc 1 4127 23 is_stmt 0 view .LVU3067 8662 0064 6762 str r7, [r4, #36] 4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8663 .loc 1 4128 5 is_stmt 1 view .LVU3068 4128:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 8664 .loc 1 4128 23 is_stmt 0 view .LVU3069 8665 0066 6685 strh r6, [r4, #42] @ movhi 4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8666 .loc 1 4129 5 is_stmt 1 view .LVU3070 4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8667 .loc 1 4129 29 is_stmt 0 view .LVU3071 8668 0068 638D ldrh r3, [r4, #42] 4129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 8669 .loc 1 4129 23 view .LVU3072 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 335 8670 006a 2385 strh r3, [r4, #40] @ movhi 4130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8671 .loc 1 4130 5 is_stmt 1 view .LVU3073 4130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 8672 .loc 1 4130 23 is_stmt 0 view .LVU3074 8673 006c E562 str r5, [r4, #44] 4131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8674 .loc 1 4131 5 is_stmt 1 view .LVU3075 4131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8675 .loc 1 4131 23 is_stmt 0 view .LVU3076 8676 006e 4A4B ldr r3, .L576 8677 0070 6363 str r3, [r4, #52] 4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8678 .loc 1 4133 5 is_stmt 1 view .LVU3077 4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8679 .loc 1 4133 13 is_stmt 0 view .LVU3078 8680 0072 A36B ldr r3, [r4, #56] 4133:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8681 .loc 1 4133 8 view .LVU3079 8682 0074 002B cmp r3, #0 8683 0076 59D0 beq .L564 4136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8684 .loc 1 4136 7 is_stmt 1 view .LVU3080 4136:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8685 .loc 1 4136 38 is_stmt 0 view .LVU3081 8686 0078 484A ldr r2, .L576+4 8687 007a DA63 str r2, [r3, #60] 4139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8688 .loc 1 4139 7 is_stmt 1 view .LVU3082 4139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8689 .loc 1 4139 11 is_stmt 0 view .LVU3083 8690 007c A36B ldr r3, [r4, #56] 4139:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8691 .loc 1 4139 39 view .LVU3084 8692 007e 484A ldr r2, .L576+8 8693 0080 DA64 str r2, [r3, #76] 4142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8694 .loc 1 4142 7 is_stmt 1 view .LVU3085 4142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8695 .loc 1 4142 11 is_stmt 0 view .LVU3086 8696 0082 A26B ldr r2, [r4, #56] 4142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmatx->XferAbortCallback = NULL; 8697 .loc 1 4142 42 view .LVU3087 8698 0084 0023 movs r3, #0 8699 0086 1364 str r3, [r2, #64] 4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8700 .loc 1 4143 7 is_stmt 1 view .LVU3088 4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8701 .loc 1 4143 11 is_stmt 0 view .LVU3089 8702 0088 A26B ldr r2, [r4, #56] 4143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8703 .loc 1 4143 39 view .LVU3090 8704 008a 1365 str r3, [r2, #80] 4146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 8705 .loc 1 4146 7 is_stmt 1 view .LVU3091 4146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 8706 .loc 1 4146 86 is_stmt 0 view .LVU3092 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 336 8707 008c 2268 ldr r2, [r4] 4146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize); 8708 .loc 1 4146 23 view .LVU3093 8709 008e 238D ldrh r3, [r4, #40] 8710 0090 2832 adds r2, r2, #40 8711 0092 3946 mov r1, r7 8712 0094 A06B ldr r0, [r4, #56] 8713 0096 FFF7FEFF bl HAL_DMA_Start_IT 8714 .LVL614: 4164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8715 .loc 1 4164 5 is_stmt 1 view .LVU3094 4164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8716 .loc 1 4164 8 is_stmt 0 view .LVU3095 8717 009a 0546 mov r5, r0 8718 .LVL615: 4164:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8719 .loc 1 4164 8 view .LVU3096 8720 009c 0028 cmp r0, #0 8721 009e 53D0 beq .L565 4175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8722 .loc 1 4175 7 is_stmt 1 view .LVU3097 4175:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8723 .loc 1 4175 23 is_stmt 0 view .LVU3098 8724 00a0 2823 movs r3, #40 8725 00a2 84F84130 strb r3, [r4, #65] 4176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8726 .loc 1 4176 7 is_stmt 1 view .LVU3099 4176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8727 .loc 1 4176 23 is_stmt 0 view .LVU3100 8728 00a6 0022 movs r2, #0 8729 00a8 84F84220 strb r2, [r4, #66] 4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8730 .loc 1 4179 7 is_stmt 1 view .LVU3101 4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8731 .loc 1 4179 11 is_stmt 0 view .LVU3102 8732 00ac 636C ldr r3, [r4, #68] 4179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8733 .loc 1 4179 23 view .LVU3103 8734 00ae 43F01003 orr r3, r3, #16 8735 00b2 6364 str r3, [r4, #68] 4182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8736 .loc 1 4182 7 is_stmt 1 view .LVU3104 4182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8737 .loc 1 4182 7 view .LVU3105 8738 00b4 84F84020 strb r2, [r4, #64] 4182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8739 .loc 1 4182 7 view .LVU3106 4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8740 .loc 1 4184 7 view .LVU3107 4184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8741 .loc 1 4184 14 is_stmt 0 view .LVU3108 8742 00b8 0125 movs r5, #1 8743 00ba 69E0 b .L560 8744 .LVL616: 8745 .L573: 4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8746 .loc 1 4055 7 is_stmt 1 view .LVU3109 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 337 4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8747 .loc 1 4055 23 is_stmt 0 view .LVU3110 8748 00bc 4FF40073 mov r3, #512 8749 .LVL617: 4055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 8750 .loc 1 4055 23 view .LVU3111 8751 00c0 6364 str r3, [r4, #68] 4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8752 .loc 1 4056 7 is_stmt 1 view .LVU3112 4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8753 .loc 1 4056 15 is_stmt 0 view .LVU3113 8754 00c2 0125 movs r5, #1 8755 .LVL618: 4056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8756 .loc 1 4056 15 view .LVU3114 8757 00c4 64E0 b .L560 8758 .LVL619: 8759 .L574: 4070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8760 .loc 1 4070 7 is_stmt 1 view .LVU3115 8761 00c6 0221 movs r1, #2 8762 00c8 2046 mov r0, r4 8763 00ca FFF7FEFF bl I2C_Disable_IRQ 8764 .LVL620: 4072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8765 .loc 1 4072 7 view .LVU3116 4072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8766 .loc 1 4072 16 is_stmt 0 view .LVU3117 8767 00ce 2368 ldr r3, [r4] 4072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8768 .loc 1 4072 26 view .LVU3118 8769 00d0 1A68 ldr r2, [r3] 4072:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8770 .loc 1 4072 10 view .LVU3119 8771 00d2 12F4004F tst r2, #32768 8772 00d6 B8D0 beq .L563 4075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8773 .loc 1 4075 9 is_stmt 1 view .LVU3120 4075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8774 .loc 1 4075 17 is_stmt 0 view .LVU3121 8775 00d8 E26B ldr r2, [r4, #60] 4075:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8776 .loc 1 4075 12 view .LVU3122 8777 00da 002A cmp r2, #0 8778 00dc B5D0 beq .L563 4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8779 .loc 1 4077 11 is_stmt 1 view .LVU3123 4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8780 .loc 1 4077 25 is_stmt 0 view .LVU3124 8781 00de 1A68 ldr r2, [r3] 4077:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8782 .loc 1 4077 31 view .LVU3125 8783 00e0 22F40042 bic r2, r2, #32768 8784 00e4 1A60 str r2, [r3] 4081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8785 .loc 1 4081 11 is_stmt 1 view .LVU3126 4081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 338 8786 .loc 1 4081 15 is_stmt 0 view .LVU3127 8787 00e6 E36B ldr r3, [r4, #60] 4081:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8788 .loc 1 4081 43 view .LVU3128 8789 00e8 2E4A ldr r2, .L576+12 8790 00ea 1A65 str r2, [r3, #80] 4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8791 .loc 1 4084 11 is_stmt 1 view .LVU3129 4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8792 .loc 1 4084 15 is_stmt 0 view .LVU3130 8793 00ec E06B ldr r0, [r4, #60] 8794 00ee FFF7FEFF bl HAL_DMA_Abort_IT 8795 .LVL621: 4084:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8796 .loc 1 4084 14 discriminator 1 view .LVU3131 8797 00f2 0028 cmp r0, #0 8798 00f4 A9D0 beq .L563 4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8799 .loc 1 4087 13 is_stmt 1 view .LVU3132 4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8800 .loc 1 4087 17 is_stmt 0 view .LVU3133 8801 00f6 E06B ldr r0, [r4, #60] 4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8802 .loc 1 4087 25 view .LVU3134 8803 00f8 036D ldr r3, [r0, #80] 4087:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8804 .loc 1 4087 13 view .LVU3135 8805 00fa 9847 blx r3 8806 .LVL622: 8807 00fc A5E7 b .L563 8808 .L575: 4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8809 .loc 1 4094 7 is_stmt 1 view .LVU3136 4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8810 .loc 1 4094 16 is_stmt 0 view .LVU3137 8811 00fe 2368 ldr r3, [r4] 4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8812 .loc 1 4094 26 view .LVU3138 8813 0100 1A68 ldr r2, [r3] 4094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8814 .loc 1 4094 10 view .LVU3139 8815 0102 12F4804F tst r2, #16384 8816 0106 A0D0 beq .L563 4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8817 .loc 1 4096 9 is_stmt 1 view .LVU3140 4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8818 .loc 1 4096 23 is_stmt 0 view .LVU3141 8819 0108 1A68 ldr r2, [r3] 4096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8820 .loc 1 4096 29 view .LVU3142 8821 010a 22F48042 bic r2, r2, #16384 8822 010e 1A60 str r2, [r3] 4099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8823 .loc 1 4099 9 is_stmt 1 view .LVU3143 4099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8824 .loc 1 4099 17 is_stmt 0 view .LVU3144 8825 0110 A36B ldr r3, [r4, #56] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 339 4099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8826 .loc 1 4099 12 view .LVU3145 8827 0112 002B cmp r3, #0 8828 0114 99D0 beq .L563 4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8829 .loc 1 4103 11 is_stmt 1 view .LVU3146 4103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8830 .loc 1 4103 43 is_stmt 0 view .LVU3147 8831 0116 234A ldr r2, .L576+12 8832 0118 1A65 str r2, [r3, #80] 4106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8833 .loc 1 4106 11 is_stmt 1 view .LVU3148 4106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8834 .loc 1 4106 15 is_stmt 0 view .LVU3149 8835 011a A06B ldr r0, [r4, #56] 8836 011c FFF7FEFF bl HAL_DMA_Abort_IT 8837 .LVL623: 4106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8838 .loc 1 4106 14 discriminator 1 view .LVU3150 8839 0120 0028 cmp r0, #0 8840 0122 92D0 beq .L563 4109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8841 .loc 1 4109 13 is_stmt 1 view .LVU3151 4109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8842 .loc 1 4109 17 is_stmt 0 view .LVU3152 8843 0124 A06B ldr r0, [r4, #56] 4109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8844 .loc 1 4109 25 view .LVU3153 8845 0126 036D ldr r3, [r0, #80] 4109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8846 .loc 1 4109 13 view .LVU3154 8847 0128 9847 blx r3 8848 .LVL624: 8849 012a 8EE7 b .L563 8850 .L564: 4152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8851 .loc 1 4152 7 is_stmt 1 view .LVU3155 4152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 8852 .loc 1 4152 23 is_stmt 0 view .LVU3156 8853 012c 2823 movs r3, #40 8854 012e 84F84130 strb r3, [r4, #65] 4153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8855 .loc 1 4153 7 is_stmt 1 view .LVU3157 4153:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8856 .loc 1 4153 23 is_stmt 0 view .LVU3158 8857 0132 0022 movs r2, #0 8858 0134 84F84220 strb r2, [r4, #66] 4156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8859 .loc 1 4156 7 is_stmt 1 view .LVU3159 4156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8860 .loc 1 4156 11 is_stmt 0 view .LVU3160 8861 0138 636C ldr r3, [r4, #68] 4156:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8862 .loc 1 4156 23 view .LVU3161 8863 013a 43F08003 orr r3, r3, #128 8864 013e 6364 str r3, [r4, #68] 4159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 340 8865 .loc 1 4159 7 is_stmt 1 view .LVU3162 4159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8866 .loc 1 4159 7 view .LVU3163 8867 0140 84F84020 strb r2, [r4, #64] 4159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8868 .loc 1 4159 7 view .LVU3164 4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8869 .loc 1 4161 7 view .LVU3165 4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8870 .loc 1 4161 14 is_stmt 0 view .LVU3166 8871 0144 0125 movs r5, #1 8872 .LVL625: 4161:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8873 .loc 1 4161 14 view .LVU3167 8874 0146 23E0 b .L560 8875 .LVL626: 8876 .L565: 4167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8877 .loc 1 4167 7 is_stmt 1 view .LVU3168 4167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8878 .loc 1 4167 11 is_stmt 0 view .LVU3169 8879 0148 638D ldrh r3, [r4, #42] 8880 014a 9BB2 uxth r3, r3 4167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8881 .loc 1 4167 30 view .LVU3170 8882 014c 228D ldrh r2, [r4, #40] 4167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8883 .loc 1 4167 23 view .LVU3171 8884 014e 9B1A subs r3, r3, r2 8885 0150 9BB2 uxth r3, r3 8886 0152 6385 strh r3, [r4, #42] @ movhi 4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8887 .loc 1 4170 7 is_stmt 1 view .LVU3172 4170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8888 .loc 1 4170 22 is_stmt 0 view .LVU3173 8889 0154 0023 movs r3, #0 8890 0156 2385 strh r3, [r4, #40] @ movhi 4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8891 .loc 1 4187 5 is_stmt 1 view .LVU3174 4187:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_RECEIVE) && (tmp != RESET)) 8892 .loc 1 4187 11 is_stmt 0 view .LVU3175 8893 0158 2268 ldr r2, [r4] 8894 015a 9369 ldr r3, [r2, #24] 8895 015c 03F00803 and r3, r3, #8 8896 .LVL627: 4188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8897 .loc 1 4188 5 is_stmt 1 view .LVU3176 4188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8898 .loc 1 4188 10 is_stmt 0 view .LVU3177 8899 0160 9169 ldr r1, [r2, #24] 4188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8900 .loc 1 4188 8 view .LVU3178 8901 0162 11F4803F tst r1, #65536 8902 0166 0DD1 bne .L567 8903 .LVL628: 8904 .L568: 4196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 341 8905 .loc 1 4196 5 is_stmt 1 view .LVU3179 4196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8906 .loc 1 4196 5 view .LVU3180 8907 0168 0023 movs r3, #0 8908 016a 84F84030 strb r3, [r4, #64] 4196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8909 .loc 1 4196 5 view .LVU3181 4199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8910 .loc 1 4199 5 view .LVU3182 4199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8911 .loc 1 4199 9 is_stmt 0 view .LVU3183 8912 016e 2268 ldr r2, [r4] 4199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8913 .loc 1 4199 19 view .LVU3184 8914 0170 1368 ldr r3, [r2] 4199:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8915 .loc 1 4199 25 view .LVU3185 8916 0172 43F48043 orr r3, r3, #16384 8917 0176 1360 str r3, [r2] 4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8918 .loc 1 4205 5 is_stmt 1 view .LVU3186 8919 0178 4FF40041 mov r1, #32768 8920 017c 2046 mov r0, r4 8921 .LVL629: 4205:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8922 .loc 1 4205 5 is_stmt 0 view .LVU3187 8923 017e FFF7FEFF bl I2C_Enable_IRQ 8924 .LVL630: 4207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8925 .loc 1 4207 5 is_stmt 1 view .LVU3188 4207:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8926 .loc 1 4207 12 is_stmt 0 view .LVU3189 8927 0182 05E0 b .L560 8928 .LVL631: 8929 .L567: 4188:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8930 .loc 1 4188 54 discriminator 1 view .LVU3190 8931 0184 002B cmp r3, #0 8932 0186 EFD0 beq .L568 4192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8933 .loc 1 4192 7 is_stmt 1 view .LVU3191 8934 0188 0823 movs r3, #8 8935 .LVL632: 4192:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8936 .loc 1 4192 7 is_stmt 0 view .LVU3192 8937 018a D361 str r3, [r2, #28] 8938 018c ECE7 b .L568 8939 .LVL633: 8940 .L569: 4211:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 8941 .loc 1 4211 12 view .LVU3193 8942 018e 0125 movs r5, #1 8943 .LVL634: 8944 .L560: 4213:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8945 .loc 1 4213 1 view .LVU3194 8946 0190 2846 mov r0, r5 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 342 8947 0192 F8BD pop {r3, r4, r5, r6, r7, pc} 8948 .LVL635: 8949 .L570: 4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8950 .loc 1 4060 5 discriminator 1 view .LVU3195 8951 0194 0225 movs r5, #2 8952 .LVL636: 4060:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8953 .loc 1 4060 5 discriminator 1 view .LVU3196 8954 0196 FBE7 b .L560 8955 .L577: 8956 .align 2 8957 .L576: 8958 0198 00000000 .word I2C_Slave_ISR_DMA 8959 019c 00000000 .word I2C_DMASlaveTransmitCplt 8960 01a0 00000000 .word I2C_DMAError 8961 01a4 00000000 .word I2C_DMAAbort 8962 .cfi_endproc 8963 .LFE363: 8965 .section .text.HAL_I2C_Slave_Seq_Receive_IT,"ax",%progbits 8966 .align 1 8967 .global HAL_I2C_Slave_Seq_Receive_IT 8968 .syntax unified 8969 .thumb 8970 .thumb_func 8972 HAL_I2C_Slave_Seq_Receive_IT: 8973 .LVL637: 8974 .LFB364: 4227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8975 .loc 1 4227 1 is_stmt 1 view -0 8976 .cfi_startproc 8977 @ args = 0, pretend = 0, frame = 0 8978 @ frame_needed = 0, uses_anonymous_args = 0 4227:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 8979 .loc 1 4227 1 is_stmt 0 view .LVU3198 8980 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 8981 .cfi_def_cfa_offset 24 8982 .cfi_offset 3, -24 8983 .cfi_offset 4, -20 8984 .cfi_offset 5, -16 8985 .cfi_offset 6, -12 8986 .cfi_offset 7, -8 8987 .cfi_offset 14, -4 8988 0002 0446 mov r4, r0 4229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8989 .loc 1 4229 3 is_stmt 1 view .LVU3199 4232:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 8990 .loc 1 4232 3 view .LVU3200 4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8991 .loc 1 4234 3 view .LVU3201 4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8992 .loc 1 4234 22 is_stmt 0 view .LVU3202 8993 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 8994 .LVL638: 4234:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 8995 .loc 1 4234 6 view .LVU3203 8996 0008 00F02800 and r0, r0, #40 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 343 8997 000c 2828 cmp r0, #40 8998 000e 5FD1 bne .L583 8999 0010 0F46 mov r7, r1 9000 0012 1646 mov r6, r2 9001 0014 1D46 mov r5, r3 4236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9002 .loc 1 4236 5 is_stmt 1 view .LVU3204 4236:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9003 .loc 1 4236 8 is_stmt 0 view .LVU3205 9004 0016 002A cmp r2, #0 9005 0018 18BF it ne 9006 001a 0029 cmpne r1, #0 9007 001c 04D1 bne .L580 4238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 9008 .loc 1 4238 7 is_stmt 1 view .LVU3206 4238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 9009 .loc 1 4238 23 is_stmt 0 view .LVU3207 9010 001e 4FF40073 mov r3, #512 9011 .LVL639: 4238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 9012 .loc 1 4238 23 view .LVU3208 9013 0022 6364 str r3, [r4, #68] 4239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9014 .loc 1 4239 7 is_stmt 1 view .LVU3209 4239:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9015 .loc 1 4239 15 is_stmt 0 view .LVU3210 9016 0024 0120 movs r0, #1 9017 0026 54E0 b .L579 9018 .LVL640: 9019 .L580: 4243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9020 .loc 1 4243 5 is_stmt 1 view .LVU3211 9021 0028 48F20201 movw r1, #32770 9022 .LVL641: 4243:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9023 .loc 1 4243 5 is_stmt 0 view .LVU3212 9024 002c 2046 mov r0, r4 9025 002e FFF7FEFF bl I2C_Disable_IRQ 9026 .LVL642: 4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9027 .loc 1 4246 5 is_stmt 1 view .LVU3213 4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9028 .loc 1 4246 5 view .LVU3214 9029 0032 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9030 0036 012B cmp r3, #1 9031 0038 4CD0 beq .L584 4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9032 .loc 1 4246 5 discriminator 2 view .LVU3215 9033 003a 0123 movs r3, #1 9034 003c 84F84030 strb r3, [r4, #64] 4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9035 .loc 1 4246 5 view .LVU3216 4250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9036 .loc 1 4250 5 view .LVU3217 4250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9037 .loc 1 4250 13 is_stmt 0 view .LVU3218 9038 0040 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 344 4250:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9039 .loc 1 4250 8 view .LVU3219 9040 0044 292B cmp r3, #41 9041 0046 28D0 beq .L586 9042 .L581: 4276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9043 .loc 1 4276 5 is_stmt 1 view .LVU3220 4276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9044 .loc 1 4276 21 is_stmt 0 view .LVU3221 9045 0048 2A23 movs r3, #42 9046 004a 84F84130 strb r3, [r4, #65] 4277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9047 .loc 1 4277 5 is_stmt 1 view .LVU3222 4277:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9048 .loc 1 4277 21 is_stmt 0 view .LVU3223 9049 004e 2023 movs r3, #32 9050 0050 84F84230 strb r3, [r4, #66] 4278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9051 .loc 1 4278 5 is_stmt 1 view .LVU3224 4278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9052 .loc 1 4278 21 is_stmt 0 view .LVU3225 9053 0054 0023 movs r3, #0 9054 0056 6364 str r3, [r4, #68] 4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9055 .loc 1 4281 5 is_stmt 1 view .LVU3226 4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9056 .loc 1 4281 9 is_stmt 0 view .LVU3227 9057 0058 2268 ldr r2, [r4] 4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9058 .loc 1 4281 19 view .LVU3228 9059 005a 5368 ldr r3, [r2, #4] 4281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9060 .loc 1 4281 25 view .LVU3229 9061 005c 23F40043 bic r3, r3, #32768 9062 0060 5360 str r3, [r2, #4] 4284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 9063 .loc 1 4284 5 is_stmt 1 view .LVU3230 4284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 9064 .loc 1 4284 23 is_stmt 0 view .LVU3231 9065 0062 6762 str r7, [r4, #36] 4285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9066 .loc 1 4285 5 is_stmt 1 view .LVU3232 4285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9067 .loc 1 4285 23 is_stmt 0 view .LVU3233 9068 0064 6685 strh r6, [r4, #42] @ movhi 4286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9069 .loc 1 4286 5 is_stmt 1 view .LVU3234 4286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9070 .loc 1 4286 29 is_stmt 0 view .LVU3235 9071 0066 638D ldrh r3, [r4, #42] 4286:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9072 .loc 1 4286 23 view .LVU3236 9073 0068 2385 strh r3, [r4, #40] @ movhi 4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9074 .loc 1 4287 5 is_stmt 1 view .LVU3237 4287:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9075 .loc 1 4287 23 is_stmt 0 view .LVU3238 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 345 9076 006a E562 str r5, [r4, #44] 4288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9077 .loc 1 4288 5 is_stmt 1 view .LVU3239 4288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9078 .loc 1 4288 23 is_stmt 0 view .LVU3240 9079 006c 1A4B ldr r3, .L587 9080 006e 6363 str r3, [r4, #52] 4290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9081 .loc 1 4290 5 is_stmt 1 view .LVU3241 4290:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9082 .loc 1 4290 11 is_stmt 0 view .LVU3242 9083 0070 2268 ldr r2, [r4] 9084 0072 9369 ldr r3, [r2, #24] 9085 0074 03F00803 and r3, r3, #8 9086 .LVL643: 4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9087 .loc 1 4291 5 is_stmt 1 view .LVU3243 4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9088 .loc 1 4291 10 is_stmt 0 view .LVU3244 9089 0078 9169 ldr r1, [r2, #24] 4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9090 .loc 1 4291 8 view .LVU3245 9091 007a 11F4803F tst r1, #65536 9092 007e 02D1 bne .L582 4291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9093 .loc 1 4291 55 discriminator 1 view .LVU3246 9094 0080 0BB1 cbz r3, .L582 4295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9095 .loc 1 4295 7 is_stmt 1 view .LVU3247 9096 0082 0823 movs r3, #8 9097 .LVL644: 4295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9098 .loc 1 4295 7 is_stmt 0 view .LVU3248 9099 0084 D361 str r3, [r2, #28] 9100 .L582: 4299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9101 .loc 1 4299 5 is_stmt 1 view .LVU3249 4299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9102 .loc 1 4299 5 view .LVU3250 9103 0086 0025 movs r5, #0 9104 .LVL645: 4299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9105 .loc 1 4299 5 is_stmt 0 view .LVU3251 9106 0088 84F84050 strb r5, [r4, #64] 4299:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9107 .loc 1 4299 5 is_stmt 1 view .LVU3252 4305:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9108 .loc 1 4305 5 view .LVU3253 9109 008c 48F20201 movw r1, #32770 9110 0090 2046 mov r0, r4 9111 0092 FFF7FEFF bl I2C_Enable_IRQ 9112 .LVL646: 4307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9113 .loc 1 4307 5 view .LVU3254 4307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9114 .loc 1 4307 12 is_stmt 0 view .LVU3255 9115 0096 2846 mov r0, r5 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 346 9116 0098 1BE0 b .L579 9117 .LVL647: 9118 .L586: 4253:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9119 .loc 1 4253 7 is_stmt 1 view .LVU3256 9120 009a 0121 movs r1, #1 9121 009c 2046 mov r0, r4 9122 009e FFF7FEFF bl I2C_Disable_IRQ 9123 .LVL648: 4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9124 .loc 1 4255 7 view .LVU3257 4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9125 .loc 1 4255 16 is_stmt 0 view .LVU3258 9126 00a2 2368 ldr r3, [r4] 4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9127 .loc 1 4255 26 view .LVU3259 9128 00a4 1A68 ldr r2, [r3] 4255:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9129 .loc 1 4255 10 view .LVU3260 9130 00a6 12F4804F tst r2, #16384 9131 00aa CDD0 beq .L581 4257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9132 .loc 1 4257 9 is_stmt 1 view .LVU3261 4257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9133 .loc 1 4257 23 is_stmt 0 view .LVU3262 9134 00ac 1A68 ldr r2, [r3] 4257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9135 .loc 1 4257 29 view .LVU3263 9136 00ae 22F48042 bic r2, r2, #16384 9137 00b2 1A60 str r2, [r3] 4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9138 .loc 1 4260 9 is_stmt 1 view .LVU3264 4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9139 .loc 1 4260 17 is_stmt 0 view .LVU3265 9140 00b4 A36B ldr r3, [r4, #56] 4260:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9141 .loc 1 4260 12 view .LVU3266 9142 00b6 002B cmp r3, #0 9143 00b8 C6D0 beq .L581 4264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9144 .loc 1 4264 11 is_stmt 1 view .LVU3267 4264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9145 .loc 1 4264 43 is_stmt 0 view .LVU3268 9146 00ba 084A ldr r2, .L587+4 9147 00bc 1A65 str r2, [r3, #80] 4267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9148 .loc 1 4267 11 is_stmt 1 view .LVU3269 4267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9149 .loc 1 4267 15 is_stmt 0 view .LVU3270 9150 00be A06B ldr r0, [r4, #56] 9151 00c0 FFF7FEFF bl HAL_DMA_Abort_IT 9152 .LVL649: 4267:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9153 .loc 1 4267 14 discriminator 1 view .LVU3271 9154 00c4 0028 cmp r0, #0 9155 00c6 BFD0 beq .L581 4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 347 9156 .loc 1 4270 13 is_stmt 1 view .LVU3272 4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9157 .loc 1 4270 17 is_stmt 0 view .LVU3273 9158 00c8 A06B ldr r0, [r4, #56] 4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9159 .loc 1 4270 25 view .LVU3274 9160 00ca 036D ldr r3, [r0, #80] 4270:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9161 .loc 1 4270 13 view .LVU3275 9162 00cc 9847 blx r3 9163 .LVL650: 9164 00ce BBE7 b .L581 9165 .LVL651: 9166 .L583: 4311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9167 .loc 1 4311 12 view .LVU3276 9168 00d0 0120 movs r0, #1 9169 .LVL652: 9170 .L579: 4313:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9171 .loc 1 4313 1 view .LVU3277 9172 00d2 F8BD pop {r3, r4, r5, r6, r7, pc} 9173 .LVL653: 9174 .L584: 4246:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9175 .loc 1 4246 5 discriminator 1 view .LVU3278 9176 00d4 0220 movs r0, #2 9177 00d6 FCE7 b .L579 9178 .L588: 9179 .align 2 9180 .L587: 9181 00d8 00000000 .word I2C_Slave_ISR_IT 9182 00dc 00000000 .word I2C_DMAAbort 9183 .cfi_endproc 9184 .LFE364: 9186 .section .text.HAL_I2C_Slave_Seq_Receive_DMA,"ax",%progbits 9187 .align 1 9188 .global HAL_I2C_Slave_Seq_Receive_DMA 9189 .syntax unified 9190 .thumb 9191 .thumb_func 9193 HAL_I2C_Slave_Seq_Receive_DMA: 9194 .LVL654: 9195 .LFB365: 4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9196 .loc 1 4327 1 is_stmt 1 view -0 9197 .cfi_startproc 9198 @ args = 0, pretend = 0, frame = 0 9199 @ frame_needed = 0, uses_anonymous_args = 0 4327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9200 .loc 1 4327 1 is_stmt 0 view .LVU3280 9201 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 9202 .cfi_def_cfa_offset 24 9203 .cfi_offset 3, -24 9204 .cfi_offset 4, -20 9205 .cfi_offset 5, -16 9206 .cfi_offset 6, -12 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 348 9207 .cfi_offset 7, -8 9208 .cfi_offset 14, -4 9209 0002 0446 mov r4, r0 4329:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_StatusTypeDef dmaxferstatus; 9210 .loc 1 4329 3 is_stmt 1 view .LVU3281 4330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9211 .loc 1 4330 3 view .LVU3282 4333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9212 .loc 1 4333 3 view .LVU3283 4335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9213 .loc 1 4335 3 view .LVU3284 4335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9214 .loc 1 4335 22 is_stmt 0 view .LVU3285 9215 0004 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 9216 .LVL655: 4335:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9217 .loc 1 4335 6 view .LVU3286 9218 0008 00F02800 and r0, r0, #40 9219 000c 2828 cmp r0, #40 9220 000e 40F0BE80 bne .L599 9221 0012 0F46 mov r7, r1 9222 0014 1646 mov r6, r2 9223 0016 1D46 mov r5, r3 4337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9224 .loc 1 4337 5 is_stmt 1 view .LVU3287 4337:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9225 .loc 1 4337 8 is_stmt 0 view .LVU3288 9226 0018 002A cmp r2, #0 9227 001a 18BF it ne 9228 001c 0029 cmpne r1, #0 9229 001e 04D1 bne .L591 4339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 9230 .loc 1 4339 7 is_stmt 1 view .LVU3289 4339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 9231 .loc 1 4339 23 is_stmt 0 view .LVU3290 9232 0020 4FF40073 mov r3, #512 9233 .LVL656: 4339:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return HAL_ERROR; 9234 .loc 1 4339 23 view .LVU3291 9235 0024 6364 str r3, [r4, #68] 4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9236 .loc 1 4340 7 is_stmt 1 view .LVU3292 4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9237 .loc 1 4340 15 is_stmt 0 view .LVU3293 9238 0026 0125 movs r5, #1 9239 .LVL657: 4340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9240 .loc 1 4340 15 view .LVU3294 9241 0028 B2E0 b .L590 9242 .LVL658: 9243 .L591: 4344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9244 .loc 1 4344 5 is_stmt 1 view .LVU3295 9245 002a 48F20201 movw r1, #32770 9246 .LVL659: 4344:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9247 .loc 1 4344 5 is_stmt 0 view .LVU3296 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 349 9248 002e 2046 mov r0, r4 9249 0030 FFF7FEFF bl I2C_Disable_IRQ 9250 .LVL660: 4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9251 .loc 1 4347 5 is_stmt 1 view .LVU3297 4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9252 .loc 1 4347 5 view .LVU3298 9253 0034 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 9254 0038 012B cmp r3, #1 9255 003a 00F0AB80 beq .L600 4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9256 .loc 1 4347 5 discriminator 2 view .LVU3299 9257 003e 0123 movs r3, #1 9258 0040 84F84030 strb r3, [r4, #64] 4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9259 .loc 1 4347 5 view .LVU3300 4351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9260 .loc 1 4351 5 view .LVU3301 4351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9261 .loc 1 4351 13 is_stmt 0 view .LVU3302 9262 0044 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4351:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9263 .loc 1 4351 8 view .LVU3303 9264 0048 292B cmp r3, #41 9265 004a 3CD0 beq .L603 4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9266 .loc 1 4376 10 is_stmt 1 view .LVU3304 4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9267 .loc 1 4376 18 is_stmt 0 view .LVU3305 9268 004c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 4376:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9269 .loc 1 4376 13 view .LVU3306 9270 0050 2A2B cmp r3, #42 9271 0052 54D0 beq .L604 9272 .L593: 4401:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9273 .loc 1 4401 5 is_stmt 1 view .LVU3307 4403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9274 .loc 1 4403 5 view .LVU3308 4403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_SLAVE; 9275 .loc 1 4403 21 is_stmt 0 view .LVU3309 9276 0054 2A23 movs r3, #42 9277 0056 84F84130 strb r3, [r4, #65] 4404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9278 .loc 1 4404 5 is_stmt 1 view .LVU3310 4404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode = HAL_I2C_ERROR_NONE; 9279 .loc 1 4404 21 is_stmt 0 view .LVU3311 9280 005a 2023 movs r3, #32 9281 005c 84F84230 strb r3, [r4, #66] 4405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9282 .loc 1 4405 5 is_stmt 1 view .LVU3312 4405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9283 .loc 1 4405 21 is_stmt 0 view .LVU3313 9284 0060 0023 movs r3, #0 9285 0062 6364 str r3, [r4, #68] 4408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9286 .loc 1 4408 5 is_stmt 1 view .LVU3314 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 350 4408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9287 .loc 1 4408 9 is_stmt 0 view .LVU3315 9288 0064 2268 ldr r2, [r4] 4408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9289 .loc 1 4408 19 view .LVU3316 9290 0066 5368 ldr r3, [r2, #4] 4408:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9291 .loc 1 4408 25 view .LVU3317 9292 0068 23F40043 bic r3, r3, #32768 9293 006c 5360 str r3, [r2, #4] 4411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 9294 .loc 1 4411 5 is_stmt 1 view .LVU3318 4411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = Size; 9295 .loc 1 4411 23 is_stmt 0 view .LVU3319 9296 006e 6762 str r7, [r4, #36] 4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9297 .loc 1 4412 5 is_stmt 1 view .LVU3320 4412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize = hi2c->XferCount; 9298 .loc 1 4412 23 is_stmt 0 view .LVU3321 9299 0070 6685 strh r6, [r4, #42] @ movhi 4413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9300 .loc 1 4413 5 is_stmt 1 view .LVU3322 4413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9301 .loc 1 4413 29 is_stmt 0 view .LVU3323 9302 0072 638D ldrh r3, [r4, #42] 4413:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = XferOptions; 9303 .loc 1 4413 23 view .LVU3324 9304 0074 2385 strh r3, [r4, #40] @ movhi 4414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9305 .loc 1 4414 5 is_stmt 1 view .LVU3325 4414:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_DMA; 9306 .loc 1 4414 23 is_stmt 0 view .LVU3326 9307 0076 E562 str r5, [r4, #44] 4415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9308 .loc 1 4415 5 is_stmt 1 view .LVU3327 4415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9309 .loc 1 4415 23 is_stmt 0 view .LVU3328 9310 0078 474B ldr r3, .L605 9311 007a 6363 str r3, [r4, #52] 4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9312 .loc 1 4417 5 is_stmt 1 view .LVU3329 4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9313 .loc 1 4417 13 is_stmt 0 view .LVU3330 9314 007c E36B ldr r3, [r4, #60] 4417:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9315 .loc 1 4417 8 view .LVU3331 9316 007e 002B cmp r3, #0 9317 0080 54D0 beq .L594 4420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9318 .loc 1 4420 7 is_stmt 1 view .LVU3332 4420:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9319 .loc 1 4420 38 is_stmt 0 view .LVU3333 9320 0082 464A ldr r2, .L605+4 9321 0084 DA63 str r2, [r3, #60] 4423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9322 .loc 1 4423 7 is_stmt 1 view .LVU3334 4423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 351 9323 .loc 1 4423 11 is_stmt 0 view .LVU3335 9324 0086 E36B ldr r3, [r4, #60] 4423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9325 .loc 1 4423 39 view .LVU3336 9326 0088 454A ldr r2, .L605+8 9327 008a DA64 str r2, [r3, #76] 4426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9328 .loc 1 4426 7 is_stmt 1 view .LVU3337 4426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9329 .loc 1 4426 11 is_stmt 0 view .LVU3338 9330 008c E26B ldr r2, [r4, #60] 4426:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->hdmarx->XferAbortCallback = NULL; 9331 .loc 1 4426 42 view .LVU3339 9332 008e 0023 movs r3, #0 9333 0090 1364 str r3, [r2, #64] 4427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9334 .loc 1 4427 7 is_stmt 1 view .LVU3340 4427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9335 .loc 1 4427 11 is_stmt 0 view .LVU3341 9336 0092 E26B ldr r2, [r4, #60] 4427:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9337 .loc 1 4427 39 view .LVU3342 9338 0094 1365 str r3, [r2, #80] 4430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9339 .loc 1 4430 7 is_stmt 1 view .LVU3343 4430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9340 .loc 1 4430 69 is_stmt 0 view .LVU3344 9341 0096 2168 ldr r1, [r4] 4430:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (uint32_t)pData, hi2c->XferSize); 9342 .loc 1 4430 23 view .LVU3345 9343 0098 238D ldrh r3, [r4, #40] 9344 009a 3A46 mov r2, r7 9345 009c 2431 adds r1, r1, #36 9346 009e E06B ldr r0, [r4, #60] 9347 00a0 FFF7FEFF bl HAL_DMA_Start_IT 9348 .LVL661: 4448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9349 .loc 1 4448 5 is_stmt 1 view .LVU3346 4448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9350 .loc 1 4448 8 is_stmt 0 view .LVU3347 9351 00a4 0546 mov r5, r0 9352 .LVL662: 4448:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9353 .loc 1 4448 8 view .LVU3348 9354 00a6 0028 cmp r0, #0 9355 00a8 4ED0 beq .L595 4459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9356 .loc 1 4459 7 is_stmt 1 view .LVU3349 4459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9357 .loc 1 4459 23 is_stmt 0 view .LVU3350 9358 00aa 2823 movs r3, #40 9359 00ac 84F84130 strb r3, [r4, #65] 4460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9360 .loc 1 4460 7 is_stmt 1 view .LVU3351 4460:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9361 .loc 1 4460 23 is_stmt 0 view .LVU3352 9362 00b0 0022 movs r2, #0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 352 9363 00b2 84F84220 strb r2, [r4, #66] 4463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9364 .loc 1 4463 7 is_stmt 1 view .LVU3353 4463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9365 .loc 1 4463 11 is_stmt 0 view .LVU3354 9366 00b6 636C ldr r3, [r4, #68] 4463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9367 .loc 1 4463 23 view .LVU3355 9368 00b8 43F01003 orr r3, r3, #16 9369 00bc 6364 str r3, [r4, #68] 4466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9370 .loc 1 4466 7 is_stmt 1 view .LVU3356 4466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9371 .loc 1 4466 7 view .LVU3357 9372 00be 84F84020 strb r2, [r4, #64] 4466:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9373 .loc 1 4466 7 view .LVU3358 4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9374 .loc 1 4468 7 view .LVU3359 4468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9375 .loc 1 4468 14 is_stmt 0 view .LVU3360 9376 00c2 0125 movs r5, #1 9377 00c4 64E0 b .L590 9378 .LVL663: 9379 .L603: 4354:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9380 .loc 1 4354 7 is_stmt 1 view .LVU3361 9381 00c6 0121 movs r1, #1 9382 00c8 2046 mov r0, r4 9383 00ca FFF7FEFF bl I2C_Disable_IRQ 9384 .LVL664: 4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9385 .loc 1 4356 7 view .LVU3362 4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9386 .loc 1 4356 16 is_stmt 0 view .LVU3363 9387 00ce 2368 ldr r3, [r4] 4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9388 .loc 1 4356 26 view .LVU3364 9389 00d0 1A68 ldr r2, [r3] 4356:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9390 .loc 1 4356 10 view .LVU3365 9391 00d2 12F4804F tst r2, #16384 9392 00d6 BDD0 beq .L593 4359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9393 .loc 1 4359 9 is_stmt 1 view .LVU3366 4359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9394 .loc 1 4359 17 is_stmt 0 view .LVU3367 9395 00d8 A26B ldr r2, [r4, #56] 4359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9396 .loc 1 4359 12 view .LVU3368 9397 00da 002A cmp r2, #0 9398 00dc BAD0 beq .L593 4361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9399 .loc 1 4361 11 is_stmt 1 view .LVU3369 4361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9400 .loc 1 4361 25 is_stmt 0 view .LVU3370 9401 00de 1A68 ldr r2, [r3] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 353 4361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9402 .loc 1 4361 31 view .LVU3371 9403 00e0 22F48042 bic r2, r2, #16384 9404 00e4 1A60 str r2, [r3] 4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9405 .loc 1 4365 11 is_stmt 1 view .LVU3372 4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9406 .loc 1 4365 15 is_stmt 0 view .LVU3373 9407 00e6 A36B ldr r3, [r4, #56] 4365:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9408 .loc 1 4365 43 view .LVU3374 9409 00e8 2E4A ldr r2, .L605+12 9410 00ea 1A65 str r2, [r3, #80] 4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9411 .loc 1 4368 11 is_stmt 1 view .LVU3375 4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9412 .loc 1 4368 15 is_stmt 0 view .LVU3376 9413 00ec A06B ldr r0, [r4, #56] 9414 00ee FFF7FEFF bl HAL_DMA_Abort_IT 9415 .LVL665: 4368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9416 .loc 1 4368 14 discriminator 1 view .LVU3377 9417 00f2 0028 cmp r0, #0 9418 00f4 AED0 beq .L593 4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9419 .loc 1 4371 13 is_stmt 1 view .LVU3378 4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9420 .loc 1 4371 17 is_stmt 0 view .LVU3379 9421 00f6 A06B ldr r0, [r4, #56] 4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9422 .loc 1 4371 25 view .LVU3380 9423 00f8 036D ldr r3, [r0, #80] 4371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9424 .loc 1 4371 13 view .LVU3381 9425 00fa 9847 blx r3 9426 .LVL666: 9427 00fc AAE7 b .L593 9428 .L604: 4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9429 .loc 1 4378 7 is_stmt 1 view .LVU3382 4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9430 .loc 1 4378 16 is_stmt 0 view .LVU3383 9431 00fe 2368 ldr r3, [r4] 4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9432 .loc 1 4378 26 view .LVU3384 9433 0100 1A68 ldr r2, [r3] 4378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9434 .loc 1 4378 10 view .LVU3385 9435 0102 12F4004F tst r2, #32768 9436 0106 A5D0 beq .L593 4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9437 .loc 1 4380 9 is_stmt 1 view .LVU3386 4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9438 .loc 1 4380 23 is_stmt 0 view .LVU3387 9439 0108 1A68 ldr r2, [r3] 4380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9440 .loc 1 4380 29 view .LVU3388 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 354 9441 010a 22F40042 bic r2, r2, #32768 9442 010e 1A60 str r2, [r3] 4383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9443 .loc 1 4383 9 is_stmt 1 view .LVU3389 4383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9444 .loc 1 4383 17 is_stmt 0 view .LVU3390 9445 0110 E36B ldr r3, [r4, #60] 4383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9446 .loc 1 4383 12 view .LVU3391 9447 0112 002B cmp r3, #0 9448 0114 9ED0 beq .L593 4387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9449 .loc 1 4387 11 is_stmt 1 view .LVU3392 4387:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9450 .loc 1 4387 43 is_stmt 0 view .LVU3393 9451 0116 234A ldr r2, .L605+12 9452 0118 1A65 str r2, [r3, #80] 4390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9453 .loc 1 4390 11 is_stmt 1 view .LVU3394 4390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9454 .loc 1 4390 15 is_stmt 0 view .LVU3395 9455 011a E06B ldr r0, [r4, #60] 9456 011c FFF7FEFF bl HAL_DMA_Abort_IT 9457 .LVL667: 4390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9458 .loc 1 4390 14 discriminator 1 view .LVU3396 9459 0120 0028 cmp r0, #0 9460 0122 97D0 beq .L593 4393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9461 .loc 1 4393 13 is_stmt 1 view .LVU3397 4393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9462 .loc 1 4393 17 is_stmt 0 view .LVU3398 9463 0124 E06B ldr r0, [r4, #60] 4393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9464 .loc 1 4393 25 view .LVU3399 9465 0126 036D ldr r3, [r0, #80] 4393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9466 .loc 1 4393 13 view .LVU3400 9467 0128 9847 blx r3 9468 .LVL668: 9469 012a 93E7 b .L593 9470 .L594: 4436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9471 .loc 1 4436 7 is_stmt 1 view .LVU3401 4436:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9472 .loc 1 4436 23 is_stmt 0 view .LVU3402 9473 012c 2823 movs r3, #40 9474 012e 84F84130 strb r3, [r4, #65] 4437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9475 .loc 1 4437 7 is_stmt 1 view .LVU3403 4437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9476 .loc 1 4437 23 is_stmt 0 view .LVU3404 9477 0132 0022 movs r2, #0 9478 0134 84F84220 strb r2, [r4, #66] 4440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9479 .loc 1 4440 7 is_stmt 1 view .LVU3405 4440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 355 9480 .loc 1 4440 11 is_stmt 0 view .LVU3406 9481 0138 636C ldr r3, [r4, #68] 4440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9482 .loc 1 4440 23 view .LVU3407 9483 013a 43F08003 orr r3, r3, #128 9484 013e 6364 str r3, [r4, #68] 4443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9485 .loc 1 4443 7 is_stmt 1 view .LVU3408 4443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9486 .loc 1 4443 7 view .LVU3409 9487 0140 84F84020 strb r2, [r4, #64] 4443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9488 .loc 1 4443 7 view .LVU3410 4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9489 .loc 1 4445 7 view .LVU3411 4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9490 .loc 1 4445 14 is_stmt 0 view .LVU3412 9491 0144 0125 movs r5, #1 9492 .LVL669: 4445:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9493 .loc 1 4445 14 view .LVU3413 9494 0146 23E0 b .L590 9495 .LVL670: 9496 .L595: 4451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9497 .loc 1 4451 7 is_stmt 1 view .LVU3414 4451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9498 .loc 1 4451 11 is_stmt 0 view .LVU3415 9499 0148 638D ldrh r3, [r4, #42] 9500 014a 9BB2 uxth r3, r3 4451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9501 .loc 1 4451 30 view .LVU3416 9502 014c 228D ldrh r2, [r4, #40] 4451:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9503 .loc 1 4451 23 view .LVU3417 9504 014e 9B1A subs r3, r3, r2 9505 0150 9BB2 uxth r3, r3 9506 0152 6385 strh r3, [r4, #42] @ movhi 4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9507 .loc 1 4454 7 is_stmt 1 view .LVU3418 4454:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9508 .loc 1 4454 22 is_stmt 0 view .LVU3419 9509 0154 0023 movs r3, #0 9510 0156 2385 strh r3, [r4, #40] @ movhi 4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9511 .loc 1 4471 5 is_stmt 1 view .LVU3420 4471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if ((I2C_GET_DIR(hi2c) == I2C_DIRECTION_TRANSMIT) && (tmp != RESET)) 9512 .loc 1 4471 11 is_stmt 0 view .LVU3421 9513 0158 2268 ldr r2, [r4] 9514 015a 9369 ldr r3, [r2, #24] 9515 015c 03F00803 and r3, r3, #8 9516 .LVL671: 4472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9517 .loc 1 4472 5 is_stmt 1 view .LVU3422 4472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9518 .loc 1 4472 10 is_stmt 0 view .LVU3423 9519 0160 9169 ldr r1, [r2, #24] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 356 4472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9520 .loc 1 4472 8 view .LVU3424 9521 0162 11F4803F tst r1, #65536 9522 0166 0DD0 beq .L597 9523 .LVL672: 9524 .L598: 4480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9525 .loc 1 4480 5 is_stmt 1 view .LVU3425 4480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9526 .loc 1 4480 5 view .LVU3426 9527 0168 0023 movs r3, #0 9528 016a 84F84030 strb r3, [r4, #64] 4480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9529 .loc 1 4480 5 view .LVU3427 4483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9530 .loc 1 4483 5 view .LVU3428 4483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9531 .loc 1 4483 9 is_stmt 0 view .LVU3429 9532 016e 2268 ldr r2, [r4] 4483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9533 .loc 1 4483 19 view .LVU3430 9534 0170 1368 ldr r3, [r2] 4483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9535 .loc 1 4483 25 view .LVU3431 9536 0172 43F40043 orr r3, r3, #32768 9537 0176 1360 str r3, [r2] 4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9538 .loc 1 4489 5 is_stmt 1 view .LVU3432 9539 0178 48F20201 movw r1, #32770 9540 017c 2046 mov r0, r4 9541 .LVL673: 4489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9542 .loc 1 4489 5 is_stmt 0 view .LVU3433 9543 017e FFF7FEFF bl I2C_Enable_IRQ 9544 .LVL674: 4491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9545 .loc 1 4491 5 is_stmt 1 view .LVU3434 4491:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9546 .loc 1 4491 12 is_stmt 0 view .LVU3435 9547 0182 05E0 b .L590 9548 .LVL675: 9549 .L597: 4472:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9550 .loc 1 4472 55 discriminator 1 view .LVU3436 9551 0184 002B cmp r3, #0 9552 0186 EFD0 beq .L598 4476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9553 .loc 1 4476 7 is_stmt 1 view .LVU3437 9554 0188 0823 movs r3, #8 9555 .LVL676: 4476:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9556 .loc 1 4476 7 is_stmt 0 view .LVU3438 9557 018a D361 str r3, [r2, #28] 9558 018c ECE7 b .L598 9559 .LVL677: 9560 .L599: 4495:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 357 9561 .loc 1 4495 12 view .LVU3439 9562 018e 0125 movs r5, #1 9563 .LVL678: 9564 .L590: 4497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9565 .loc 1 4497 1 view .LVU3440 9566 0190 2846 mov r0, r5 9567 0192 F8BD pop {r3, r4, r5, r6, r7, pc} 9568 .LVL679: 9569 .L600: 4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9570 .loc 1 4347 5 discriminator 1 view .LVU3441 9571 0194 0225 movs r5, #2 9572 .LVL680: 4347:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9573 .loc 1 4347 5 discriminator 1 view .LVU3442 9574 0196 FBE7 b .L590 9575 .L606: 9576 .align 2 9577 .L605: 9578 0198 00000000 .word I2C_Slave_ISR_DMA 9579 019c 00000000 .word I2C_DMASlaveReceiveCplt 9580 01a0 00000000 .word I2C_DMAError 9581 01a4 00000000 .word I2C_DMAAbort 9582 .cfi_endproc 9583 .LFE365: 9585 .section .text.HAL_I2C_EnableListen_IT,"ax",%progbits 9586 .align 1 9587 .global HAL_I2C_EnableListen_IT 9588 .syntax unified 9589 .thumb 9590 .thumb_func 9592 HAL_I2C_EnableListen_IT: 9593 .LVL681: 9594 .LFB366: 4506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9595 .loc 1 4506 1 is_stmt 1 view -0 9596 .cfi_startproc 9597 @ args = 0, pretend = 0, frame = 0 9598 @ frame_needed = 0, uses_anonymous_args = 0 4506:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_READY) 9599 .loc 1 4506 1 is_stmt 0 view .LVU3444 9600 0000 08B5 push {r3, lr} 9601 .cfi_def_cfa_offset 8 9602 .cfi_offset 3, -8 9603 .cfi_offset 14, -4 4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9604 .loc 1 4507 3 is_stmt 1 view .LVU3445 4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9605 .loc 1 4507 11 is_stmt 0 view .LVU3446 9606 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9607 .loc 1 4507 6 view .LVU3447 9608 0006 202B cmp r3, #32 9609 0008 01D0 beq .L611 4519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9610 .loc 1 4519 12 view .LVU3448 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 358 9611 000a 0220 movs r0, #2 9612 .LVL682: 9613 .L608: 4521:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9614 .loc 1 4521 1 view .LVU3449 9615 000c 08BD pop {r3, pc} 9616 .LVL683: 9617 .L611: 4509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9618 .loc 1 4509 5 is_stmt 1 view .LVU3450 4509:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 9619 .loc 1 4509 17 is_stmt 0 view .LVU3451 9620 000e 2823 movs r3, #40 9621 0010 80F84130 strb r3, [r0, #65] 4510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9622 .loc 1 4510 5 is_stmt 1 view .LVU3452 4510:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9623 .loc 1 4510 19 is_stmt 0 view .LVU3453 9624 0014 034B ldr r3, .L612 9625 0016 4363 str r3, [r0, #52] 4513:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9626 .loc 1 4513 5 is_stmt 1 view .LVU3454 9627 0018 4FF40041 mov r1, #32768 9628 001c FFF7FEFF bl I2C_Enable_IRQ 9629 .LVL684: 4515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9630 .loc 1 4515 5 view .LVU3455 4515:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9631 .loc 1 4515 12 is_stmt 0 view .LVU3456 9632 0020 0020 movs r0, #0 9633 0022 F3E7 b .L608 9634 .L613: 9635 .align 2 9636 .L612: 9637 0024 00000000 .word I2C_Slave_ISR_IT 9638 .cfi_endproc 9639 .LFE366: 9641 .section .text.HAL_I2C_DisableListen_IT,"ax",%progbits 9642 .align 1 9643 .global HAL_I2C_DisableListen_IT 9644 .syntax unified 9645 .thumb 9646 .thumb_func 9648 HAL_I2C_DisableListen_IT: 9649 .LVL685: 9650 .LFB367: 4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9651 .loc 1 4530 1 is_stmt 1 view -0 9652 .cfi_startproc 9653 @ args = 0, pretend = 0, frame = 0 9654 @ frame_needed = 0, uses_anonymous_args = 0 4532:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9655 .loc 1 4532 3 view .LVU3458 4535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9656 .loc 1 4535 3 view .LVU3459 4535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9657 .loc 1 4535 11 is_stmt 0 view .LVU3460 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 359 9658 0000 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9659 .loc 1 4535 6 view .LVU3461 9660 0004 282B cmp r3, #40 9661 0006 01D0 beq .L621 4550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9662 .loc 1 4550 12 view .LVU3462 9663 0008 0220 movs r0, #2 9664 .LVL686: 4552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9665 .loc 1 4552 1 view .LVU3463 9666 000a 7047 bx lr 9667 .LVL687: 9668 .L621: 4530:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Declaration of tmp to prevent undefined behavior of volatile usage */ 9669 .loc 1 4530 1 view .LVU3464 9670 000c 10B5 push {r4, lr} 9671 .cfi_def_cfa_offset 8 9672 .cfi_offset 4, -8 9673 .cfi_offset 14, -4 4537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9674 .loc 1 4537 5 is_stmt 1 view .LVU3465 4537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = tmp | (uint32_t)(hi2c->Mode); 9675 .loc 1 4537 26 is_stmt 0 view .LVU3466 9676 000e 90F84120 ldrb r2, [r0, #65] @ zero_extendqisi2 9677 .LVL688: 4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9678 .loc 1 4538 5 is_stmt 1 view .LVU3467 4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9679 .loc 1 4538 48 is_stmt 0 view .LVU3468 9680 0012 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9681 .loc 1 4538 31 view .LVU3469 9682 0016 02F00302 and r2, r2, #3 9683 .LVL689: 4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9684 .loc 1 4538 31 view .LVU3470 9685 001a 1343 orrs r3, r3, r2 4538:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 9686 .loc 1 4538 25 view .LVU3471 9687 001c 0363 str r3, [r0, #48] 4539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9688 .loc 1 4539 5 is_stmt 1 view .LVU3472 4539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 9689 .loc 1 4539 17 is_stmt 0 view .LVU3473 9690 001e 2023 movs r3, #32 9691 0020 80F84130 strb r3, [r0, #65] 4540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9692 .loc 1 4540 5 is_stmt 1 view .LVU3474 4540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9693 .loc 1 4540 16 is_stmt 0 view .LVU3475 9694 0024 0024 movs r4, #0 9695 0026 80F84240 strb r4, [r0, #66] 4541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9696 .loc 1 4541 5 is_stmt 1 view .LVU3476 4541:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9697 .loc 1 4541 19 is_stmt 0 view .LVU3477 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 360 9698 002a 4463 str r4, [r0, #52] 4544:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9699 .loc 1 4544 5 is_stmt 1 view .LVU3478 9700 002c 4FF40041 mov r1, #32768 9701 0030 FFF7FEFF bl I2C_Disable_IRQ 9702 .LVL690: 4546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9703 .loc 1 4546 5 view .LVU3479 4546:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9704 .loc 1 4546 12 is_stmt 0 view .LVU3480 9705 0034 2046 mov r0, r4 4552:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9706 .loc 1 4552 1 view .LVU3481 9707 0036 10BD pop {r4, pc} 9708 .cfi_endproc 9709 .LFE367: 9711 .section .text.HAL_I2C_Master_Abort_IT,"ax",%progbits 9712 .align 1 9713 .global HAL_I2C_Master_Abort_IT 9714 .syntax unified 9715 .thumb 9716 .thumb_func 9718 HAL_I2C_Master_Abort_IT: 9719 .LVL691: 9720 .LFB368: 4563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 9721 .loc 1 4563 1 is_stmt 1 view -0 9722 .cfi_startproc 9723 @ args = 0, pretend = 0, frame = 0 9724 @ frame_needed = 0, uses_anonymous_args = 0 4564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9725 .loc 1 4564 3 view .LVU3483 4564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9726 .loc 1 4564 11 is_stmt 0 view .LVU3484 9727 0000 90F84230 ldrb r3, [r0, #66] @ zero_extendqisi2 4564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9728 .loc 1 4564 6 view .LVU3485 9729 0004 102B cmp r3, #16 9730 0006 34D1 bne .L626 4563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->Mode == HAL_I2C_MODE_MASTER) 9731 .loc 1 4563 1 view .LVU3486 9732 0008 30B5 push {r4, r5, lr} 9733 .cfi_def_cfa_offset 12 9734 .cfi_offset 4, -12 9735 .cfi_offset 5, -8 9736 .cfi_offset 14, -4 9737 000a 83B0 sub sp, sp, #12 9738 .cfi_def_cfa_offset 24 9739 000c 0446 mov r4, r0 9740 000e 0D46 mov r5, r1 4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9741 .loc 1 4567 5 is_stmt 1 view .LVU3487 4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9742 .loc 1 4567 5 view .LVU3488 9743 0010 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 9744 0014 012B cmp r3, #1 9745 0016 2ED0 beq .L627 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 361 4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9746 .loc 1 4567 5 discriminator 2 view .LVU3489 9747 0018 0123 movs r3, #1 9748 001a 80F84030 strb r3, [r0, #64] 4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9749 .loc 1 4567 5 view .LVU3490 4570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9750 .loc 1 4570 5 view .LVU3491 4570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9751 .loc 1 4570 13 is_stmt 0 view .LVU3492 9752 001e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4570:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9753 .loc 1 4570 8 view .LVU3493 9754 0022 212B cmp r3, #33 9755 0024 19D0 beq .L632 4575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9756 .loc 1 4575 10 is_stmt 1 view .LVU3494 4575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9757 .loc 1 4575 18 is_stmt 0 view .LVU3495 9758 0026 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 4575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9759 .loc 1 4575 13 view .LVU3496 9760 002a 222B cmp r3, #34 9761 002c 1BD0 beq .L633 9762 .LVL692: 9763 .L625: 4583:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9764 .loc 1 4583 5 is_stmt 1 view .LVU3497 4586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9765 .loc 1 4586 5 view .LVU3498 4586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9766 .loc 1 4586 17 is_stmt 0 view .LVU3499 9767 002e 6023 movs r3, #96 9768 0030 84F84130 strb r3, [r4, #65] 4590:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9769 .loc 1 4590 5 is_stmt 1 view .LVU3500 9770 0034 114B ldr r3, .L634 9771 0036 0093 str r3, [sp] 9772 0038 4FF00073 mov r3, #33554432 9773 003c 0122 movs r2, #1 9774 003e 2946 mov r1, r5 9775 0040 2046 mov r0, r4 9776 0042 FFF7FEFF bl I2C_TransferConfig 9777 .LVL693: 4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9778 .loc 1 4593 5 view .LVU3501 4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9779 .loc 1 4593 5 view .LVU3502 9780 0046 0025 movs r5, #0 9781 .LVL694: 4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9782 .loc 1 4593 5 is_stmt 0 view .LVU3503 9783 0048 84F84050 strb r5, [r4, #64] 4593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9784 .loc 1 4593 5 is_stmt 1 view .LVU3504 4598:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9785 .loc 1 4598 5 view .LVU3505 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 362 9786 004c 2021 movs r1, #32 9787 004e 2046 mov r0, r4 9788 0050 FFF7FEFF bl I2C_Enable_IRQ 9789 .LVL695: 4600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9790 .loc 1 4600 5 view .LVU3506 4600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9791 .loc 1 4600 12 is_stmt 0 view .LVU3507 9792 0054 2846 mov r0, r5 9793 .L623: 4608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9794 .loc 1 4608 1 view .LVU3508 9795 0056 03B0 add sp, sp, #12 9796 .cfi_remember_state 9797 .cfi_def_cfa_offset 12 9798 @ sp needed 9799 0058 30BD pop {r4, r5, pc} 9800 .LVL696: 9801 .L632: 9802 .cfi_restore_state 4572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9803 .loc 1 4572 7 is_stmt 1 view .LVU3509 9804 005a 0121 movs r1, #1 9805 .LVL697: 4572:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 9806 .loc 1 4572 7 is_stmt 0 view .LVU3510 9807 005c FFF7FEFF bl I2C_Disable_IRQ 9808 .LVL698: 4573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9809 .loc 1 4573 7 is_stmt 1 view .LVU3511 4573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9810 .loc 1 4573 27 is_stmt 0 view .LVU3512 9811 0060 1123 movs r3, #17 9812 0062 2363 str r3, [r4, #48] 9813 0064 E3E7 b .L625 9814 .LVL699: 9815 .L633: 4577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9816 .loc 1 4577 7 is_stmt 1 view .LVU3513 9817 0066 0221 movs r1, #2 9818 .LVL700: 4577:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9819 .loc 1 4577 7 is_stmt 0 view .LVU3514 9820 0068 FFF7FEFF bl I2C_Disable_IRQ 9821 .LVL701: 4578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9822 .loc 1 4578 7 is_stmt 1 view .LVU3515 4578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9823 .loc 1 4578 27 is_stmt 0 view .LVU3516 9824 006c 1223 movs r3, #18 9825 006e 2363 str r3, [r4, #48] 9826 0070 DDE7 b .L625 9827 .LVL702: 9828 .L626: 9829 .cfi_def_cfa_offset 0 9830 .cfi_restore 4 9831 .cfi_restore 5 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 363 9832 .cfi_restore 14 4606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9833 .loc 1 4606 12 view .LVU3517 9834 0072 0120 movs r0, #1 9835 .LVL703: 4608:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9836 .loc 1 4608 1 view .LVU3518 9837 0074 7047 bx lr 9838 .LVL704: 9839 .L627: 9840 .cfi_def_cfa_offset 24 9841 .cfi_offset 4, -12 9842 .cfi_offset 5, -8 9843 .cfi_offset 14, -4 4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9844 .loc 1 4567 5 discriminator 1 view .LVU3519 9845 0076 0220 movs r0, #2 9846 .LVL705: 4567:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9847 .loc 1 4567 5 discriminator 1 view .LVU3520 9848 0078 EDE7 b .L623 9849 .L635: 9850 007a 00BF .align 2 9851 .L634: 9852 007c 00400080 .word -2147467264 9853 .cfi_endproc 9854 .LFE368: 9856 .section .text.HAL_I2C_EV_IRQHandler,"ax",%progbits 9857 .align 1 9858 .global HAL_I2C_EV_IRQHandler 9859 .syntax unified 9860 .thumb 9861 .thumb_func 9863 HAL_I2C_EV_IRQHandler: 9864 .LVL706: 9865 .LFB369: 4625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 9866 .loc 1 4625 1 is_stmt 1 view -0 9867 .cfi_startproc 9868 @ args = 0, pretend = 0, frame = 0 9869 @ frame_needed = 0, uses_anonymous_args = 0 4625:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Get current IT Flags and IT sources value */ 9870 .loc 1 4625 1 is_stmt 0 view .LVU3522 9871 0000 08B5 push {r3, lr} 9872 .cfi_def_cfa_offset 8 9873 .cfi_offset 3, -8 9874 .cfi_offset 14, -4 4627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9875 .loc 1 4627 3 is_stmt 1 view .LVU3523 4627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9876 .loc 1 4627 24 is_stmt 0 view .LVU3524 9877 0002 0368 ldr r3, [r0] 4627:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 9878 .loc 1 4627 12 view .LVU3525 9879 0004 9969 ldr r1, [r3, #24] 9880 .LVL707: 4628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 364 9881 .loc 1 4628 3 is_stmt 1 view .LVU3526 4628:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9882 .loc 1 4628 12 is_stmt 0 view .LVU3527 9883 0006 1A68 ldr r2, [r3] 9884 .LVL708: 4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9885 .loc 1 4631 3 is_stmt 1 view .LVU3528 4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9886 .loc 1 4631 11 is_stmt 0 view .LVU3529 9887 0008 436B ldr r3, [r0, #52] 4631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9888 .loc 1 4631 6 view .LVU3530 9889 000a 03B1 cbz r3, .L636 4633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 9890 .loc 1 4633 5 is_stmt 1 view .LVU3531 9891 000c 9847 blx r3 9892 .LVL709: 9893 .L636: 4635:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9894 .loc 1 4635 1 is_stmt 0 view .LVU3532 9895 000e 08BD pop {r3, pc} 9896 .cfi_endproc 9897 .LFE369: 9899 .section .text.HAL_I2C_MasterTxCpltCallback,"ax",%progbits 9900 .align 1 9901 .weak HAL_I2C_MasterTxCpltCallback 9902 .syntax unified 9903 .thumb 9904 .thumb_func 9906 HAL_I2C_MasterTxCpltCallback: 9907 .LVL710: 9908 .LFB371: 4696:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9909 .loc 1 4696 1 is_stmt 1 view -0 9910 .cfi_startproc 9911 @ args = 0, pretend = 0, frame = 0 9912 @ frame_needed = 0, uses_anonymous_args = 0 9913 @ link register save eliminated. 4698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9914 .loc 1 4698 3 view .LVU3534 4703:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9915 .loc 1 4703 1 is_stmt 0 view .LVU3535 9916 0000 7047 bx lr 9917 .cfi_endproc 9918 .LFE371: 9920 .section .text.HAL_I2C_MasterRxCpltCallback,"ax",%progbits 9921 .align 1 9922 .weak HAL_I2C_MasterRxCpltCallback 9923 .syntax unified 9924 .thumb 9925 .thumb_func 9927 HAL_I2C_MasterRxCpltCallback: 9928 .LVL711: 9929 .LFB372: 4712:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 9930 .loc 1 4712 1 is_stmt 1 view -0 9931 .cfi_startproc ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 365 9932 @ args = 0, pretend = 0, frame = 0 9933 @ frame_needed = 0, uses_anonymous_args = 0 9934 @ link register save eliminated. 4714:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9935 .loc 1 4714 3 view .LVU3537 4719:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9936 .loc 1 4719 1 is_stmt 0 view .LVU3538 9937 0000 7047 bx lr 9938 .cfi_endproc 9939 .LFE372: 9941 .section .text.I2C_ITMasterSeqCplt,"ax",%progbits 9942 .align 1 9943 .syntax unified 9944 .thumb 9945 .thumb_func 9947 I2C_ITMasterSeqCplt: 9948 .LVL712: 9949 .LFB393: 5991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */ 9950 .loc 1 5991 1 is_stmt 1 view -0 9951 .cfi_startproc 9952 @ args = 0, pretend = 0, frame = 0 9953 @ frame_needed = 0, uses_anonymous_args = 0 5991:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset I2C handle mode */ 9954 .loc 1 5991 1 is_stmt 0 view .LVU3540 9955 0000 38B5 push {r3, r4, r5, lr} 9956 .cfi_def_cfa_offset 16 9957 .cfi_offset 3, -16 9958 .cfi_offset 4, -12 9959 .cfi_offset 5, -8 9960 .cfi_offset 14, -4 9961 0002 0446 mov r4, r0 5993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9962 .loc 1 5993 3 is_stmt 1 view .LVU3541 5993:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9963 .loc 1 5993 14 is_stmt 0 view .LVU3542 9964 0004 0023 movs r3, #0 9965 0006 80F84230 strb r3, [r0, #66] 5997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9966 .loc 1 5997 3 is_stmt 1 view .LVU3543 5997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9967 .loc 1 5997 11 is_stmt 0 view .LVU3544 9968 000a 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 5997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 9969 .loc 1 5997 6 view .LVU3545 9970 000e 212B cmp r3, #33 9971 0010 0FD0 beq .L645 6019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9972 .loc 1 6019 5 is_stmt 1 view .LVU3546 6019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 9973 .loc 1 6019 25 is_stmt 0 view .LVU3547 9974 0012 2023 movs r3, #32 9975 0014 80F84130 strb r3, [r0, #65] 6020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9976 .loc 1 6020 5 is_stmt 1 view .LVU3548 6020:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 9977 .loc 1 6020 25 is_stmt 0 view .LVU3549 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 366 9978 0018 1223 movs r3, #18 9979 001a 0363 str r3, [r0, #48] 6021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9980 .loc 1 6021 5 is_stmt 1 view .LVU3550 6021:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9981 .loc 1 6021 25 is_stmt 0 view .LVU3551 9982 001c 0025 movs r5, #0 9983 001e 4563 str r5, [r0, #52] 6024:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9984 .loc 1 6024 5 is_stmt 1 view .LVU3552 9985 0020 0221 movs r1, #2 9986 0022 FFF7FEFF bl I2C_Disable_IRQ 9987 .LVL713: 6027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9988 .loc 1 6027 5 view .LVU3553 6027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9989 .loc 1 6027 5 view .LVU3554 9990 0026 84F84050 strb r5, [r4, #64] 6027:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9991 .loc 1 6027 5 view .LVU3555 6033:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 9992 .loc 1 6033 5 view .LVU3556 9993 002a 2046 mov r0, r4 9994 002c FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 9995 .LVL714: 9996 .L641: 6036:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 9997 .loc 1 6036 1 is_stmt 0 view .LVU3557 9998 0030 38BD pop {r3, r4, r5, pc} 9999 .LVL715: 10000 .L645: 5999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10001 .loc 1 5999 5 is_stmt 1 view .LVU3558 5999:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 10002 .loc 1 5999 25 is_stmt 0 view .LVU3559 10003 0032 2023 movs r3, #32 10004 0034 80F84130 strb r3, [r0, #65] 6000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10005 .loc 1 6000 5 is_stmt 1 view .LVU3560 6000:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10006 .loc 1 6000 25 is_stmt 0 view .LVU3561 10007 0038 1123 movs r3, #17 10008 003a 0363 str r3, [r0, #48] 6001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10009 .loc 1 6001 5 is_stmt 1 view .LVU3562 6001:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10010 .loc 1 6001 25 is_stmt 0 view .LVU3563 10011 003c 0025 movs r5, #0 10012 003e 4563 str r5, [r0, #52] 6004:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10013 .loc 1 6004 5 is_stmt 1 view .LVU3564 10014 0040 0121 movs r1, #1 10015 0042 FFF7FEFF bl I2C_Disable_IRQ 10016 .LVL716: 6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10017 .loc 1 6007 5 view .LVU3565 6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 367 10018 .loc 1 6007 5 view .LVU3566 10019 0046 84F84050 strb r5, [r4, #64] 6007:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10020 .loc 1 6007 5 view .LVU3567 6013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10021 .loc 1 6013 5 view .LVU3568 10022 004a 2046 mov r0, r4 10023 004c FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 10024 .LVL717: 10025 0050 EEE7 b .L641 10026 .cfi_endproc 10027 .LFE393: 10029 .section .text.HAL_I2C_SlaveTxCpltCallback,"ax",%progbits 10030 .align 1 10031 .weak HAL_I2C_SlaveTxCpltCallback 10032 .syntax unified 10033 .thumb 10034 .thumb_func 10036 HAL_I2C_SlaveTxCpltCallback: 10037 .LVL718: 10038 .LFB373: 4727:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10039 .loc 1 4727 1 view -0 10040 .cfi_startproc 10041 @ args = 0, pretend = 0, frame = 0 10042 @ frame_needed = 0, uses_anonymous_args = 0 10043 @ link register save eliminated. 4729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10044 .loc 1 4729 3 view .LVU3570 4734:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10045 .loc 1 4734 1 is_stmt 0 view .LVU3571 10046 0000 7047 bx lr 10047 .cfi_endproc 10048 .LFE373: 10050 .section .text.HAL_I2C_SlaveRxCpltCallback,"ax",%progbits 10051 .align 1 10052 .weak HAL_I2C_SlaveRxCpltCallback 10053 .syntax unified 10054 .thumb 10055 .thumb_func 10057 HAL_I2C_SlaveRxCpltCallback: 10058 .LVL719: 10059 .LFB374: 4743:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10060 .loc 1 4743 1 is_stmt 1 view -0 10061 .cfi_startproc 10062 @ args = 0, pretend = 0, frame = 0 10063 @ frame_needed = 0, uses_anonymous_args = 0 10064 @ link register save eliminated. 4745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10065 .loc 1 4745 3 view .LVU3573 4750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10066 .loc 1 4750 1 is_stmt 0 view .LVU3574 10067 0000 7047 bx lr 10068 .cfi_endproc 10069 .LFE374: 10071 .section .text.I2C_ITSlaveSeqCplt,"ax",%progbits ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 368 10072 .align 1 10073 .syntax unified 10074 .thumb 10075 .thumb_func 10077 I2C_ITSlaveSeqCplt: 10078 .LVL720: 10079 .LFB394: 6044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10080 .loc 1 6044 1 is_stmt 1 view -0 10081 .cfi_startproc 10082 @ args = 0, pretend = 0, frame = 0 10083 @ frame_needed = 0, uses_anonymous_args = 0 6044:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 10084 .loc 1 6044 1 is_stmt 0 view .LVU3576 10085 0000 10B5 push {r4, lr} 10086 .cfi_def_cfa_offset 8 10087 .cfi_offset 4, -8 10088 .cfi_offset 14, -4 10089 0002 0446 mov r4, r0 6045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10090 .loc 1 6045 3 is_stmt 1 view .LVU3577 6045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10091 .loc 1 6045 26 is_stmt 0 view .LVU3578 10092 0004 0368 ldr r3, [r0] 6045:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10093 .loc 1 6045 12 view .LVU3579 10094 0006 1A68 ldr r2, [r3] 10095 .LVL721: 6048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10096 .loc 1 6048 3 is_stmt 1 view .LVU3580 6048:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10097 .loc 1 6048 14 is_stmt 0 view .LVU3581 10098 0008 0021 movs r1, #0 10099 000a 80F84210 strb r1, [r0, #66] 6051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10100 .loc 1 6051 3 is_stmt 1 view .LVU3582 6051:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10101 .loc 1 6051 6 is_stmt 0 view .LVU3583 10102 000e 12F4804F tst r2, #16384 10103 0012 0CD0 beq .L649 6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10104 .loc 1 6054 5 is_stmt 1 view .LVU3584 6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10105 .loc 1 6054 19 is_stmt 0 view .LVU3585 10106 0014 1A68 ldr r2, [r3] 10107 .LVL722: 6054:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10108 .loc 1 6054 25 view .LVU3586 10109 0016 22F48042 bic r2, r2, #16384 10110 001a 1A60 str r2, [r3] 10111 .L650: 6064:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10112 .loc 1 6064 3 is_stmt 1 view .LVU3587 6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10113 .loc 1 6066 3 view .LVU3588 6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10114 .loc 1 6066 11 is_stmt 0 view .LVU3589 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 369 10115 001c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10116 .loc 1 6066 6 view .LVU3590 10117 0020 292B cmp r3, #41 10118 0022 0CD0 beq .L654 6086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10119 .loc 1 6086 8 is_stmt 1 view .LVU3591 6086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10120 .loc 1 6086 16 is_stmt 0 view .LVU3592 10121 0024 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6086:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10122 .loc 1 6086 11 view .LVU3593 10123 0028 2A2B cmp r3, #42 10124 002a 18D0 beq .L655 10125 .LVL723: 10126 .L648: 6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10127 .loc 1 6109 1 view .LVU3594 10128 002c 10BD pop {r4, pc} 10129 .LVL724: 10130 .L649: 6056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10131 .loc 1 6056 8 is_stmt 1 view .LVU3595 6056:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10132 .loc 1 6056 11 is_stmt 0 view .LVU3596 10133 002e 12F4004F tst r2, #32768 10134 0032 F3D0 beq .L650 6059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10135 .loc 1 6059 5 is_stmt 1 view .LVU3597 6059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10136 .loc 1 6059 19 is_stmt 0 view .LVU3598 10137 0034 1A68 ldr r2, [r3] 10138 .LVL725: 6059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10139 .loc 1 6059 25 view .LVU3599 10140 0036 22F40042 bic r2, r2, #32768 10141 003a 1A60 str r2, [r3] 10142 003c EEE7 b .L650 10143 .L654: 6069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10144 .loc 1 6069 5 is_stmt 1 view .LVU3600 6069:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 10145 .loc 1 6069 25 is_stmt 0 view .LVU3601 10146 003e 2823 movs r3, #40 10147 0040 84F84130 strb r3, [r4, #65] 6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10148 .loc 1 6070 5 is_stmt 1 view .LVU3602 6070:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10149 .loc 1 6070 25 is_stmt 0 view .LVU3603 10150 0044 2123 movs r3, #33 10151 0046 2363 str r3, [r4, #48] 6073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10152 .loc 1 6073 5 is_stmt 1 view .LVU3604 10153 0048 0121 movs r1, #1 10154 004a 2046 mov r0, r4 10155 .LVL726: 6073:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 370 10156 .loc 1 6073 5 is_stmt 0 view .LVU3605 10157 004c FFF7FEFF bl I2C_Disable_IRQ 10158 .LVL727: 6076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10159 .loc 1 6076 5 is_stmt 1 view .LVU3606 6076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10160 .loc 1 6076 5 view .LVU3607 10161 0050 0023 movs r3, #0 10162 0052 84F84030 strb r3, [r4, #64] 6076:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10163 .loc 1 6076 5 view .LVU3608 6082:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10164 .loc 1 6082 5 view .LVU3609 10165 0056 2046 mov r0, r4 10166 0058 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 10167 .LVL728: 10168 005c E6E7 b .L648 10169 .LVL729: 10170 .L655: 6089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10171 .loc 1 6089 5 view .LVU3610 6089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 10172 .loc 1 6089 25 is_stmt 0 view .LVU3611 10173 005e 2823 movs r3, #40 10174 0060 84F84130 strb r3, [r4, #65] 6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10175 .loc 1 6090 5 is_stmt 1 view .LVU3612 6090:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10176 .loc 1 6090 25 is_stmt 0 view .LVU3613 10177 0064 2223 movs r3, #34 10178 0066 2363 str r3, [r4, #48] 6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10179 .loc 1 6093 5 is_stmt 1 view .LVU3614 10180 0068 0221 movs r1, #2 10181 006a 2046 mov r0, r4 10182 .LVL730: 6093:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10183 .loc 1 6093 5 is_stmt 0 view .LVU3615 10184 006c FFF7FEFF bl I2C_Disable_IRQ 10185 .LVL731: 6096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10186 .loc 1 6096 5 is_stmt 1 view .LVU3616 6096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10187 .loc 1 6096 5 view .LVU3617 10188 0070 0023 movs r3, #0 10189 0072 84F84030 strb r3, [r4, #64] 6096:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10190 .loc 1 6096 5 view .LVU3618 6102:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10191 .loc 1 6102 5 view .LVU3619 10192 0076 2046 mov r0, r4 10193 0078 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 10194 .LVL732: 6108:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10195 .loc 1 6108 3 view .LVU3620 6109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10196 .loc 1 6109 1 is_stmt 0 view .LVU3621 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 371 10197 007c D6E7 b .L648 10198 .cfi_endproc 10199 .LFE394: 10201 .section .text.I2C_DMASlaveTransmitCplt,"ax",%progbits 10202 .align 1 10203 .syntax unified 10204 .thumb 10205 .thumb_func 10207 I2C_DMASlaveTransmitCplt: 10208 .LVL733: 10209 .LFB402: 6769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10210 .loc 1 6769 1 is_stmt 1 view -0 10211 .cfi_startproc 10212 @ args = 0, pretend = 0, frame = 0 10213 @ frame_needed = 0, uses_anonymous_args = 0 6769:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10214 .loc 1 6769 1 is_stmt 0 view .LVU3623 10215 0000 08B5 push {r3, lr} 10216 .cfi_def_cfa_offset 8 10217 .cfi_offset 3, -8 10218 .cfi_offset 14, -4 6771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10219 .loc 1 6771 3 is_stmt 1 view .LVU3624 6771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10220 .loc 1 6771 22 is_stmt 0 view .LVU3625 10221 0002 806B ldr r0, [r0, #56] 10222 .LVL734: 6772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10223 .loc 1 6772 3 is_stmt 1 view .LVU3626 6772:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10224 .loc 1 6772 12 is_stmt 0 view .LVU3627 10225 0004 C36A ldr r3, [r0, #44] 10226 .LVL735: 6774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10227 .loc 1 6774 3 is_stmt 1 view .LVU3628 6774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10228 .loc 1 6774 6 is_stmt 0 view .LVU3629 10229 0006 002B cmp r3, #0 10230 0008 18BF it ne 10231 000a B3F1807F cmpne r3, #16777216 10232 000e 00D0 beq .L659 10233 .LVL736: 10234 .L656: 6789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10235 .loc 1 6789 1 view .LVU3630 10236 0010 08BD pop {r3, pc} 10237 .LVL737: 10238 .L659: 6777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10239 .loc 1 6777 5 is_stmt 1 view .LVU3631 6777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10240 .loc 1 6777 9 is_stmt 0 view .LVU3632 10241 0012 0268 ldr r2, [r0] 6777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10242 .loc 1 6777 19 view .LVU3633 10243 0014 1368 ldr r3, [r2] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 372 10244 .LVL738: 6777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10245 .loc 1 6777 25 view .LVU3634 10246 0016 23F48043 bic r3, r3, #16384 10247 001a 1360 str r3, [r2] 6781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10248 .loc 1 6781 5 is_stmt 1 view .LVU3635 10249 001c FFF7FEFF bl I2C_ITSlaveSeqCplt 10250 .LVL739: 6788:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10251 .loc 1 6788 3 view .LVU3636 6789:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10252 .loc 1 6789 1 is_stmt 0 view .LVU3637 10253 0020 F6E7 b .L656 10254 .cfi_endproc 10255 .LFE402: 10257 .section .text.I2C_DMASlaveReceiveCplt,"ax",%progbits 10258 .align 1 10259 .syntax unified 10260 .thumb 10261 .thumb_func 10263 I2C_DMASlaveReceiveCplt: 10264 .LVL740: 10265 .LFB404: 6849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10266 .loc 1 6849 1 is_stmt 1 view -0 10267 .cfi_startproc 10268 @ args = 0, pretend = 0, frame = 0 10269 @ frame_needed = 0, uses_anonymous_args = 0 6849:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 10270 .loc 1 6849 1 is_stmt 0 view .LVU3639 10271 0000 10B5 push {r4, lr} 10272 .cfi_def_cfa_offset 8 10273 .cfi_offset 4, -8 10274 .cfi_offset 14, -4 6851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10275 .loc 1 6851 3 is_stmt 1 view .LVU3640 6851:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 10276 .loc 1 6851 22 is_stmt 0 view .LVU3641 10277 0002 806B ldr r0, [r0, #56] 10278 .LVL741: 6852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10279 .loc 1 6852 3 is_stmt 1 view .LVU3642 6852:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10280 .loc 1 6852 12 is_stmt 0 view .LVU3643 10281 0004 C46A ldr r4, [r0, #44] 10282 .LVL742: 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10283 .loc 1 6854 3 is_stmt 1 view .LVU3644 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10284 .loc 1 6854 8 is_stmt 0 view .LVU3645 10285 0006 C36B ldr r3, [r0, #60] 10286 0008 1B68 ldr r3, [r3] 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10287 .loc 1 6854 46 view .LVU3646 10288 000a 2349 ldr r1, .L667 10289 000c 234A ldr r2, .L667+4 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 373 10290 000e 9342 cmp r3, r2 10291 0010 18BF it ne 10292 0012 8B42 cmpne r3, r1 10293 0014 2FD0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10294 .loc 1 6854 8 discriminator 2 view .LVU3647 10295 0016 1832 adds r2, r2, #24 10296 0018 9342 cmp r3, r2 10297 001a 2CD0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10298 .loc 1 6854 8 discriminator 4 view .LVU3648 10299 001c 1832 adds r2, r2, #24 10300 001e 9342 cmp r3, r2 10301 0020 29D0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10302 .loc 1 6854 8 discriminator 6 view .LVU3649 10303 0022 1832 adds r2, r2, #24 10304 0024 9342 cmp r3, r2 10305 0026 26D0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10306 .loc 1 6854 8 discriminator 8 view .LVU3650 10307 0028 1832 adds r2, r2, #24 10308 002a 9342 cmp r3, r2 10309 002c 23D0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10310 .loc 1 6854 8 discriminator 10 view .LVU3651 10311 002e 1832 adds r2, r2, #24 10312 0030 9342 cmp r3, r2 10313 0032 20D0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10314 .loc 1 6854 8 discriminator 12 view .LVU3652 10315 0034 1832 adds r2, r2, #24 10316 0036 9342 cmp r3, r2 10317 0038 1DD0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10318 .loc 1 6854 8 discriminator 14 view .LVU3653 10319 003a 02F55672 add r2, r2, #856 10320 003e 9342 cmp r3, r2 10321 0040 19D0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10322 .loc 1 6854 8 discriminator 16 view .LVU3654 10323 0042 1832 adds r2, r2, #24 10324 0044 9342 cmp r3, r2 10325 0046 16D0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10326 .loc 1 6854 8 discriminator 18 view .LVU3655 10327 0048 1832 adds r2, r2, #24 10328 004a 9342 cmp r3, r2 10329 004c 13D0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10330 .loc 1 6854 8 discriminator 20 view .LVU3656 10331 004e 1832 adds r2, r2, #24 10332 0050 9342 cmp r3, r2 10333 0052 10D0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10334 .loc 1 6854 8 discriminator 22 view .LVU3657 10335 0054 1832 adds r2, r2, #24 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 374 10336 0056 9342 cmp r3, r2 10337 0058 0DD0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10338 .loc 1 6854 8 discriminator 24 view .LVU3658 10339 005a 1832 adds r2, r2, #24 10340 005c 9342 cmp r3, r2 10341 005e 0AD0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10342 .loc 1 6854 8 discriminator 26 view .LVU3659 10343 0060 1832 adds r2, r2, #24 10344 0062 9342 cmp r3, r2 10345 0064 07D0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10346 .loc 1 6854 8 discriminator 28 view .LVU3660 10347 0066 1832 adds r2, r2, #24 10348 0068 9342 cmp r3, r2 10349 006a 04D0 beq .L661 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10350 .loc 1 6854 8 discriminator 30 view .LVU3661 10351 006c 5B68 ldr r3, [r3, #4] 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10352 .loc 1 6854 46 discriminator 30 view .LVU3662 10353 006e B3FA83F3 clz r3, r3 10354 0072 5B09 lsrs r3, r3, #5 10355 0074 03E0 b .L663 10356 .L661: 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10357 .loc 1 6854 8 discriminator 29 view .LVU3663 10358 0076 5B68 ldr r3, [r3, #4] 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10359 .loc 1 6854 46 discriminator 29 view .LVU3664 10360 0078 B3FA83F3 clz r3, r3 10361 007c 5B09 lsrs r3, r3, #5 10362 .L663: 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10363 .loc 1 6854 6 discriminator 32 view .LVU3665 10364 007e 13B1 cbz r3, .L660 6854:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 10365 .loc 1 6854 53 discriminator 33 view .LVU3666 10366 0080 14F5803F cmn r4, #65536 10367 0084 00D1 bne .L666 10368 .LVL743: 10369 .L660: 6869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10370 .loc 1 6869 1 view .LVU3667 10371 0086 10BD pop {r4, pc} 10372 .LVL744: 10373 .L666: 6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10374 .loc 1 6858 5 is_stmt 1 view .LVU3668 6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10375 .loc 1 6858 9 is_stmt 0 view .LVU3669 10376 0088 0268 ldr r2, [r0] 6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10377 .loc 1 6858 19 view .LVU3670 10378 008a 1368 ldr r3, [r2] 6858:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 375 10379 .loc 1 6858 25 view .LVU3671 10380 008c 23F40043 bic r3, r3, #32768 10381 0090 1360 str r3, [r2] 6861:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10382 .loc 1 6861 5 is_stmt 1 view .LVU3672 10383 0092 FFF7FEFF bl I2C_ITSlaveSeqCplt 10384 .LVL745: 6868:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10385 .loc 1 6868 3 view .LVU3673 6869:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10386 .loc 1 6869 1 is_stmt 0 view .LVU3674 10387 0096 F6E7 b .L660 10388 .L668: 10389 .align 2 10390 .L667: 10391 0098 10000240 .word 1073872912 10392 009c 28000240 .word 1073872936 10393 .cfi_endproc 10394 .LFE404: 10396 .section .text.HAL_I2C_AddrCallback,"ax",%progbits 10397 .align 1 10398 .weak HAL_I2C_AddrCallback 10399 .syntax unified 10400 .thumb 10401 .thumb_func 10403 HAL_I2C_AddrCallback: 10404 .LVL746: 10405 .LFB375: 4761:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10406 .loc 1 4761 1 is_stmt 1 view -0 10407 .cfi_startproc 10408 @ args = 0, pretend = 0, frame = 0 10409 @ frame_needed = 0, uses_anonymous_args = 0 10410 @ link register save eliminated. 4763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(TransferDirection); 10411 .loc 1 4763 3 view .LVU3676 4764:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(AddrMatchCode); 10412 .loc 1 4764 3 view .LVU3677 4765:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10413 .loc 1 4765 3 view .LVU3678 4770:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10414 .loc 1 4770 1 is_stmt 0 view .LVU3679 10415 0000 7047 bx lr 10416 .cfi_endproc 10417 .LFE375: 10419 .section .text.I2C_ITAddrCplt,"ax",%progbits 10420 .align 1 10421 .syntax unified 10422 .thumb 10423 .thumb_func 10425 I2C_ITAddrCplt: 10426 .LVL747: 10427 .LFB392: 5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection; 10428 .loc 1 5896 1 is_stmt 1 view -0 10429 .cfi_startproc 10430 @ args = 0, pretend = 0, frame = 0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 376 10431 @ frame_needed = 0, uses_anonymous_args = 0 5896:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint8_t transferdirection; 10432 .loc 1 5896 1 is_stmt 0 view .LVU3681 10433 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 10434 .cfi_def_cfa_offset 24 10435 .cfi_offset 3, -24 10436 .cfi_offset 4, -20 10437 .cfi_offset 5, -16 10438 .cfi_offset 6, -12 10439 .cfi_offset 7, -8 10440 .cfi_offset 14, -4 10441 0002 0446 mov r4, r0 5897:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t slaveaddrcode; 10442 .loc 1 5897 3 is_stmt 1 view .LVU3682 5898:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd1code; 10443 .loc 1 5898 3 view .LVU3683 5899:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t ownadd2code; 10444 .loc 1 5899 3 view .LVU3684 5900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10445 .loc 1 5900 3 view .LVU3685 5903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10446 .loc 1 5903 3 view .LVU3686 5906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10447 .loc 1 5906 3 view .LVU3687 5906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10448 .loc 1 5906 22 is_stmt 0 view .LVU3688 10449 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 5906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10450 .loc 1 5906 6 view .LVU3689 10451 0008 03F02803 and r3, r3, #40 10452 000c 282B cmp r3, #40 10453 000e 06D0 beq .L676 5978:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10454 .loc 1 5978 5 is_stmt 1 view .LVU3690 10455 0010 0368 ldr r3, [r0] 10456 0012 0822 movs r2, #8 10457 0014 DA61 str r2, [r3, #28] 5981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10458 .loc 1 5981 5 view .LVU3691 5981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10459 .loc 1 5981 5 view .LVU3692 10460 0016 0023 movs r3, #0 10461 0018 80F84030 strb r3, [r0, #64] 5981:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10462 .loc 1 5981 5 discriminator 1 view .LVU3693 10463 .LVL748: 10464 .L670: 5983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10465 .loc 1 5983 1 is_stmt 0 view .LVU3694 10466 001c F8BD pop {r3, r4, r5, r6, r7, pc} 10467 .LVL749: 10468 .L676: 5908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10469 .loc 1 5908 5 is_stmt 1 view .LVU3695 5908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10470 .loc 1 5908 25 is_stmt 0 view .LVU3696 10471 001e 0368 ldr r3, [r0] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 377 10472 0020 9E69 ldr r6, [r3, #24] 5908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** slaveaddrcode = I2C_GET_ADDR_MATCH(hi2c); 10473 .loc 1 5908 23 view .LVU3697 10474 0022 C6F30046 ubfx r6, r6, #16, #1 10475 .LVL750: 5909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10476 .loc 1 5909 5 is_stmt 1 view .LVU3698 5909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10477 .loc 1 5909 25 is_stmt 0 view .LVU3699 10478 0026 9A69 ldr r2, [r3, #24] 10479 0028 120C lsrs r2, r2, #16 5909:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd1code = I2C_GET_OWN_ADDRESS1(hi2c); 10480 .loc 1 5909 23 view .LVU3700 10481 002a 02F0FE05 and r5, r2, #254 10482 .LVL751: 5910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10483 .loc 1 5910 5 is_stmt 1 view .LVU3701 5910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10484 .loc 1 5910 25 is_stmt 0 view .LVU3702 10485 002e 9A68 ldr r2, [r3, #8] 5910:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ownadd2code = I2C_GET_OWN_ADDRESS2(hi2c); 10486 .loc 1 5910 23 view .LVU3703 10487 0030 C2F30902 ubfx r2, r2, #0, #10 10488 .LVL752: 5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10489 .loc 1 5911 5 is_stmt 1 view .LVU3704 5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10490 .loc 1 5911 25 is_stmt 0 view .LVU3705 10491 0034 DF68 ldr r7, [r3, #12] 5911:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10492 .loc 1 5911 23 view .LVU3706 10493 0036 07F0FE07 and r7, r7, #254 10494 .LVL753: 5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10495 .loc 1 5914 5 is_stmt 1 view .LVU3707 5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10496 .loc 1 5914 19 is_stmt 0 view .LVU3708 10497 003a C168 ldr r1, [r0, #12] 10498 .LVL754: 5914:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10499 .loc 1 5914 8 view .LVU3709 10500 003c 0229 cmp r1, #2 10501 003e 22D1 bne .L672 5916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10502 .loc 1 5916 7 is_stmt 1 view .LVU3710 5916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10503 .loc 1 5916 44 is_stmt 0 view .LVU3711 10504 0040 85EAD215 eor r5, r5, r2, lsr #7 10505 .LVL755: 5916:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10506 .loc 1 5916 10 view .LVU3712 10507 0044 15F0060F tst r5, #6 10508 0048 10D1 bne .L673 5918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->AddrEventCount++; 10509 .loc 1 5918 9 is_stmt 1 view .LVU3713 10510 .LVL756: 5919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 378 10511 .loc 1 5919 9 view .LVU3714 5919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10512 .loc 1 5919 13 is_stmt 0 view .LVU3715 10513 004a 816C ldr r1, [r0, #72] 5919:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->AddrEventCount == 2U) 10514 .loc 1 5919 29 view .LVU3716 10515 004c 0131 adds r1, r1, #1 10516 004e 8164 str r1, [r0, #72] 5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10517 .loc 1 5920 9 is_stmt 1 view .LVU3717 5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10518 .loc 1 5920 17 is_stmt 0 view .LVU3718 10519 0050 816C ldr r1, [r0, #72] 5920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10520 .loc 1 5920 12 view .LVU3719 10521 0052 0229 cmp r1, #2 10522 0054 E2D1 bne .L670 5923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10523 .loc 1 5923 11 is_stmt 1 view .LVU3720 5923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10524 .loc 1 5923 32 is_stmt 0 view .LVU3721 10525 0056 0021 movs r1, #0 10526 0058 8164 str r1, [r0, #72] 5926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10527 .loc 1 5926 11 is_stmt 1 view .LVU3722 10528 005a 0820 movs r0, #8 10529 .LVL757: 5926:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10530 .loc 1 5926 11 is_stmt 0 view .LVU3723 10531 005c D861 str r0, [r3, #28] 5929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10532 .loc 1 5929 11 is_stmt 1 view .LVU3724 5929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10533 .loc 1 5929 11 view .LVU3725 10534 005e 84F84010 strb r1, [r4, #64] 5929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10535 .loc 1 5929 11 view .LVU3726 5935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10536 .loc 1 5935 11 view .LVU3727 10537 0062 3146 mov r1, r6 10538 0064 2046 mov r0, r4 10539 0066 FFF7FEFF bl HAL_I2C_AddrCallback 10540 .LVL758: 5935:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10541 .loc 1 5935 11 is_stmt 0 view .LVU3728 10542 006a D7E7 b .L670 10543 .LVL759: 10544 .L673: 5941:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10545 .loc 1 5941 9 is_stmt 1 view .LVU3729 5944:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10546 .loc 1 5944 9 view .LVU3730 10547 006c 4FF40041 mov r1, #32768 10548 0070 FFF7FEFF bl I2C_Disable_IRQ 10549 .LVL760: 5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10550 .loc 1 5947 9 view .LVU3731 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 379 5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10551 .loc 1 5947 9 view .LVU3732 10552 0074 0023 movs r3, #0 10553 0076 84F84030 strb r3, [r4, #64] 5947:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10554 .loc 1 5947 9 view .LVU3733 5953:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10555 .loc 1 5953 9 view .LVU3734 10556 007a 3A46 mov r2, r7 10557 007c 3146 mov r1, r6 10558 007e 2046 mov r0, r4 10559 0080 FFF7FEFF bl HAL_I2C_AddrCallback 10560 .LVL761: 10561 0084 CAE7 b .L670 10562 .LVL762: 10563 .L672: 5961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10564 .loc 1 5961 7 view .LVU3735 10565 0086 4FF40041 mov r1, #32768 10566 008a FFF7FEFF bl I2C_Disable_IRQ 10567 .LVL763: 5964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10568 .loc 1 5964 7 view .LVU3736 5964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10569 .loc 1 5964 7 view .LVU3737 10570 008e 0023 movs r3, #0 10571 0090 84F84030 strb r3, [r4, #64] 5964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10572 .loc 1 5964 7 view .LVU3738 5970:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10573 .loc 1 5970 7 view .LVU3739 10574 0094 2A46 mov r2, r5 10575 0096 3146 mov r1, r6 10576 0098 2046 mov r0, r4 10577 009a FFF7FEFF bl HAL_I2C_AddrCallback 10578 .LVL764: 10579 009e BDE7 b .L670 10580 .cfi_endproc 10581 .LFE392: 10583 .section .text.HAL_I2C_ListenCpltCallback,"ax",%progbits 10584 .align 1 10585 .weak HAL_I2C_ListenCpltCallback 10586 .syntax unified 10587 .thumb 10588 .thumb_func 10590 HAL_I2C_ListenCpltCallback: 10591 .LVL765: 10592 .LFB376: 4779:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10593 .loc 1 4779 1 view -0 10594 .cfi_startproc 10595 @ args = 0, pretend = 0, frame = 0 10596 @ frame_needed = 0, uses_anonymous_args = 0 10597 @ link register save eliminated. 4781:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10598 .loc 1 4781 3 view .LVU3741 4786:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 380 10599 .loc 1 4786 1 is_stmt 0 view .LVU3742 10600 0000 7047 bx lr 10601 .cfi_endproc 10602 .LFE376: 10604 .section .text.I2C_ITListenCplt,"ax",%progbits 10605 .align 1 10606 .syntax unified 10607 .thumb 10608 .thumb_func 10610 I2C_ITListenCplt: 10611 .LVL766: 10612 .LFB397: 6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 10613 .loc 1 6477 1 is_stmt 1 view -0 10614 .cfi_startproc 10615 @ args = 0, pretend = 0, frame = 0 10616 @ frame_needed = 0, uses_anonymous_args = 0 6477:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Reset handle parameters */ 10617 .loc 1 6477 1 is_stmt 0 view .LVU3744 10618 0000 10B5 push {r4, lr} 10619 .cfi_def_cfa_offset 8 10620 .cfi_offset 4, -8 10621 .cfi_offset 14, -4 10622 0002 0446 mov r4, r0 6479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10623 .loc 1 6479 3 is_stmt 1 view .LVU3745 6479:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10624 .loc 1 6479 21 is_stmt 0 view .LVU3746 10625 0004 174B ldr r3, .L681 10626 0006 C362 str r3, [r0, #44] 6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10627 .loc 1 6480 3 is_stmt 1 view .LVU3747 6480:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 10628 .loc 1 6480 23 is_stmt 0 view .LVU3748 10629 0008 0023 movs r3, #0 10630 000a 0363 str r3, [r0, #48] 6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10631 .loc 1 6481 3 is_stmt 1 view .LVU3749 6481:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->Mode = HAL_I2C_MODE_NONE; 10632 .loc 1 6481 15 is_stmt 0 view .LVU3750 10633 000c 2022 movs r2, #32 10634 000e 80F84120 strb r2, [r0, #65] 6482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10635 .loc 1 6482 3 is_stmt 1 view .LVU3751 6482:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 10636 .loc 1 6482 14 is_stmt 0 view .LVU3752 10637 0012 80F84230 strb r3, [r0, #66] 6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10638 .loc 1 6483 3 is_stmt 1 view .LVU3753 6483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10639 .loc 1 6483 17 is_stmt 0 view .LVU3754 10640 0016 4363 str r3, [r0, #52] 6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10641 .loc 1 6486 3 is_stmt 1 view .LVU3755 6486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10642 .loc 1 6486 6 is_stmt 0 view .LVU3756 10643 0018 11F0040F tst r1, #4 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 381 10644 001c 13D0 beq .L679 6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10645 .loc 1 6489 5 is_stmt 1 view .LVU3757 6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10646 .loc 1 6489 36 is_stmt 0 view .LVU3758 10647 001e 0368 ldr r3, [r0] 6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10648 .loc 1 6489 46 view .LVU3759 10649 0020 5A6A ldr r2, [r3, #36] 6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10650 .loc 1 6489 10 view .LVU3760 10651 0022 436A ldr r3, [r0, #36] 6489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10652 .loc 1 6489 21 view .LVU3761 10653 0024 1A70 strb r2, [r3] 6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10654 .loc 1 6492 5 is_stmt 1 view .LVU3762 6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10655 .loc 1 6492 9 is_stmt 0 view .LVU3763 10656 0026 436A ldr r3, [r0, #36] 6492:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10657 .loc 1 6492 19 view .LVU3764 10658 0028 0133 adds r3, r3, #1 10659 002a 4362 str r3, [r0, #36] 6494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10660 .loc 1 6494 5 is_stmt 1 view .LVU3765 6494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10661 .loc 1 6494 14 is_stmt 0 view .LVU3766 10662 002c 038D ldrh r3, [r0, #40] 6494:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10663 .loc 1 6494 8 view .LVU3767 10664 002e 53B1 cbz r3, .L679 6496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 10665 .loc 1 6496 7 is_stmt 1 view .LVU3768 6496:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 10666 .loc 1 6496 21 is_stmt 0 view .LVU3769 10667 0030 013B subs r3, r3, #1 10668 0032 0385 strh r3, [r0, #40] @ movhi 6497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10669 .loc 1 6497 7 is_stmt 1 view .LVU3770 6497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10670 .loc 1 6497 11 is_stmt 0 view .LVU3771 10671 0034 438D ldrh r3, [r0, #42] 10672 0036 9BB2 uxth r3, r3 6497:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10673 .loc 1 6497 22 view .LVU3772 10674 0038 013B subs r3, r3, #1 10675 003a 9BB2 uxth r3, r3 10676 003c 4385 strh r3, [r0, #42] @ movhi 6500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10677 .loc 1 6500 7 is_stmt 1 view .LVU3773 6500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10678 .loc 1 6500 11 is_stmt 0 view .LVU3774 10679 003e 436C ldr r3, [r0, #68] 6500:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10680 .loc 1 6500 23 view .LVU3775 10681 0040 43F00403 orr r3, r3, #4 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 382 10682 0044 4364 str r3, [r0, #68] 10683 .L679: 6505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10684 .loc 1 6505 3 is_stmt 1 view .LVU3776 10685 0046 48F20301 movw r1, #32771 10686 .LVL767: 6505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10687 .loc 1 6505 3 is_stmt 0 view .LVU3777 10688 004a 2046 mov r0, r4 10689 .LVL768: 6505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10690 .loc 1 6505 3 view .LVU3778 10691 004c FFF7FEFF bl I2C_Disable_IRQ 10692 .LVL769: 6508:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10693 .loc 1 6508 3 is_stmt 1 view .LVU3779 10694 0050 2368 ldr r3, [r4] 10695 0052 1022 movs r2, #16 10696 0054 DA61 str r2, [r3, #28] 6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10697 .loc 1 6511 3 view .LVU3780 6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10698 .loc 1 6511 3 view .LVU3781 10699 0056 0023 movs r3, #0 10700 0058 84F84030 strb r3, [r4, #64] 6511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10701 .loc 1 6511 3 view .LVU3782 6517:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10702 .loc 1 6517 3 view .LVU3783 10703 005c 2046 mov r0, r4 10704 005e FFF7FEFF bl HAL_I2C_ListenCpltCallback 10705 .LVL770: 6519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10706 .loc 1 6519 1 is_stmt 0 view .LVU3784 10707 0062 10BD pop {r4, pc} 10708 .LVL771: 10709 .L682: 6519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10710 .loc 1 6519 1 view .LVU3785 10711 .align 2 10712 .L681: 10713 0064 0000FFFF .word -65536 10714 .cfi_endproc 10715 .LFE397: 10717 .section .text.HAL_I2C_MemTxCpltCallback,"ax",%progbits 10718 .align 1 10719 .weak HAL_I2C_MemTxCpltCallback 10720 .syntax unified 10721 .thumb 10722 .thumb_func 10724 HAL_I2C_MemTxCpltCallback: 10725 .LVL772: 10726 .LFB377: 4795:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10727 .loc 1 4795 1 is_stmt 1 view -0 10728 .cfi_startproc 10729 @ args = 0, pretend = 0, frame = 0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 383 10730 @ frame_needed = 0, uses_anonymous_args = 0 10731 @ link register save eliminated. 4797:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10732 .loc 1 4797 3 view .LVU3787 4802:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10733 .loc 1 4802 1 is_stmt 0 view .LVU3788 10734 0000 7047 bx lr 10735 .cfi_endproc 10736 .LFE377: 10738 .section .text.HAL_I2C_MemRxCpltCallback,"ax",%progbits 10739 .align 1 10740 .weak HAL_I2C_MemRxCpltCallback 10741 .syntax unified 10742 .thumb 10743 .thumb_func 10745 HAL_I2C_MemRxCpltCallback: 10746 .LVL773: 10747 .LFB378: 4811:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10748 .loc 1 4811 1 is_stmt 1 view -0 10749 .cfi_startproc 10750 @ args = 0, pretend = 0, frame = 0 10751 @ frame_needed = 0, uses_anonymous_args = 0 10752 @ link register save eliminated. 4813:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10753 .loc 1 4813 3 view .LVU3790 4818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10754 .loc 1 4818 1 is_stmt 0 view .LVU3791 10755 0000 7047 bx lr 10756 .cfi_endproc 10757 .LFE378: 10759 .section .text.HAL_I2C_ErrorCallback,"ax",%progbits 10760 .align 1 10761 .weak HAL_I2C_ErrorCallback 10762 .syntax unified 10763 .thumb 10764 .thumb_func 10766 HAL_I2C_ErrorCallback: 10767 .LVL774: 10768 .LFB379: 4827:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10769 .loc 1 4827 1 is_stmt 1 view -0 10770 .cfi_startproc 10771 @ args = 0, pretend = 0, frame = 0 10772 @ frame_needed = 0, uses_anonymous_args = 0 10773 @ link register save eliminated. 4829:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10774 .loc 1 4829 3 view .LVU3793 4834:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10775 .loc 1 4834 1 is_stmt 0 view .LVU3794 10776 0000 7047 bx lr 10777 .cfi_endproc 10778 .LFE379: 10780 .section .text.HAL_I2C_AbortCpltCallback,"ax",%progbits 10781 .align 1 10782 .weak HAL_I2C_AbortCpltCallback 10783 .syntax unified ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 384 10784 .thumb 10785 .thumb_func 10787 HAL_I2C_AbortCpltCallback: 10788 .LVL775: 10789 .LFB380: 4843:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Prevent unused argument(s) compilation warning */ 10790 .loc 1 4843 1 is_stmt 1 view -0 10791 .cfi_startproc 10792 @ args = 0, pretend = 0, frame = 0 10793 @ frame_needed = 0, uses_anonymous_args = 0 10794 @ link register save eliminated. 4845:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10795 .loc 1 4845 3 view .LVU3796 4850:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10796 .loc 1 4850 1 is_stmt 0 view .LVU3797 10797 0000 7047 bx lr 10798 .cfi_endproc 10799 .LFE380: 10801 .section .text.I2C_TreatErrorCallback,"ax",%progbits 10802 .align 1 10803 .syntax unified 10804 .thumb 10805 .thumb_func 10807 I2C_TreatErrorCallback: 10808 .LVL776: 10809 .LFB399: 6659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10810 .loc 1 6659 1 is_stmt 1 view -0 10811 .cfi_startproc 10812 @ args = 0, pretend = 0, frame = 0 10813 @ frame_needed = 0, uses_anonymous_args = 0 6659:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->State == HAL_I2C_STATE_ABORT) 10814 .loc 1 6659 1 is_stmt 0 view .LVU3799 10815 0000 08B5 push {r3, lr} 10816 .cfi_def_cfa_offset 8 10817 .cfi_offset 3, -8 10818 .cfi_offset 14, -4 6660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10819 .loc 1 6660 3 is_stmt 1 view .LVU3800 6660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10820 .loc 1 6660 11 is_stmt 0 view .LVU3801 10821 0002 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10822 .loc 1 6660 6 view .LVU3802 10823 0006 602B cmp r3, #96 10824 0008 06D0 beq .L691 6677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10825 .loc 1 6677 5 is_stmt 1 view .LVU3803 6677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10826 .loc 1 6677 25 is_stmt 0 view .LVU3804 10827 000a 0023 movs r3, #0 10828 000c 0363 str r3, [r0, #48] 6680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10829 .loc 1 6680 5 is_stmt 1 view .LVU3805 6680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10830 .loc 1 6680 5 view .LVU3806 10831 000e 80F84030 strb r3, [r0, #64] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 385 6680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10832 .loc 1 6680 5 view .LVU3807 6686:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10833 .loc 1 6686 5 view .LVU3808 10834 0012 FFF7FEFF bl HAL_I2C_ErrorCallback 10835 .LVL777: 10836 .L687: 6689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10837 .loc 1 6689 1 is_stmt 0 view .LVU3809 10838 0016 08BD pop {r3, pc} 10839 .LVL778: 10840 .L691: 6662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10841 .loc 1 6662 5 is_stmt 1 view .LVU3810 6662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 10842 .loc 1 6662 17 is_stmt 0 view .LVU3811 10843 0018 2023 movs r3, #32 10844 001a 80F84130 strb r3, [r0, #65] 6663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10845 .loc 1 6663 5 is_stmt 1 view .LVU3812 6663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10846 .loc 1 6663 25 is_stmt 0 view .LVU3813 10847 001e 0023 movs r3, #0 10848 0020 0363 str r3, [r0, #48] 6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10849 .loc 1 6666 5 is_stmt 1 view .LVU3814 6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10850 .loc 1 6666 5 view .LVU3815 10851 0022 80F84030 strb r3, [r0, #64] 6666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10852 .loc 1 6666 5 view .LVU3816 6672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10853 .loc 1 6672 5 view .LVU3817 10854 0026 FFF7FEFF bl HAL_I2C_AbortCpltCallback 10855 .LVL779: 6672:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 10856 .loc 1 6672 5 is_stmt 0 view .LVU3818 10857 002a F4E7 b .L687 10858 .cfi_endproc 10859 .LFE399: 10861 .section .text.I2C_ITError,"ax",%progbits 10862 .align 1 10863 .syntax unified 10864 .thumb 10865 .thumb_func 10867 I2C_ITError: 10868 .LVL780: 10869 .LFB398: 6528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10870 .loc 1 6528 1 is_stmt 1 view -0 10871 .cfi_startproc 10872 @ args = 0, pretend = 0, frame = 0 10873 @ frame_needed = 0, uses_anonymous_args = 0 6528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 10874 .loc 1 6528 1 is_stmt 0 view .LVU3820 10875 0000 10B5 push {r4, lr} 10876 .cfi_def_cfa_offset 8 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 386 10877 .cfi_offset 4, -8 10878 .cfi_offset 14, -4 10879 0002 0446 mov r4, r0 6529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10880 .loc 1 6529 3 is_stmt 1 view .LVU3821 6529:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10881 .loc 1 6529 24 is_stmt 0 view .LVU3822 10882 0004 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 10883 .LVL781: 6531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10884 .loc 1 6531 3 is_stmt 1 view .LVU3823 6534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10885 .loc 1 6534 3 view .LVU3824 6534:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 10886 .loc 1 6534 23 is_stmt 0 view .LVU3825 10887 0008 0022 movs r2, #0 10888 000a 80F84220 strb r2, [r0, #66] 6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U; 10889 .loc 1 6535 3 is_stmt 1 view .LVU3826 6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U; 10890 .loc 1 6535 23 is_stmt 0 view .LVU3827 10891 000e 4548 ldr r0, .L705 10892 .LVL782: 6535:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount = 0U; 10893 .loc 1 6535 23 view .LVU3828 10894 0010 E062 str r0, [r4, #44] 6536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10895 .loc 1 6536 3 is_stmt 1 view .LVU3829 6536:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10896 .loc 1 6536 23 is_stmt 0 view .LVU3830 10897 0012 6285 strh r2, [r4, #42] @ movhi 6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10898 .loc 1 6539 3 is_stmt 1 view .LVU3831 6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10899 .loc 1 6539 7 is_stmt 0 view .LVU3832 10900 0014 626C ldr r2, [r4, #68] 6539:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10901 .loc 1 6539 19 view .LVU3833 10902 0016 0A43 orrs r2, r2, r1 10903 0018 6264 str r2, [r4, #68] 6542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 10904 .loc 1 6542 3 is_stmt 1 view .LVU3834 6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 10905 .loc 1 6543 50 is_stmt 0 view .LVU3835 10906 001a 283B subs r3, r3, #40 10907 .LVL783: 6543:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_RX_LISTEN)) 10908 .loc 1 6543 50 view .LVU3836 10909 001c DBB2 uxtb r3, r3 10910 .LVL784: 6542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpstate == HAL_I2C_STATE_BUSY_TX_LISTEN) || 10911 .loc 1 6542 6 view .LVU3837 10912 001e 022B cmp r3, #2 10913 0020 2DD8 bhi .L693 6547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10914 .loc 1 6547 5 is_stmt 1 view .LVU3838 10915 0022 0321 movs r1, #3 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 387 10916 .LVL785: 6547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10917 .loc 1 6547 5 is_stmt 0 view .LVU3839 10918 0024 2046 mov r0, r4 10919 0026 FFF7FEFF bl I2C_Disable_IRQ 10920 .LVL786: 6550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10921 .loc 1 6550 5 is_stmt 1 view .LVU3840 6550:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = I2C_Slave_ISR_IT; 10922 .loc 1 6550 25 is_stmt 0 view .LVU3841 10923 002a 2823 movs r3, #40 10924 002c 84F84130 strb r3, [r4, #65] 6551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10925 .loc 1 6551 5 is_stmt 1 view .LVU3842 6551:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10926 .loc 1 6551 25 is_stmt 0 view .LVU3843 10927 0030 3D4B ldr r3, .L705+4 10928 0032 6363 str r3, [r4, #52] 10929 .L694: 6586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10930 .loc 1 6586 3 is_stmt 1 view .LVU3844 6586:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10931 .loc 1 6586 20 is_stmt 0 view .LVU3845 10932 0034 236B ldr r3, [r4, #48] 10933 .LVL787: 6588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10934 .loc 1 6588 3 is_stmt 1 view .LVU3846 6588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10935 .loc 1 6588 12 is_stmt 0 view .LVU3847 10936 0036 A26B ldr r2, [r4, #56] 6588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10937 .loc 1 6588 6 view .LVU3848 10938 0038 002A cmp r2, #0 10939 003a 48D0 beq .L697 6588:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_TX))) 10940 .loc 1 6588 30 discriminator 1 view .LVU3849 10941 003c 212B cmp r3, #33 10942 003e 18BF it ne 10943 0040 112B cmpne r3, #17 10944 0042 44D1 bne .L697 6591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10945 .loc 1 6591 5 is_stmt 1 view .LVU3850 6591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10946 .loc 1 6591 14 is_stmt 0 view .LVU3851 10947 0044 2368 ldr r3, [r4] 10948 .LVL788: 6591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10949 .loc 1 6591 24 view .LVU3852 10950 0046 1A68 ldr r2, [r3] 6591:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10951 .loc 1 6591 8 view .LVU3853 10952 0048 12F4804F tst r2, #16384 10953 004c 03D0 beq .L698 6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10954 .loc 1 6593 7 is_stmt 1 view .LVU3854 6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10955 .loc 1 6593 21 is_stmt 0 view .LVU3855 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 388 10956 004e 1A68 ldr r2, [r3] 6593:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10957 .loc 1 6593 27 view .LVU3856 10958 0050 22F48042 bic r2, r2, #16384 10959 0054 1A60 str r2, [r3] 10960 .L698: 6596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10961 .loc 1 6596 5 is_stmt 1 view .LVU3857 6596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10962 .loc 1 6596 9 is_stmt 0 view .LVU3858 10963 0056 A06B ldr r0, [r4, #56] 10964 0058 FFF7FEFF bl HAL_DMA_GetState 10965 .LVL789: 6596:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10966 .loc 1 6596 8 discriminator 1 view .LVU3859 10967 005c 0128 cmp r0, #1 10968 005e 32D0 beq .L699 6600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10969 .loc 1 6600 7 is_stmt 1 view .LVU3860 6600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10970 .loc 1 6600 11 is_stmt 0 view .LVU3861 10971 0060 A36B ldr r3, [r4, #56] 6600:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10972 .loc 1 6600 39 view .LVU3862 10973 0062 324A ldr r2, .L705+8 10974 0064 1A65 str r2, [r3, #80] 6603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10975 .loc 1 6603 7 is_stmt 1 view .LVU3863 6603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10976 .loc 1 6603 7 view .LVU3864 10977 0066 0023 movs r3, #0 10978 0068 84F84030 strb r3, [r4, #64] 6603:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10979 .loc 1 6603 7 view .LVU3865 6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10980 .loc 1 6606 7 view .LVU3866 6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10981 .loc 1 6606 11 is_stmt 0 view .LVU3867 10982 006c A06B ldr r0, [r4, #56] 10983 006e FFF7FEFF bl HAL_DMA_Abort_IT 10984 .LVL790: 6606:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 10985 .loc 1 6606 10 discriminator 1 view .LVU3868 10986 0072 0028 cmp r0, #0 10987 0074 54D0 beq .L692 6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10988 .loc 1 6609 9 is_stmt 1 view .LVU3869 6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10989 .loc 1 6609 13 is_stmt 0 view .LVU3870 10990 0076 A06B ldr r0, [r4, #56] 6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10991 .loc 1 6609 21 view .LVU3871 10992 0078 036D ldr r3, [r0, #80] 6609:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 10993 .loc 1 6609 9 view .LVU3872 10994 007a 9847 blx r3 10995 .LVL791: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 389 10996 007c 50E0 b .L692 10997 .LVL792: 10998 .L693: 6556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 10999 .loc 1 6556 5 is_stmt 1 view .LVU3873 11000 007e 48F20301 movw r1, #32771 11001 .LVL793: 6556:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11002 .loc 1 6556 5 is_stmt 0 view .LVU3874 11003 0082 2046 mov r0, r4 11004 0084 FFF7FEFF bl I2C_Disable_IRQ 11005 .LVL794: 6559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11006 .loc 1 6559 5 is_stmt 1 view .LVU3875 11007 0088 2046 mov r0, r4 11008 008a FFF7FEFF bl I2C_Flush_TXDR 11009 .LVL795: 6563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11010 .loc 1 6563 5 view .LVU3876 6563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11011 .loc 1 6563 13 is_stmt 0 view .LVU3877 11012 008e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6563:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11013 .loc 1 6563 8 view .LVU3878 11014 0092 602B cmp r3, #96 11015 0094 14D0 beq .L695 6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11016 .loc 1 6566 7 is_stmt 1 view .LVU3879 6566:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11017 .loc 1 6566 27 is_stmt 0 view .LVU3880 11018 0096 2023 movs r3, #32 11019 0098 84F84130 strb r3, [r4, #65] 6569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11020 .loc 1 6569 7 is_stmt 1 view .LVU3881 6569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11021 .loc 1 6569 11 is_stmt 0 view .LVU3882 11022 009c 2368 ldr r3, [r4] 11023 009e 9A69 ldr r2, [r3, #24] 6569:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11024 .loc 1 6569 10 view .LVU3883 11025 00a0 12F0200F tst r2, #32 11026 00a4 0CD0 beq .L695 6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11027 .loc 1 6571 9 is_stmt 1 view .LVU3884 6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11028 .loc 1 6571 13 is_stmt 0 view .LVU3885 11029 00a6 9A69 ldr r2, [r3, #24] 6571:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11030 .loc 1 6571 12 view .LVU3886 11031 00a8 12F0100F tst r2, #16 11032 00ac 05D0 beq .L696 6573:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->ErrorCode |= HAL_I2C_ERROR_AF; 11033 .loc 1 6573 11 is_stmt 1 view .LVU3887 11034 00ae 1022 movs r2, #16 11035 00b0 DA61 str r2, [r3, #28] 6574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11036 .loc 1 6574 11 view .LVU3888 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 390 6574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11037 .loc 1 6574 15 is_stmt 0 view .LVU3889 11038 00b2 636C ldr r3, [r4, #68] 6574:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11039 .loc 1 6574 27 view .LVU3890 11040 00b4 43F00403 orr r3, r3, #4 11041 00b8 6364 str r3, [r4, #68] 11042 .L696: 6578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11043 .loc 1 6578 9 is_stmt 1 view .LVU3891 11044 00ba 2368 ldr r3, [r4] 11045 00bc 2022 movs r2, #32 11046 00be DA61 str r2, [r3, #28] 11047 .L695: 6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11048 .loc 1 6582 5 view .LVU3892 6582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11049 .loc 1 6582 25 is_stmt 0 view .LVU3893 11050 00c0 0023 movs r3, #0 11051 00c2 6363 str r3, [r4, #52] 11052 00c4 B6E7 b .L694 11053 .LVL796: 11054 .L699: 6614:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11055 .loc 1 6614 7 is_stmt 1 view .LVU3894 11056 00c6 2046 mov r0, r4 11057 00c8 FFF7FEFF bl I2C_TreatErrorCallback 11058 .LVL797: 11059 00cc 28E0 b .L692 11060 .LVL798: 11061 .L697: 6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11062 .loc 1 6618 8 view .LVU3895 6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11063 .loc 1 6618 17 is_stmt 0 view .LVU3896 11064 00ce E26B ldr r2, [r4, #60] 6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11065 .loc 1 6618 11 view .LVU3897 11066 00d0 1AB3 cbz r2, .L701 6618:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmppreviousstate == I2C_STATE_SLAVE_BUSY_RX))) 11067 .loc 1 6618 35 discriminator 1 view .LVU3898 11068 00d2 222B cmp r3, #34 11069 00d4 18BF it ne 11070 00d6 122B cmpne r3, #18 11071 00d8 1FD1 bne .L701 6621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11072 .loc 1 6621 5 is_stmt 1 view .LVU3899 6621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11073 .loc 1 6621 14 is_stmt 0 view .LVU3900 11074 00da 2368 ldr r3, [r4] 11075 .LVL799: 6621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11076 .loc 1 6621 24 view .LVU3901 11077 00dc 1A68 ldr r2, [r3] 6621:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11078 .loc 1 6621 8 view .LVU3902 11079 00de 12F4004F tst r2, #32768 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 391 11080 00e2 03D0 beq .L702 6623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11081 .loc 1 6623 7 is_stmt 1 view .LVU3903 6623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11082 .loc 1 6623 21 is_stmt 0 view .LVU3904 11083 00e4 1A68 ldr r2, [r3] 6623:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11084 .loc 1 6623 27 view .LVU3905 11085 00e6 22F40042 bic r2, r2, #32768 11086 00ea 1A60 str r2, [r3] 11087 .L702: 6626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11088 .loc 1 6626 5 is_stmt 1 view .LVU3906 6626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11089 .loc 1 6626 9 is_stmt 0 view .LVU3907 11090 00ec E06B ldr r0, [r4, #60] 11091 00ee FFF7FEFF bl HAL_DMA_GetState 11092 .LVL800: 6626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11093 .loc 1 6626 8 discriminator 1 view .LVU3908 11094 00f2 0128 cmp r0, #1 11095 00f4 0DD0 beq .L703 6630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11096 .loc 1 6630 7 is_stmt 1 view .LVU3909 6630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11097 .loc 1 6630 11 is_stmt 0 view .LVU3910 11098 00f6 E36B ldr r3, [r4, #60] 6630:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11099 .loc 1 6630 39 view .LVU3911 11100 00f8 0C4A ldr r2, .L705+8 11101 00fa 1A65 str r2, [r3, #80] 6633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11102 .loc 1 6633 7 is_stmt 1 view .LVU3912 6633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11103 .loc 1 6633 7 view .LVU3913 11104 00fc 0023 movs r3, #0 11105 00fe 84F84030 strb r3, [r4, #64] 6633:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11106 .loc 1 6633 7 view .LVU3914 6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11107 .loc 1 6636 7 view .LVU3915 6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11108 .loc 1 6636 11 is_stmt 0 view .LVU3916 11109 0102 E06B ldr r0, [r4, #60] 11110 0104 FFF7FEFF bl HAL_DMA_Abort_IT 11111 .LVL801: 6636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11112 .loc 1 6636 10 discriminator 1 view .LVU3917 11113 0108 50B1 cbz r0, .L692 6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11114 .loc 1 6639 9 is_stmt 1 view .LVU3918 6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11115 .loc 1 6639 13 is_stmt 0 view .LVU3919 11116 010a E06B ldr r0, [r4, #60] 6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11117 .loc 1 6639 21 view .LVU3920 11118 010c 036D ldr r3, [r0, #80] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 392 6639:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11119 .loc 1 6639 9 view .LVU3921 11120 010e 9847 blx r3 11121 .LVL802: 11122 0110 06E0 b .L692 11123 .L703: 6644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11124 .loc 1 6644 7 is_stmt 1 view .LVU3922 11125 0112 2046 mov r0, r4 11126 0114 FFF7FEFF bl I2C_TreatErrorCallback 11127 .LVL803: 11128 0118 02E0 b .L692 11129 .LVL804: 11130 .L701: 6649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11131 .loc 1 6649 5 view .LVU3923 11132 011a 2046 mov r0, r4 11133 011c FFF7FEFF bl I2C_TreatErrorCallback 11134 .LVL805: 11135 .L692: 6651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11136 .loc 1 6651 1 is_stmt 0 view .LVU3924 11137 0120 10BD pop {r4, pc} 11138 .LVL806: 11139 .L706: 6651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11140 .loc 1 6651 1 view .LVU3925 11141 0122 00BF .align 2 11142 .L705: 11143 0124 0000FFFF .word -65536 11144 0128 00000000 .word I2C_Slave_ISR_IT 11145 012c 00000000 .word I2C_DMAAbort 11146 .cfi_endproc 11147 .LFE398: 11149 .section .text.I2C_ITSlaveCplt,"ax",%progbits 11150 .align 1 11151 .syntax unified 11152 .thumb 11153 .thumb_func 11155 I2C_ITSlaveCplt: 11156 .LVL807: 11157 .LFB396: 6261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11158 .loc 1 6261 1 is_stmt 1 view -0 11159 .cfi_startproc 11160 @ args = 0, pretend = 0, frame = 0 11161 @ frame_needed = 0, uses_anonymous_args = 0 6261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpcr1value = READ_REG(hi2c->Instance->CR1); 11162 .loc 1 6261 1 is_stmt 0 view .LVU3927 11163 0000 F8B5 push {r3, r4, r5, r6, r7, lr} 11164 .cfi_def_cfa_offset 24 11165 .cfi_offset 3, -24 11166 .cfi_offset 4, -20 11167 .cfi_offset 5, -16 11168 .cfi_offset 6, -12 11169 .cfi_offset 7, -8 11170 .cfi_offset 14, -4 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 393 11171 0002 0446 mov r4, r0 11172 0004 0D46 mov r5, r1 6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11173 .loc 1 6262 3 is_stmt 1 view .LVU3928 6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11174 .loc 1 6262 26 is_stmt 0 view .LVU3929 11175 0006 0268 ldr r2, [r0] 6262:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11176 .loc 1 6262 12 view .LVU3930 11177 0008 1668 ldr r6, [r2] 11178 .LVL808: 6263:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11179 .loc 1 6263 3 is_stmt 1 view .LVU3931 6264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11180 .loc 1 6264 3 view .LVU3932 6264:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate = hi2c->State; 11181 .loc 1 6264 12 is_stmt 0 view .LVU3933 11182 000a C76A ldr r7, [r0, #44] 11183 .LVL809: 6265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11184 .loc 1 6265 3 is_stmt 1 view .LVU3934 6265:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11185 .loc 1 6265 24 is_stmt 0 view .LVU3935 11186 000c 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 11187 .LVL810: 6268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11188 .loc 1 6268 3 is_stmt 1 view .LVU3936 11189 0010 2021 movs r1, #32 11190 .LVL811: 6268:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11191 .loc 1 6268 3 is_stmt 0 view .LVU3937 11192 0012 D161 str r1, [r2, #28] 6271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11193 .loc 1 6271 3 is_stmt 1 view .LVU3938 11194 0014 213B subs r3, r3, #33 11195 .LVL812: 6271:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11196 .loc 1 6271 3 is_stmt 0 view .LVU3939 11197 0016 092B cmp r3, #9 11198 0018 0CD8 bhi .L708 11199 001a DFE803F0 tbb [pc, r3] 11200 .L710: 11201 001e 05 .byte (.L711-.L710)/2 11202 001f 5F .byte (.L709-.L710)/2 11203 0020 0B .byte (.L708-.L710)/2 11204 0021 0B .byte (.L708-.L710)/2 11205 0022 0B .byte (.L708-.L710)/2 11206 0023 0B .byte (.L708-.L710)/2 11207 0024 0B .byte (.L708-.L710)/2 11208 0025 66 .byte (.L712-.L710)/2 11209 0026 05 .byte (.L711-.L710)/2 11210 0027 5F .byte (.L709-.L710)/2 11211 .p2align 1 11212 .L711: 6273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; 11213 .loc 1 6273 5 is_stmt 1 view .LVU3940 11214 0028 48F20101 movw r1, #32769 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 394 11215 002c FFF7FEFF bl I2C_Disable_IRQ 11216 .LVL813: 6274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11217 .loc 1 6274 5 view .LVU3941 6274:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11218 .loc 1 6274 25 is_stmt 0 view .LVU3942 11219 0030 2123 movs r3, #33 11220 0032 2363 str r3, [r4, #48] 11221 .L708: 6289:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11222 .loc 1 6289 3 is_stmt 1 view .LVU3943 6292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11223 .loc 1 6292 3 view .LVU3944 6292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11224 .loc 1 6292 7 is_stmt 0 view .LVU3945 11225 0034 2268 ldr r2, [r4] 6292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11226 .loc 1 6292 17 view .LVU3946 11227 0036 5368 ldr r3, [r2, #4] 6292:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11228 .loc 1 6292 23 view .LVU3947 11229 0038 43F40043 orr r3, r3, #32768 11230 003c 5360 str r3, [r2, #4] 6295:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11231 .loc 1 6295 3 is_stmt 1 view .LVU3948 11232 003e 2268 ldr r2, [r4] 11233 0040 5368 ldr r3, [r2, #4] 11234 0042 23F0FF73 bic r3, r3, #33423360 11235 0046 23F48B33 bic r3, r3, #71168 11236 004a 23F4FF73 bic r3, r3, #510 11237 004e 23F00103 bic r3, r3, #1 11238 0052 5360 str r3, [r2, #4] 6298:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11239 .loc 1 6298 3 view .LVU3949 11240 0054 2046 mov r0, r4 11241 0056 FFF7FEFF bl I2C_Flush_TXDR 11242 .LVL814: 6301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11243 .loc 1 6301 3 view .LVU3950 6301:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11244 .loc 1 6301 6 is_stmt 0 view .LVU3951 11245 005a 16F4804F tst r6, #16384 11246 005e 00F09B80 beq .L713 6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11247 .loc 1 6304 5 is_stmt 1 view .LVU3952 6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11248 .loc 1 6304 9 is_stmt 0 view .LVU3953 11249 0062 2268 ldr r2, [r4] 6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11250 .loc 1 6304 19 view .LVU3954 11251 0064 1368 ldr r3, [r2] 6304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11252 .loc 1 6304 25 view .LVU3955 11253 0066 23F48043 bic r3, r3, #16384 11254 006a 1360 str r3, [r2] 6306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11255 .loc 1 6306 5 is_stmt 1 view .LVU3956 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 395 6306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11256 .loc 1 6306 13 is_stmt 0 view .LVU3957 11257 006c A36B ldr r3, [r4, #56] 6306:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11258 .loc 1 6306 8 view .LVU3958 11259 006e 002B cmp r3, #0 11260 0070 45D0 beq .L714 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11261 .loc 1 6308 7 is_stmt 1 view .LVU3959 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11262 .loc 1 6308 35 is_stmt 0 view .LVU3960 11263 0072 1B68 ldr r3, [r3] 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11264 .loc 1 6308 25 view .LVU3961 11265 0074 9249 ldr r1, .L738 11266 0076 934A ldr r2, .L738+4 11267 0078 9342 cmp r3, r2 11268 007a 18BF it ne 11269 007c 8B42 cmpne r3, r1 11270 007e 3BD0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11271 .loc 1 6308 35 discriminator 2 view .LVU3962 11272 0080 1832 adds r2, r2, #24 11273 0082 9342 cmp r3, r2 11274 0084 38D0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11275 .loc 1 6308 35 discriminator 4 view .LVU3963 11276 0086 1832 adds r2, r2, #24 11277 0088 9342 cmp r3, r2 11278 008a 35D0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11279 .loc 1 6308 35 discriminator 6 view .LVU3964 11280 008c 1832 adds r2, r2, #24 11281 008e 9342 cmp r3, r2 11282 0090 32D0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11283 .loc 1 6308 35 discriminator 8 view .LVU3965 11284 0092 1832 adds r2, r2, #24 11285 0094 9342 cmp r3, r2 11286 0096 2FD0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11287 .loc 1 6308 35 discriminator 10 view .LVU3966 11288 0098 1832 adds r2, r2, #24 11289 009a 9342 cmp r3, r2 11290 009c 2CD0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11291 .loc 1 6308 35 discriminator 12 view .LVU3967 11292 009e 1832 adds r2, r2, #24 11293 00a0 9342 cmp r3, r2 11294 00a2 29D0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11295 .loc 1 6308 35 discriminator 14 view .LVU3968 11296 00a4 02F55672 add r2, r2, #856 11297 00a8 9342 cmp r3, r2 11298 00aa 25D0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11299 .loc 1 6308 35 discriminator 16 view .LVU3969 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 396 11300 00ac 1832 adds r2, r2, #24 11301 00ae 9342 cmp r3, r2 11302 00b0 22D0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11303 .loc 1 6308 35 discriminator 18 view .LVU3970 11304 00b2 1832 adds r2, r2, #24 11305 00b4 9342 cmp r3, r2 11306 00b6 1FD0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11307 .loc 1 6308 35 discriminator 20 view .LVU3971 11308 00b8 1832 adds r2, r2, #24 11309 00ba 9342 cmp r3, r2 11310 00bc 1CD0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11311 .loc 1 6308 35 discriminator 22 view .LVU3972 11312 00be 1832 adds r2, r2, #24 11313 00c0 9342 cmp r3, r2 11314 00c2 19D0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11315 .loc 1 6308 35 discriminator 24 view .LVU3973 11316 00c4 1832 adds r2, r2, #24 11317 00c6 9342 cmp r3, r2 11318 00c8 16D0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11319 .loc 1 6308 35 discriminator 26 view .LVU3974 11320 00ca 1832 adds r2, r2, #24 11321 00cc 9342 cmp r3, r2 11322 00ce 13D0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11323 .loc 1 6308 35 discriminator 28 view .LVU3975 11324 00d0 1832 adds r2, r2, #24 11325 00d2 9342 cmp r3, r2 11326 00d4 10D0 beq .L715 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11327 .loc 1 6308 35 discriminator 30 view .LVU3976 11328 00d6 5B68 ldr r3, [r3, #4] 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11329 .loc 1 6308 25 discriminator 30 view .LVU3977 11330 00d8 9BB2 uxth r3, r3 11331 00da 0FE0 b .L717 11332 .LVL815: 11333 .L709: 6278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_RX; 11334 .loc 1 6278 5 is_stmt 1 view .LVU3978 11335 00dc 48F20201 movw r1, #32770 11336 00e0 FFF7FEFF bl I2C_Disable_IRQ 11337 .LVL816: 6279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11338 .loc 1 6279 5 view .LVU3979 6279:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11339 .loc 1 6279 25 is_stmt 0 view .LVU3980 11340 00e4 2223 movs r3, #34 11341 00e6 2363 str r3, [r4, #48] 11342 00e8 A4E7 b .L708 11343 .LVL817: 11344 .L712: 6283:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 397 11345 .loc 1 6283 5 is_stmt 1 view .LVU3981 11346 00ea 48F20301 movw r1, #32771 11347 00ee FFF7FEFF bl I2C_Disable_IRQ 11348 .LVL818: 6284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11349 .loc 1 6284 5 view .LVU3982 6284:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11350 .loc 1 6284 25 is_stmt 0 view .LVU3983 11351 00f2 0023 movs r3, #0 11352 00f4 2363 str r3, [r4, #48] 11353 00f6 9DE7 b .L708 11354 .L715: 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11355 .loc 1 6308 35 discriminator 29 view .LVU3984 11356 00f8 5B68 ldr r3, [r3, #4] 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11357 .loc 1 6308 25 discriminator 29 view .LVU3985 11358 00fa 9BB2 uxth r3, r3 11359 .L717: 6308:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11360 .loc 1 6308 23 discriminator 32 view .LVU3986 11361 00fc 6385 strh r3, [r4, #42] @ movhi 11362 .L714: 6324:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11363 .loc 1 6324 3 is_stmt 1 view .LVU3987 6327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11364 .loc 1 6327 3 view .LVU3988 6327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11365 .loc 1 6327 6 is_stmt 0 view .LVU3989 11366 00fe 15F0040F tst r5, #4 11367 0102 11D0 beq .L721 6330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11368 .loc 1 6330 5 is_stmt 1 view .LVU3990 6330:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11369 .loc 1 6330 16 is_stmt 0 view .LVU3991 11370 0104 25F00405 bic r5, r5, #4 11371 .LVL819: 6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11372 .loc 1 6333 5 is_stmt 1 view .LVU3992 6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11373 .loc 1 6333 36 is_stmt 0 view .LVU3993 11374 0108 2368 ldr r3, [r4] 6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11375 .loc 1 6333 46 view .LVU3994 11376 010a 5A6A ldr r2, [r3, #36] 6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11377 .loc 1 6333 10 view .LVU3995 11378 010c 636A ldr r3, [r4, #36] 6333:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11379 .loc 1 6333 21 view .LVU3996 11380 010e 1A70 strb r2, [r3] 6336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11381 .loc 1 6336 5 is_stmt 1 view .LVU3997 6336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11382 .loc 1 6336 9 is_stmt 0 view .LVU3998 11383 0110 636A ldr r3, [r4, #36] 6336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 398 11384 .loc 1 6336 19 view .LVU3999 11385 0112 0133 adds r3, r3, #1 11386 0114 6362 str r3, [r4, #36] 6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11387 .loc 1 6338 5 is_stmt 1 view .LVU4000 6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11388 .loc 1 6338 14 is_stmt 0 view .LVU4001 11389 0116 238D ldrh r3, [r4, #40] 6338:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11390 .loc 1 6338 8 view .LVU4002 11391 0118 33B1 cbz r3, .L721 6340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11392 .loc 1 6340 7 is_stmt 1 view .LVU4003 6340:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11393 .loc 1 6340 21 is_stmt 0 view .LVU4004 11394 011a 013B subs r3, r3, #1 11395 011c 2385 strh r3, [r4, #40] @ movhi 6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11396 .loc 1 6341 7 is_stmt 1 view .LVU4005 6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11397 .loc 1 6341 11 is_stmt 0 view .LVU4006 11398 011e 638D ldrh r3, [r4, #42] 11399 0120 9BB2 uxth r3, r3 6341:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11400 .loc 1 6341 22 view .LVU4007 11401 0122 013B subs r3, r3, #1 11402 0124 9BB2 uxth r3, r3 11403 0126 6385 strh r3, [r4, #42] @ movhi 11404 .L721: 6346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11405 .loc 1 6346 3 is_stmt 1 view .LVU4008 6346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11406 .loc 1 6346 11 is_stmt 0 view .LVU4009 11407 0128 638D ldrh r3, [r4, #42] 11408 012a 9BB2 uxth r3, r3 6346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11409 .loc 1 6346 6 view .LVU4010 11410 012c 1BB1 cbz r3, .L722 6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11411 .loc 1 6349 5 is_stmt 1 view .LVU4011 6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11412 .loc 1 6349 9 is_stmt 0 view .LVU4012 11413 012e 636C ldr r3, [r4, #68] 6349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11414 .loc 1 6349 21 view .LVU4013 11415 0130 43F00403 orr r3, r3, #4 11416 0134 6364 str r3, [r4, #68] 11417 .L722: 6352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11418 .loc 1 6352 3 is_stmt 1 view .LVU4014 6352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11419 .loc 1 6352 6 is_stmt 0 view .LVU4015 11420 0136 15F0100F tst r5, #16 11421 013a 11D0 beq .L723 6352:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(tmpcr1value, I2C_IT_NACKI) != RESET)) 11422 .loc 1 6352 58 discriminator 1 view .LVU4016 11423 013c 16F0100F tst r6, #16 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 399 11424 0140 0ED0 beq .L723 6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11425 .loc 1 6359 5 is_stmt 1 view .LVU4017 6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11426 .loc 1 6359 13 is_stmt 0 view .LVU4018 11427 0142 638D ldrh r3, [r4, #42] 11428 0144 9BB2 uxth r3, r3 6359:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11429 .loc 1 6359 8 view .LVU4019 11430 0146 002B cmp r3, #0 11431 0148 7FD1 bne .L724 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11432 .loc 1 6361 7 is_stmt 1 view .LVU4020 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11433 .loc 1 6361 16 is_stmt 0 view .LVU4021 11434 014a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11435 .loc 1 6361 10 view .LVU4022 11436 014e 282B cmp r3, #40 11437 0150 66D0 beq .L733 11438 .L725: 6368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11439 .loc 1 6368 12 is_stmt 1 view .LVU4023 6368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11440 .loc 1 6368 21 is_stmt 0 view .LVU4024 11441 0152 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11442 .loc 1 6368 15 view .LVU4025 11443 0156 292B cmp r3, #41 11444 0158 6AD0 beq .L734 11445 .L726: 6383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11446 .loc 1 6383 9 is_stmt 1 view .LVU4026 11447 015a 2368 ldr r3, [r4] 11448 015c 1022 movs r2, #16 11449 015e DA61 str r2, [r3, #28] 11450 .L723: 6403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 11451 .loc 1 6403 3 view .LVU4027 6403:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferISR = NULL; 11452 .loc 1 6403 14 is_stmt 0 view .LVU4028 11453 0160 0023 movs r3, #0 11454 0162 84F84230 strb r3, [r4, #66] 6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11455 .loc 1 6404 3 is_stmt 1 view .LVU4029 6404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11456 .loc 1 6404 17 is_stmt 0 view .LVU4030 11457 0166 6363 str r3, [r4, #52] 6406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11458 .loc 1 6406 3 is_stmt 1 view .LVU4031 6406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11459 .loc 1 6406 11 is_stmt 0 view .LVU4032 11460 0168 636C ldr r3, [r4, #68] 6406:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11461 .loc 1 6406 6 view .LVU4033 11462 016a 002B cmp r3, #0 11463 016c 7FD1 bne .L735 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 400 6418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11464 .loc 1 6418 8 is_stmt 1 view .LVU4034 6418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11465 .loc 1 6418 16 is_stmt 0 view .LVU4035 11466 016e E36A ldr r3, [r4, #44] 6418:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11467 .loc 1 6418 11 view .LVU4036 11468 0170 13F5803F cmn r3, #65536 11469 0174 40F08880 bne .L736 6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11470 .loc 1 6438 8 is_stmt 1 view .LVU4037 6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11471 .loc 1 6438 16 is_stmt 0 view .LVU4038 11472 0178 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6438:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11473 .loc 1 6438 11 view .LVU4039 11474 017c 222B cmp r3, #34 11475 017e 00F09380 beq .L737 6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11476 .loc 1 6455 5 is_stmt 1 view .LVU4040 6455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11477 .loc 1 6455 17 is_stmt 0 view .LVU4041 11478 0182 2023 movs r3, #32 11479 0184 84F84130 strb r3, [r4, #65] 6456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11480 .loc 1 6456 5 is_stmt 1 view .LVU4042 6456:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11481 .loc 1 6456 25 is_stmt 0 view .LVU4043 11482 0188 0023 movs r3, #0 11483 018a 2363 str r3, [r4, #48] 6459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11484 .loc 1 6459 5 is_stmt 1 view .LVU4044 6459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11485 .loc 1 6459 5 view .LVU4045 11486 018c 84F84030 strb r3, [r4, #64] 6459:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11487 .loc 1 6459 5 view .LVU4046 6465:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11488 .loc 1 6465 5 view .LVU4047 11489 0190 2046 mov r0, r4 11490 0192 FFF7FEFF bl HAL_I2C_SlaveTxCpltCallback 11491 .LVL820: 6468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11492 .loc 1 6468 1 is_stmt 0 view .LVU4048 11493 0196 86E0 b .L707 11494 .LVL821: 11495 .L713: 6311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11496 .loc 1 6311 8 is_stmt 1 view .LVU4049 6311:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11497 .loc 1 6311 11 is_stmt 0 view .LVU4050 11498 0198 16F4004F tst r6, #32768 11499 019c AFD0 beq .L714 6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11500 .loc 1 6314 5 is_stmt 1 view .LVU4051 6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11501 .loc 1 6314 9 is_stmt 0 view .LVU4052 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 401 11502 019e 2268 ldr r2, [r4] 6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11503 .loc 1 6314 19 view .LVU4053 11504 01a0 1368 ldr r3, [r2] 6314:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11505 .loc 1 6314 25 view .LVU4054 11506 01a2 23F40043 bic r3, r3, #32768 11507 01a6 1360 str r3, [r2] 6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11508 .loc 1 6316 5 is_stmt 1 view .LVU4055 6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11509 .loc 1 6316 13 is_stmt 0 view .LVU4056 11510 01a8 E36B ldr r3, [r4, #60] 6316:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11511 .loc 1 6316 8 view .LVU4057 11512 01aa 002B cmp r3, #0 11513 01ac A7D0 beq .L714 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11514 .loc 1 6318 7 is_stmt 1 view .LVU4058 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11515 .loc 1 6318 35 is_stmt 0 view .LVU4059 11516 01ae 1B68 ldr r3, [r3] 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11517 .loc 1 6318 25 view .LVU4060 11518 01b0 4349 ldr r1, .L738 11519 01b2 444A ldr r2, .L738+4 11520 01b4 9342 cmp r3, r2 11521 01b6 18BF it ne 11522 01b8 8B42 cmpne r3, r1 11523 01ba 2DD0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11524 .loc 1 6318 35 discriminator 2 view .LVU4061 11525 01bc 1832 adds r2, r2, #24 11526 01be 9342 cmp r3, r2 11527 01c0 2AD0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11528 .loc 1 6318 35 discriminator 4 view .LVU4062 11529 01c2 1832 adds r2, r2, #24 11530 01c4 9342 cmp r3, r2 11531 01c6 27D0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11532 .loc 1 6318 35 discriminator 6 view .LVU4063 11533 01c8 1832 adds r2, r2, #24 11534 01ca 9342 cmp r3, r2 11535 01cc 24D0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11536 .loc 1 6318 35 discriminator 8 view .LVU4064 11537 01ce 1832 adds r2, r2, #24 11538 01d0 9342 cmp r3, r2 11539 01d2 21D0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11540 .loc 1 6318 35 discriminator 10 view .LVU4065 11541 01d4 1832 adds r2, r2, #24 11542 01d6 9342 cmp r3, r2 11543 01d8 1ED0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11544 .loc 1 6318 35 discriminator 12 view .LVU4066 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 402 11545 01da 1832 adds r2, r2, #24 11546 01dc 9342 cmp r3, r2 11547 01de 1BD0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11548 .loc 1 6318 35 discriminator 14 view .LVU4067 11549 01e0 02F55672 add r2, r2, #856 11550 01e4 9342 cmp r3, r2 11551 01e6 17D0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11552 .loc 1 6318 35 discriminator 16 view .LVU4068 11553 01e8 1832 adds r2, r2, #24 11554 01ea 9342 cmp r3, r2 11555 01ec 14D0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11556 .loc 1 6318 35 discriminator 18 view .LVU4069 11557 01ee 1832 adds r2, r2, #24 11558 01f0 9342 cmp r3, r2 11559 01f2 11D0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11560 .loc 1 6318 35 discriminator 20 view .LVU4070 11561 01f4 1832 adds r2, r2, #24 11562 01f6 9342 cmp r3, r2 11563 01f8 0ED0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11564 .loc 1 6318 35 discriminator 22 view .LVU4071 11565 01fa 1832 adds r2, r2, #24 11566 01fc 9342 cmp r3, r2 11567 01fe 0BD0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11568 .loc 1 6318 35 discriminator 24 view .LVU4072 11569 0200 1832 adds r2, r2, #24 11570 0202 9342 cmp r3, r2 11571 0204 08D0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11572 .loc 1 6318 35 discriminator 26 view .LVU4073 11573 0206 1832 adds r2, r2, #24 11574 0208 9342 cmp r3, r2 11575 020a 05D0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11576 .loc 1 6318 35 discriminator 28 view .LVU4074 11577 020c 1832 adds r2, r2, #24 11578 020e 9342 cmp r3, r2 11579 0210 02D0 beq .L718 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11580 .loc 1 6318 35 discriminator 30 view .LVU4075 11581 0212 5B68 ldr r3, [r3, #4] 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11582 .loc 1 6318 25 discriminator 30 view .LVU4076 11583 0214 9BB2 uxth r3, r3 11584 0216 01E0 b .L720 11585 .L718: 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11586 .loc 1 6318 35 discriminator 29 view .LVU4077 11587 0218 5B68 ldr r3, [r3, #4] 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11588 .loc 1 6318 25 discriminator 29 view .LVU4078 11589 021a 9BB2 uxth r3, r3 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 403 11590 .L720: 6318:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11591 .loc 1 6318 23 discriminator 32 view .LVU4079 11592 021c 6385 strh r3, [r4, #42] @ movhi 11593 021e 6EE7 b .L714 11594 .LVL822: 11595 .L733: 6361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11596 .loc 1 6361 49 discriminator 1 view .LVU4080 11597 0220 B7F1007F cmp r7, #33554432 11598 0224 95D1 bne .L725 6366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11599 .loc 1 6366 9 is_stmt 1 view .LVU4081 11600 0226 2946 mov r1, r5 11601 0228 2046 mov r0, r4 11602 022a FFF7FEFF bl I2C_ITListenCplt 11603 .LVL823: 11604 022e 97E7 b .L723 11605 .L734: 6368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11606 .loc 1 6368 62 is_stmt 0 discriminator 1 view .LVU4082 11607 0230 17F5803F cmn r7, #65536 11608 0234 91D0 beq .L726 6371:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11609 .loc 1 6371 9 is_stmt 1 view .LVU4083 11610 0236 2368 ldr r3, [r4] 11611 0238 1022 movs r2, #16 11612 023a DA61 str r2, [r3, #28] 6374:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11613 .loc 1 6374 9 view .LVU4084 11614 023c 2046 mov r0, r4 11615 023e FFF7FEFF bl I2C_Flush_TXDR 11616 .LVL824: 6378:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11617 .loc 1 6378 9 view .LVU4085 11618 0242 2046 mov r0, r4 11619 0244 FFF7FEFF bl I2C_ITSlaveSeqCplt 11620 .LVL825: 11621 0248 8AE7 b .L723 11622 .L724: 6390:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11623 .loc 1 6390 7 view .LVU4086 11624 024a 2368 ldr r3, [r4] 11625 024c 1022 movs r2, #16 11626 024e DA61 str r2, [r3, #28] 6393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11627 .loc 1 6393 7 view .LVU4087 6393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11628 .loc 1 6393 11 is_stmt 0 view .LVU4088 11629 0250 636C ldr r3, [r4, #68] 6393:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11630 .loc 1 6393 23 view .LVU4089 11631 0252 43F00403 orr r3, r3, #4 11632 0256 6364 str r3, [r4, #68] 6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11633 .loc 1 6395 7 is_stmt 1 view .LVU4090 6395:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 404 11634 .loc 1 6395 10 is_stmt 0 view .LVU4091 11635 0258 B7F1807F cmp r7, #16777216 11636 025c 18BF it ne 11637 025e 002F cmpne r7, #0 11638 0260 7FF47EAF bne .L723 6398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11639 .loc 1 6398 9 is_stmt 1 view .LVU4092 6398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11640 .loc 1 6398 31 is_stmt 0 view .LVU4093 11641 0264 616C ldr r1, [r4, #68] 6398:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11642 .loc 1 6398 9 view .LVU4094 11643 0266 2046 mov r0, r4 11644 0268 FFF7FEFF bl I2C_ITError 11645 .LVL826: 11646 026c 78E7 b .L723 11647 .L735: 6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11648 .loc 1 6409 5 is_stmt 1 view .LVU4095 6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11649 .loc 1 6409 27 is_stmt 0 view .LVU4096 11650 026e 616C ldr r1, [r4, #68] 6409:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11651 .loc 1 6409 5 view .LVU4097 11652 0270 2046 mov r0, r4 11653 0272 FFF7FEFF bl I2C_ITError 11654 .LVL827: 6412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11655 .loc 1 6412 5 is_stmt 1 view .LVU4098 6412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11656 .loc 1 6412 13 is_stmt 0 view .LVU4099 11657 0276 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6412:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11658 .loc 1 6412 8 view .LVU4100 11659 027a 282B cmp r3, #40 11660 027c 13D1 bne .L707 6415:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11661 .loc 1 6415 7 is_stmt 1 view .LVU4101 11662 027e 2946 mov r1, r5 11663 0280 2046 mov r0, r4 11664 0282 FFF7FEFF bl I2C_ITListenCplt 11665 .LVL828: 11666 0286 0EE0 b .L707 11667 .L736: 6421:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11668 .loc 1 6421 5 view .LVU4102 11669 0288 2046 mov r0, r4 11670 028a FFF7FEFF bl I2C_ITSlaveSeqCplt 11671 .LVL829: 6423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11672 .loc 1 6423 5 view .LVU4103 6423:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->State = HAL_I2C_STATE_READY; 11673 .loc 1 6423 23 is_stmt 0 view .LVU4104 11674 028e 0E4B ldr r3, .L738+8 11675 0290 E362 str r3, [r4, #44] 6424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11676 .loc 1 6424 5 is_stmt 1 view .LVU4105 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 405 6424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11677 .loc 1 6424 17 is_stmt 0 view .LVU4106 11678 0292 2023 movs r3, #32 11679 0294 84F84130 strb r3, [r4, #65] 6425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11680 .loc 1 6425 5 is_stmt 1 view .LVU4107 6425:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11681 .loc 1 6425 25 is_stmt 0 view .LVU4108 11682 0298 0023 movs r3, #0 11683 029a 2363 str r3, [r4, #48] 6428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11684 .loc 1 6428 5 is_stmt 1 view .LVU4109 6428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11685 .loc 1 6428 5 view .LVU4110 11686 029c 84F84030 strb r3, [r4, #64] 6428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11687 .loc 1 6428 5 view .LVU4111 6434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11688 .loc 1 6434 5 view .LVU4112 11689 02a0 2046 mov r0, r4 11690 02a2 FFF7FEFF bl HAL_I2C_ListenCpltCallback 11691 .LVL830: 11692 .L707: 6468:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11693 .loc 1 6468 1 is_stmt 0 view .LVU4113 11694 02a6 F8BD pop {r3, r4, r5, r6, r7, pc} 11695 .LVL831: 11696 .L737: 6440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11697 .loc 1 6440 5 is_stmt 1 view .LVU4114 6440:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 11698 .loc 1 6440 17 is_stmt 0 view .LVU4115 11699 02a8 2023 movs r3, #32 11700 02aa 84F84130 strb r3, [r4, #65] 6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11701 .loc 1 6441 5 is_stmt 1 view .LVU4116 6441:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11702 .loc 1 6441 25 is_stmt 0 view .LVU4117 11703 02ae 0023 movs r3, #0 11704 02b0 2363 str r3, [r4, #48] 6444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11705 .loc 1 6444 5 is_stmt 1 view .LVU4118 6444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11706 .loc 1 6444 5 view .LVU4119 11707 02b2 84F84030 strb r3, [r4, #64] 6444:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11708 .loc 1 6444 5 view .LVU4120 6450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 11709 .loc 1 6450 5 view .LVU4121 11710 02b6 2046 mov r0, r4 11711 02b8 FFF7FEFF bl HAL_I2C_SlaveRxCpltCallback 11712 .LVL832: 11713 02bc F3E7 b .L707 11714 .L739: 11715 02be 00BF .align 2 11716 .L738: 11717 02c0 10000240 .word 1073872912 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 406 11718 02c4 28000240 .word 1073872936 11719 02c8 0000FFFF .word -65536 11720 .cfi_endproc 11721 .LFE396: 11723 .section .text.I2C_Slave_ISR_IT,"ax",%progbits 11724 .align 1 11725 .syntax unified 11726 .thumb 11727 .thumb_func 11729 I2C_Slave_ISR_IT: 11730 .LVL833: 11731 .LFB386: 5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11732 .loc 1 5221 1 view -0 11733 .cfi_startproc 11734 @ args = 0, pretend = 0, frame = 0 11735 @ frame_needed = 0, uses_anonymous_args = 0 5221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 11736 .loc 1 5221 1 is_stmt 0 view .LVU4123 11737 0000 10B5 push {r4, lr} 11738 .cfi_def_cfa_offset 8 11739 .cfi_offset 4, -8 11740 .cfi_offset 14, -4 11741 0002 0446 mov r4, r0 5222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11742 .loc 1 5222 3 is_stmt 1 view .LVU4124 5222:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 11743 .loc 1 5222 12 is_stmt 0 view .LVU4125 11744 0004 C06A ldr r0, [r0, #44] 11745 .LVL834: 5223:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11746 .loc 1 5223 3 is_stmt 1 view .LVU4126 5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11747 .loc 1 5226 3 view .LVU4127 5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11748 .loc 1 5226 3 view .LVU4128 11749 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 11750 000a 012B cmp r3, #1 11751 000c 00F09980 beq .L752 5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11752 .loc 1 5226 3 discriminator 2 view .LVU4129 11753 0010 0123 movs r3, #1 11754 0012 84F84030 strb r3, [r4, #64] 5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11755 .loc 1 5226 3 view .LVU4130 5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11756 .loc 1 5229 3 view .LVU4131 5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11757 .loc 1 5229 6 is_stmt 0 view .LVU4132 11758 0016 11F0200F tst r1, #32 11759 001a 02D0 beq .L742 5229:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 11760 .loc 1 5229 61 discriminator 1 view .LVU4133 11761 001c 12F0200F tst r2, #32 11762 0020 14D1 bne .L754 11763 .L742: 5235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 407 11764 .loc 1 5235 8 is_stmt 1 view .LVU4134 5235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11765 .loc 1 5235 11 is_stmt 0 view .LVU4135 11766 0022 11F0100F tst r1, #16 11767 0026 3DD0 beq .L744 5235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 11768 .loc 1 5235 63 discriminator 1 view .LVU4136 11769 0028 12F0100F tst r2, #16 11770 002c 3AD0 beq .L744 5242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11771 .loc 1 5242 5 is_stmt 1 view .LVU4137 5242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11772 .loc 1 5242 13 is_stmt 0 view .LVU4138 11773 002e 638D ldrh r3, [r4, #42] 11774 0030 9BB2 uxth r3, r3 5242:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11775 .loc 1 5242 8 view .LVU4139 11776 0032 33BB cbnz r3, .L745 5244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11777 .loc 1 5244 7 is_stmt 1 view .LVU4140 5244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11778 .loc 1 5244 16 is_stmt 0 view .LVU4141 11779 0034 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11780 .loc 1 5244 10 view .LVU4142 11781 0038 282B cmp r3, #40 11782 003a 0ED0 beq .L755 11783 .L746: 5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11784 .loc 1 5251 12 is_stmt 1 view .LVU4143 5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11785 .loc 1 5251 21 is_stmt 0 view .LVU4144 11786 003c 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11787 .loc 1 5251 15 view .LVU4145 11788 0040 292B cmp r3, #41 11789 0042 11D0 beq .L756 11790 .L747: 5266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11791 .loc 1 5266 9 is_stmt 1 view .LVU4146 11792 0044 2368 ldr r3, [r4] 11793 0046 1022 movs r2, #16 11794 .LVL835: 5266:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11795 .loc 1 5266 9 is_stmt 0 view .LVU4147 11796 0048 DA61 str r2, [r3, #28] 11797 004a 02E0 b .L743 11798 .LVL836: 11799 .L754: 5233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11800 .loc 1 5233 5 is_stmt 1 view .LVU4148 11801 004c 2046 mov r0, r4 11802 .LVL837: 5233:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11803 .loc 1 5233 5 is_stmt 0 view .LVU4149 11804 004e FFF7FEFF bl I2C_ITSlaveCplt 11805 .LVL838: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 408 11806 .L743: 5343:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11807 .loc 1 5343 3 is_stmt 1 view .LVU4150 5346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11808 .loc 1 5346 3 view .LVU4151 5346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11809 .loc 1 5346 3 view .LVU4152 11810 0052 0020 movs r0, #0 11811 0054 84F84000 strb r0, [r4, #64] 5346:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11812 .loc 1 5346 3 view .LVU4153 5348:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11813 .loc 1 5348 3 view .LVU4154 11814 .L741: 5349:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11815 .loc 1 5349 1 is_stmt 0 view .LVU4155 11816 0058 10BD pop {r4, pc} 11817 .LVL839: 11818 .L755: 5244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 11819 .loc 1 5244 49 discriminator 1 view .LVU4156 11820 005a B0F1007F cmp r0, #33554432 11821 005e EDD1 bne .L746 5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11822 .loc 1 5249 9 is_stmt 1 view .LVU4157 11823 0060 2046 mov r0, r4 11824 .LVL840: 5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11825 .loc 1 5249 9 is_stmt 0 view .LVU4158 11826 0062 FFF7FEFF bl I2C_ITListenCplt 11827 .LVL841: 5249:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11828 .loc 1 5249 9 view .LVU4159 11829 0066 F4E7 b .L743 11830 .LVL842: 11831 .L756: 5251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11832 .loc 1 5251 62 discriminator 1 view .LVU4160 11833 0068 10F5803F cmn r0, #65536 11834 006c EAD0 beq .L747 5254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11835 .loc 1 5254 9 is_stmt 1 view .LVU4161 11836 006e 2368 ldr r3, [r4] 11837 0070 1022 movs r2, #16 11838 .LVL843: 5254:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11839 .loc 1 5254 9 is_stmt 0 view .LVU4162 11840 0072 DA61 str r2, [r3, #28] 5257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11841 .loc 1 5257 9 is_stmt 1 view .LVU4163 11842 0074 2046 mov r0, r4 11843 .LVL844: 5257:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11844 .loc 1 5257 9 is_stmt 0 view .LVU4164 11845 0076 FFF7FEFF bl I2C_Flush_TXDR 11846 .LVL845: 5261:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 409 11847 .loc 1 5261 9 is_stmt 1 view .LVU4165 11848 007a 2046 mov r0, r4 11849 007c FFF7FEFF bl I2C_ITSlaveSeqCplt 11850 .LVL846: 11851 0080 E7E7 b .L743 11852 .LVL847: 11853 .L745: 5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11854 .loc 1 5273 7 view .LVU4166 11855 0082 2368 ldr r3, [r4] 11856 0084 1022 movs r2, #16 11857 .LVL848: 5273:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11858 .loc 1 5273 7 is_stmt 0 view .LVU4167 11859 0086 DA61 str r2, [r3, #28] 5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11860 .loc 1 5276 7 is_stmt 1 view .LVU4168 5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11861 .loc 1 5276 11 is_stmt 0 view .LVU4169 11862 0088 636C ldr r3, [r4, #68] 5276:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11863 .loc 1 5276 23 view .LVU4170 11864 008a 43F00403 orr r3, r3, #4 11865 008e 6364 str r3, [r4, #68] 5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11866 .loc 1 5278 7 is_stmt 1 view .LVU4171 5278:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11867 .loc 1 5278 10 is_stmt 0 view .LVU4172 11868 0090 B0F1807F cmp r0, #16777216 11869 0094 18BF it ne 11870 0096 0028 cmpne r0, #0 11871 0098 DBD1 bne .L743 5281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11872 .loc 1 5281 9 is_stmt 1 view .LVU4173 5281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11873 .loc 1 5281 31 is_stmt 0 view .LVU4174 11874 009a 616C ldr r1, [r4, #68] 11875 .LVL849: 5281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11876 .loc 1 5281 9 view .LVU4175 11877 009c 2046 mov r0, r4 11878 .LVL850: 5281:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11879 .loc 1 5281 9 view .LVU4176 11880 009e FFF7FEFF bl I2C_ITError 11881 .LVL851: 11882 00a2 D6E7 b .L743 11883 .LVL852: 11884 .L744: 5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11885 .loc 1 5285 8 is_stmt 1 view .LVU4177 5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11886 .loc 1 5285 11 is_stmt 0 view .LVU4178 11887 00a4 11F0040F tst r1, #4 11888 00a8 1FD0 beq .L748 5285:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 11889 .loc 1 5285 65 discriminator 1 view .LVU4179 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 410 11890 00aa 12F0040F tst r2, #4 11891 00ae 1CD0 beq .L748 5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11892 .loc 1 5288 5 is_stmt 1 view .LVU4180 5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11893 .loc 1 5288 13 is_stmt 0 view .LVU4181 11894 00b0 638D ldrh r3, [r4, #42] 11895 00b2 9BB2 uxth r3, r3 5288:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11896 .loc 1 5288 8 view .LVU4182 11897 00b4 73B1 cbz r3, .L749 5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11898 .loc 1 5291 7 is_stmt 1 view .LVU4183 5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11899 .loc 1 5291 38 is_stmt 0 view .LVU4184 11900 00b6 2368 ldr r3, [r4] 5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11901 .loc 1 5291 48 view .LVU4185 11902 00b8 5A6A ldr r2, [r3, #36] 11903 .LVL853: 5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11904 .loc 1 5291 12 view .LVU4186 11905 00ba 636A ldr r3, [r4, #36] 5291:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11906 .loc 1 5291 23 view .LVU4187 11907 00bc 1A70 strb r2, [r3] 5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11908 .loc 1 5294 7 is_stmt 1 view .LVU4188 5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11909 .loc 1 5294 11 is_stmt 0 view .LVU4189 11910 00be 636A ldr r3, [r4, #36] 5294:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11911 .loc 1 5294 21 view .LVU4190 11912 00c0 0133 adds r3, r3, #1 11913 00c2 6362 str r3, [r4, #36] 5296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11914 .loc 1 5296 7 is_stmt 1 view .LVU4191 5296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11915 .loc 1 5296 11 is_stmt 0 view .LVU4192 11916 00c4 238D ldrh r3, [r4, #40] 5296:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 11917 .loc 1 5296 21 view .LVU4193 11918 00c6 013B subs r3, r3, #1 11919 00c8 2385 strh r3, [r4, #40] @ movhi 5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11920 .loc 1 5297 7 is_stmt 1 view .LVU4194 5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11921 .loc 1 5297 11 is_stmt 0 view .LVU4195 11922 00ca 638D ldrh r3, [r4, #42] 11923 00cc 9BB2 uxth r3, r3 5297:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11924 .loc 1 5297 22 view .LVU4196 11925 00ce 013B subs r3, r3, #1 11926 00d0 9BB2 uxth r3, r3 11927 00d2 6385 strh r3, [r4, #42] @ movhi 11928 .L749: 5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 411 11929 .loc 1 5300 5 is_stmt 1 view .LVU4197 5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11930 .loc 1 5300 14 is_stmt 0 view .LVU4198 11931 00d4 638D ldrh r3, [r4, #42] 11932 00d6 9BB2 uxth r3, r3 5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11933 .loc 1 5300 8 view .LVU4199 11934 00d8 002B cmp r3, #0 11935 00da BAD1 bne .L743 5300:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (tmpoptions != I2C_NO_OPTION_FRAME)) 11936 .loc 1 5300 33 discriminator 1 view .LVU4200 11937 00dc 10F5803F cmn r0, #65536 11938 00e0 B7D0 beq .L743 5304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11939 .loc 1 5304 7 is_stmt 1 view .LVU4201 11940 00e2 2046 mov r0, r4 11941 .LVL854: 5304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11942 .loc 1 5304 7 is_stmt 0 view .LVU4202 11943 00e4 FFF7FEFF bl I2C_ITSlaveSeqCplt 11944 .LVL855: 5304:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11945 .loc 1 5304 7 view .LVU4203 11946 00e8 B3E7 b .L743 11947 .LVL856: 11948 .L748: 5307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11949 .loc 1 5307 8 is_stmt 1 view .LVU4204 5307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11950 .loc 1 5307 11 is_stmt 0 view .LVU4205 11951 00ea 11F0080F tst r1, #8 11952 00ee 02D0 beq .L750 5307:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 11953 .loc 1 5307 65 discriminator 1 view .LVU4206 11954 00f0 12F0080F tst r2, #8 11955 00f4 18D1 bne .L757 11956 .L750: 5312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11957 .loc 1 5312 8 is_stmt 1 view .LVU4207 5312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11958 .loc 1 5312 11 is_stmt 0 view .LVU4208 11959 00f6 11F0020F tst r1, #2 11960 00fa AAD0 beq .L743 5312:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 11961 .loc 1 5312 65 discriminator 1 view .LVU4209 11962 00fc 12F0020F tst r2, #2 11963 0100 A7D0 beq .L743 5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11964 .loc 1 5319 5 is_stmt 1 view .LVU4210 5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11965 .loc 1 5319 13 is_stmt 0 view .LVU4211 11966 0102 638D ldrh r3, [r4, #42] 11967 0104 9BB2 uxth r3, r3 5319:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 11968 .loc 1 5319 8 view .LVU4212 11969 0106 9BB1 cbz r3, .L751 5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 412 11970 .loc 1 5322 7 is_stmt 1 view .LVU4213 5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11971 .loc 1 5322 35 is_stmt 0 view .LVU4214 11972 0108 626A ldr r2, [r4, #36] 11973 .LVL857: 5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11974 .loc 1 5322 11 view .LVU4215 11975 010a 2368 ldr r3, [r4] 5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11976 .loc 1 5322 30 view .LVU4216 11977 010c 1278 ldrb r2, [r2] @ zero_extendqisi2 5322:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11978 .loc 1 5322 28 view .LVU4217 11979 010e 9A62 str r2, [r3, #40] 5325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11980 .loc 1 5325 7 is_stmt 1 view .LVU4218 5325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11981 .loc 1 5325 11 is_stmt 0 view .LVU4219 11982 0110 636A ldr r3, [r4, #36] 5325:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 11983 .loc 1 5325 21 view .LVU4220 11984 0112 0133 adds r3, r3, #1 11985 0114 6362 str r3, [r4, #36] 5327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 11986 .loc 1 5327 7 is_stmt 1 view .LVU4221 5327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 11987 .loc 1 5327 11 is_stmt 0 view .LVU4222 11988 0116 638D ldrh r3, [r4, #42] 11989 0118 9BB2 uxth r3, r3 5327:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize--; 11990 .loc 1 5327 22 view .LVU4223 11991 011a 013B subs r3, r3, #1 11992 011c 9BB2 uxth r3, r3 11993 011e 6385 strh r3, [r4, #42] @ movhi 5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11994 .loc 1 5328 7 is_stmt 1 view .LVU4224 5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11995 .loc 1 5328 11 is_stmt 0 view .LVU4225 11996 0120 238D ldrh r3, [r4, #40] 5328:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 11997 .loc 1 5328 21 view .LVU4226 11998 0122 013B subs r3, r3, #1 11999 0124 2385 strh r3, [r4, #40] @ movhi 12000 0126 94E7 b .L743 12001 .LVL858: 12002 .L757: 5310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12003 .loc 1 5310 5 is_stmt 1 view .LVU4227 12004 0128 2046 mov r0, r4 12005 .LVL859: 5310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12006 .loc 1 5310 5 is_stmt 0 view .LVU4228 12007 012a FFF7FEFF bl I2C_ITAddrCplt 12008 .LVL860: 5310:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12009 .loc 1 5310 5 view .LVU4229 12010 012e 90E7 b .L743 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 413 12011 .LVL861: 12012 .L751: 5332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12013 .loc 1 5332 7 is_stmt 1 view .LVU4230 5332:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12014 .loc 1 5332 10 is_stmt 0 view .LVU4231 12015 0130 0028 cmp r0, #0 12016 0132 18BF it ne 12017 0134 B0F1807F cmpne r0, #16777216 12018 0138 8BD1 bne .L743 5336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12019 .loc 1 5336 9 is_stmt 1 view .LVU4232 12020 013a 2046 mov r0, r4 12021 .LVL862: 5336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12022 .loc 1 5336 9 is_stmt 0 view .LVU4233 12023 013c FFF7FEFF bl I2C_ITSlaveSeqCplt 12024 .LVL863: 5336:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12025 .loc 1 5336 9 view .LVU4234 12026 0140 87E7 b .L743 12027 .LVL864: 12028 .L752: 5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12029 .loc 1 5226 3 discriminator 1 view .LVU4235 12030 0142 0220 movs r0, #2 12031 .LVL865: 5226:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12032 .loc 1 5226 3 discriminator 1 view .LVU4236 12033 0144 88E7 b .L741 12034 .cfi_endproc 12035 .LFE386: 12037 .section .text.I2C_ITMasterCplt,"ax",%progbits 12038 .align 1 12039 .syntax unified 12040 .thumb 12041 .thumb_func 12043 I2C_ITMasterCplt: 12044 .LVL866: 12045 .LFB395: 6118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 12046 .loc 1 6118 1 is_stmt 1 view -0 12047 .cfi_startproc 12048 @ args = 0, pretend = 0, frame = 8 12049 @ frame_needed = 0, uses_anonymous_args = 0 6118:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 12050 .loc 1 6118 1 is_stmt 0 view .LVU4238 12051 0000 30B5 push {r4, r5, lr} 12052 .cfi_def_cfa_offset 12 12053 .cfi_offset 4, -12 12054 .cfi_offset 5, -8 12055 .cfi_offset 14, -4 12056 0002 83B0 sub sp, sp, #12 12057 .cfi_def_cfa_offset 24 12058 0004 0446 mov r4, r0 12059 0006 0D46 mov r5, r1 6119:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 414 12060 .loc 1 6119 3 is_stmt 1 view .LVU4239 6120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** __IO uint32_t tmpreg; 12061 .loc 1 6120 3 view .LVU4240 12062 .LVL867: 6121:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12063 .loc 1 6121 3 view .LVU4241 6124:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12064 .loc 1 6124 3 view .LVU4242 12065 0008 0368 ldr r3, [r0] 12066 000a 2022 movs r2, #32 12067 000c DA61 str r2, [r3, #28] 6127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12068 .loc 1 6127 3 view .LVU4243 6127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12069 .loc 1 6127 11 is_stmt 0 view .LVU4244 12070 000e 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6127:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12071 .loc 1 6127 6 view .LVU4245 12072 0012 212B cmp r3, #33 12073 0014 30D0 beq .L770 6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12074 .loc 1 6132 8 is_stmt 1 view .LVU4246 6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12075 .loc 1 6132 16 is_stmt 0 view .LVU4247 12076 0016 90F84130 ldrb r3, [r0, #65] @ zero_extendqisi2 6132:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12077 .loc 1 6132 11 view .LVU4248 12078 001a 222B cmp r3, #34 12079 001c 32D0 beq .L771 12080 .LVL868: 12081 .L760: 6140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12082 .loc 1 6140 3 is_stmt 1 view .LVU4249 6143:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12083 .loc 1 6143 3 view .LVU4250 12084 001e 2268 ldr r2, [r4] 12085 0020 5368 ldr r3, [r2, #4] 12086 0022 23F0FF73 bic r3, r3, #33423360 12087 0026 23F48B33 bic r3, r3, #71168 12088 002a 23F4FF73 bic r3, r3, #510 12089 002e 23F00103 bic r3, r3, #1 12090 0032 5360 str r3, [r2, #4] 6146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 12091 .loc 1 6146 3 view .LVU4251 6146:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions = I2C_NO_OPTION_FRAME; 12092 .loc 1 6146 23 is_stmt 0 view .LVU4252 12093 0034 0023 movs r3, #0 12094 0036 6363 str r3, [r4, #52] 6147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12095 .loc 1 6147 3 is_stmt 1 view .LVU4253 6147:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12096 .loc 1 6147 23 is_stmt 0 view .LVU4254 12097 0038 A3F58033 sub r3, r3, #65536 12098 003c E362 str r3, [r4, #44] 6149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12099 .loc 1 6149 3 is_stmt 1 view .LVU4255 6149:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 415 12100 .loc 1 6149 6 is_stmt 0 view .LVU4256 12101 003e 15F0100F tst r5, #16 12102 0042 06D0 beq .L761 6152:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12103 .loc 1 6152 5 is_stmt 1 view .LVU4257 12104 0044 2368 ldr r3, [r4] 12105 0046 1022 movs r2, #16 12106 0048 DA61 str r2, [r3, #28] 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12107 .loc 1 6155 5 view .LVU4258 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12108 .loc 1 6155 9 is_stmt 0 view .LVU4259 12109 004a 636C ldr r3, [r4, #68] 6155:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12110 .loc 1 6155 21 view .LVU4260 12111 004c 43F00403 orr r3, r3, #4 12112 0050 6364 str r3, [r4, #68] 12113 .L761: 6159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12114 .loc 1 6159 3 is_stmt 1 view .LVU4261 6159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12115 .loc 1 6159 12 is_stmt 0 view .LVU4262 12116 0052 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12117 .loc 1 6159 6 view .LVU4263 12118 0056 602B cmp r3, #96 12119 0058 1AD0 beq .L772 12120 .L762: 6167:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12121 .loc 1 6167 3 is_stmt 1 view .LVU4264 12122 005a 2046 mov r0, r4 12123 005c FFF7FEFF bl I2C_Flush_TXDR 12124 .LVL869: 6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12125 .loc 1 6170 3 view .LVU4265 6170:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12126 .loc 1 6170 12 is_stmt 0 view .LVU4266 12127 0060 626C ldr r2, [r4, #68] 12128 .LVL870: 6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12129 .loc 1 6173 3 is_stmt 1 view .LVU4267 6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12130 .loc 1 6173 12 is_stmt 0 view .LVU4268 12131 0062 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12132 .loc 1 6173 6 view .LVU4269 12133 0066 602B cmp r3, #96 12134 0068 00D0 beq .L763 6173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12135 .loc 1 6173 44 discriminator 1 view .LVU4270 12136 006a D2B1 cbz r2, .L764 12137 .L763: 6176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12138 .loc 1 6176 5 is_stmt 1 view .LVU4271 6176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12139 .loc 1 6176 27 is_stmt 0 view .LVU4272 12140 006c 616C ldr r1, [r4, #68] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 416 6176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12141 .loc 1 6176 5 view .LVU4273 12142 006e 2046 mov r0, r4 12143 0070 FFF7FEFF bl I2C_ITError 12144 .LVL871: 12145 .L758: 6252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12146 .loc 1 6252 1 view .LVU4274 12147 0074 03B0 add sp, sp, #12 12148 .cfi_remember_state 12149 .cfi_def_cfa_offset 12 12150 @ sp needed 12151 0076 30BD pop {r4, r5, pc} 12152 .LVL872: 12153 .L770: 12154 .cfi_restore_state 6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12155 .loc 1 6129 5 is_stmt 1 view .LVU4275 12156 0078 0121 movs r1, #1 12157 .LVL873: 6129:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; 12158 .loc 1 6129 5 is_stmt 0 view .LVU4276 12159 007a FFF7FEFF bl I2C_Disable_IRQ 12160 .LVL874: 6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12161 .loc 1 6130 5 is_stmt 1 view .LVU4277 6130:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12162 .loc 1 6130 25 is_stmt 0 view .LVU4278 12163 007e 1123 movs r3, #17 12164 0080 2363 str r3, [r4, #48] 12165 0082 CCE7 b .L760 12166 .LVL875: 12167 .L771: 6134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12168 .loc 1 6134 5 is_stmt 1 view .LVU4279 12169 0084 0221 movs r1, #2 12170 .LVL876: 6134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_MASTER_BUSY_RX; 12171 .loc 1 6134 5 is_stmt 0 view .LVU4280 12172 0086 FFF7FEFF bl I2C_Disable_IRQ 12173 .LVL877: 6135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12174 .loc 1 6135 5 is_stmt 1 view .LVU4281 6135:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12175 .loc 1 6135 25 is_stmt 0 view .LVU4282 12176 008a 1223 movs r3, #18 12177 008c 2363 str r3, [r4, #48] 12178 008e C6E7 b .L760 12179 .L772: 6159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12180 .loc 1 6159 44 discriminator 1 view .LVU4283 12181 0090 15F0040F tst r5, #4 12182 0094 E1D0 beq .L762 6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 12183 .loc 1 6162 5 is_stmt 1 view .LVU4284 6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 12184 .loc 1 6162 27 is_stmt 0 view .LVU4285 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 417 12185 0096 2368 ldr r3, [r4] 6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 12186 .loc 1 6162 37 view .LVU4286 12187 0098 5B6A ldr r3, [r3, #36] 12188 009a DBB2 uxtb r3, r3 6162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** UNUSED(tmpreg); 12189 .loc 1 6162 12 view .LVU4287 12190 009c 0193 str r3, [sp, #4] 6163:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12191 .loc 1 6163 5 is_stmt 1 view .LVU4288 12192 009e 019B ldr r3, [sp, #4] 12193 00a0 DBE7 b .L762 12194 .LVL878: 12195 .L764: 6179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12196 .loc 1 6179 8 view .LVU4289 6179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12197 .loc 1 6179 16 is_stmt 0 view .LVU4290 12198 00a2 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6179:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12199 .loc 1 6179 11 view .LVU4291 12200 00a6 212B cmp r3, #33 12201 00a8 15D0 beq .L773 6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12202 .loc 1 6214 8 is_stmt 1 view .LVU4292 6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12203 .loc 1 6214 16 is_stmt 0 view .LVU4293 12204 00aa 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 6214:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12205 .loc 1 6214 11 view .LVU4294 12206 00ae 222B cmp r3, #34 12207 00b0 E0D1 bne .L758 6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12208 .loc 1 6216 5 is_stmt 1 view .LVU4295 6216:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12209 .loc 1 6216 17 is_stmt 0 view .LVU4296 12210 00b2 2023 movs r3, #32 12211 00b4 84F84130 strb r3, [r4, #65] 6217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12212 .loc 1 6217 5 is_stmt 1 view .LVU4297 6217:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12213 .loc 1 6217 25 is_stmt 0 view .LVU4298 12214 00b8 0023 movs r3, #0 12215 00ba 2363 str r3, [r4, #48] 6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12216 .loc 1 6219 5 is_stmt 1 view .LVU4299 6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12217 .loc 1 6219 13 is_stmt 0 view .LVU4300 12218 00bc 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 6219:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12219 .loc 1 6219 8 view .LVU4301 12220 00c0 402B cmp r3, #64 12221 00c2 23D0 beq .L774 6235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12222 .loc 1 6235 7 is_stmt 1 view .LVU4302 6235:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12223 .loc 1 6235 18 is_stmt 0 view .LVU4303 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 418 12224 00c4 0023 movs r3, #0 12225 00c6 84F84230 strb r3, [r4, #66] 6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12226 .loc 1 6238 7 is_stmt 1 view .LVU4304 6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12227 .loc 1 6238 7 view .LVU4305 12228 00ca 84F84030 strb r3, [r4, #64] 6238:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12229 .loc 1 6238 7 view .LVU4306 6244:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12230 .loc 1 6244 7 view .LVU4307 12231 00ce 2046 mov r0, r4 12232 00d0 FFF7FEFF bl HAL_I2C_MasterRxCpltCallback 12233 .LVL879: 6251:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12234 .loc 1 6251 3 view .LVU4308 6252:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12235 .loc 1 6252 1 is_stmt 0 view .LVU4309 12236 00d4 CEE7 b .L758 12237 .LVL880: 12238 .L773: 6181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12239 .loc 1 6181 5 is_stmt 1 view .LVU4310 6181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->PreviousState = I2C_STATE_NONE; 12240 .loc 1 6181 17 is_stmt 0 view .LVU4311 12241 00d6 2023 movs r3, #32 12242 00d8 84F84130 strb r3, [r4, #65] 6182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12243 .loc 1 6182 5 is_stmt 1 view .LVU4312 6182:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12244 .loc 1 6182 25 is_stmt 0 view .LVU4313 12245 00dc 0023 movs r3, #0 12246 00de 2363 str r3, [r4, #48] 6184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12247 .loc 1 6184 5 is_stmt 1 view .LVU4314 6184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12248 .loc 1 6184 13 is_stmt 0 view .LVU4315 12249 00e0 94F84230 ldrb r3, [r4, #66] @ zero_extendqisi2 6184:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12250 .loc 1 6184 8 view .LVU4316 12251 00e4 402B cmp r3, #64 12252 00e6 08D0 beq .L775 6200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12253 .loc 1 6200 7 is_stmt 1 view .LVU4317 6200:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12254 .loc 1 6200 18 is_stmt 0 view .LVU4318 12255 00e8 0023 movs r3, #0 12256 00ea 84F84230 strb r3, [r4, #66] 6203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12257 .loc 1 6203 7 is_stmt 1 view .LVU4319 6203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12258 .loc 1 6203 7 view .LVU4320 12259 00ee 84F84030 strb r3, [r4, #64] 6203:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12260 .loc 1 6203 7 view .LVU4321 6209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12261 .loc 1 6209 7 view .LVU4322 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 419 12262 00f2 2046 mov r0, r4 12263 00f4 FFF7FEFF bl HAL_I2C_MasterTxCpltCallback 12264 .LVL881: 6209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12265 .loc 1 6209 7 is_stmt 0 view .LVU4323 12266 00f8 BCE7 b .L758 12267 .LVL882: 12268 .L775: 6186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12269 .loc 1 6186 7 is_stmt 1 view .LVU4324 6186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12270 .loc 1 6186 18 is_stmt 0 view .LVU4325 12271 00fa 0023 movs r3, #0 12272 00fc 84F84230 strb r3, [r4, #66] 6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12273 .loc 1 6189 7 is_stmt 1 view .LVU4326 6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12274 .loc 1 6189 7 view .LVU4327 12275 0100 84F84030 strb r3, [r4, #64] 6189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12276 .loc 1 6189 7 view .LVU4328 6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12277 .loc 1 6195 7 view .LVU4329 12278 0104 2046 mov r0, r4 12279 0106 FFF7FEFF bl HAL_I2C_MemTxCpltCallback 12280 .LVL883: 6195:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12281 .loc 1 6195 7 is_stmt 0 view .LVU4330 12282 010a B3E7 b .L758 12283 .LVL884: 12284 .L774: 6221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12285 .loc 1 6221 7 is_stmt 1 view .LVU4331 6221:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12286 .loc 1 6221 18 is_stmt 0 view .LVU4332 12287 010c 0023 movs r3, #0 12288 010e 84F84230 strb r3, [r4, #66] 6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12289 .loc 1 6224 7 is_stmt 1 view .LVU4333 6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12290 .loc 1 6224 7 view .LVU4334 12291 0112 84F84030 strb r3, [r4, #64] 6224:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12292 .loc 1 6224 7 view .LVU4335 6230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12293 .loc 1 6230 7 view .LVU4336 12294 0116 2046 mov r0, r4 12295 0118 FFF7FEFF bl HAL_I2C_MemRxCpltCallback 12296 .LVL885: 6230:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** #endif /* USE_HAL_I2C_REGISTER_CALLBACKS */ 12297 .loc 1 6230 7 is_stmt 0 view .LVU4337 12298 011c AAE7 b .L758 12299 .cfi_endproc 12300 .LFE395: 12302 .section .text.I2C_Master_ISR_IT,"ax",%progbits 12303 .align 1 12304 .syntax unified ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 420 12305 .thumb 12306 .thumb_func 12308 I2C_Master_ISR_IT: 12309 .LVL886: 12310 .LFB384: 4927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 12311 .loc 1 4927 1 is_stmt 1 view -0 12312 .cfi_startproc 12313 @ args = 0, pretend = 0, frame = 0 12314 @ frame_needed = 0, uses_anonymous_args = 0 4928:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 12315 .loc 1 4928 3 view .LVU4339 4929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12316 .loc 1 4929 3 view .LVU4340 4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12317 .loc 1 4932 3 view .LVU4341 4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12318 .loc 1 4932 3 view .LVU4342 12319 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12320 0004 012B cmp r3, #1 12321 0006 00F0C280 beq .L790 4927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 12322 .loc 1 4927 1 is_stmt 0 view .LVU4343 12323 000a 70B5 push {r4, r5, r6, lr} 12324 .cfi_def_cfa_offset 16 12325 .cfi_offset 4, -16 12326 .cfi_offset 5, -12 12327 .cfi_offset 6, -8 12328 .cfi_offset 14, -4 12329 000c 82B0 sub sp, sp, #8 12330 .cfi_def_cfa_offset 24 12331 000e 0446 mov r4, r0 12332 0010 0D46 mov r5, r1 12333 0012 1646 mov r6, r2 4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12334 .loc 1 4932 3 is_stmt 1 discriminator 2 view .LVU4344 12335 0014 0123 movs r3, #1 12336 0016 80F84030 strb r3, [r0, #64] 4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12337 .loc 1 4932 3 view .LVU4345 4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12338 .loc 1 4934 3 view .LVU4346 4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12339 .loc 1 4934 6 is_stmt 0 view .LVU4347 12340 001a 11F0100F tst r1, #16 12341 001e 02D0 beq .L778 4934:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12342 .loc 1 4934 58 discriminator 1 view .LVU4348 12343 0020 12F0100F tst r2, #16 12344 0024 22D1 bne .L795 12345 .L778: 4948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12346 .loc 1 4948 8 is_stmt 1 view .LVU4349 4948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12347 .loc 1 4948 11 is_stmt 0 view .LVU4350 12348 0026 15F0040F tst r5, #4 12349 002a 29D0 beq .L780 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 421 4948:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 12350 .loc 1 4948 65 discriminator 1 view .LVU4351 12351 002c 16F0040F tst r6, #4 12352 0030 26D0 beq .L780 4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12353 .loc 1 4952 5 is_stmt 1 view .LVU4352 4952:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12354 .loc 1 4952 16 is_stmt 0 view .LVU4353 12355 0032 25F00405 bic r5, r5, #4 12356 .LVL887: 4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12357 .loc 1 4955 5 is_stmt 1 view .LVU4354 4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12358 .loc 1 4955 36 is_stmt 0 view .LVU4355 12359 0036 2368 ldr r3, [r4] 4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12360 .loc 1 4955 46 view .LVU4356 12361 0038 5A6A ldr r2, [r3, #36] 12362 .LVL888: 4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12363 .loc 1 4955 10 view .LVU4357 12364 003a 636A ldr r3, [r4, #36] 4955:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12365 .loc 1 4955 21 view .LVU4358 12366 003c 1A70 strb r2, [r3] 4958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12367 .loc 1 4958 5 is_stmt 1 view .LVU4359 4958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12368 .loc 1 4958 9 is_stmt 0 view .LVU4360 12369 003e 636A ldr r3, [r4, #36] 4958:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12370 .loc 1 4958 19 view .LVU4361 12371 0040 0133 adds r3, r3, #1 12372 0042 6362 str r3, [r4, #36] 4960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 12373 .loc 1 4960 5 is_stmt 1 view .LVU4362 4960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 12374 .loc 1 4960 9 is_stmt 0 view .LVU4363 12375 0044 238D ldrh r3, [r4, #40] 4960:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 12376 .loc 1 4960 19 view .LVU4364 12377 0046 013B subs r3, r3, #1 12378 0048 2385 strh r3, [r4, #40] @ movhi 4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12379 .loc 1 4961 5 is_stmt 1 view .LVU4365 4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12380 .loc 1 4961 9 is_stmt 0 view .LVU4366 12381 004a 638D ldrh r3, [r4, #42] 12382 004c 9BB2 uxth r3, r3 4961:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12383 .loc 1 4961 20 view .LVU4367 12384 004e 013B subs r3, r3, #1 12385 0050 9BB2 uxth r3, r3 12386 0052 6385 strh r3, [r4, #42] @ movhi 12387 .LVL889: 12388 .L779: 5053:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 422 12389 .loc 1 5053 3 is_stmt 1 view .LVU4368 5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12390 .loc 1 5055 3 view .LVU4369 5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12391 .loc 1 5055 6 is_stmt 0 view .LVU4370 12392 0054 15F0200F tst r5, #32 12393 0058 03D0 beq .L789 5055:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12394 .loc 1 5055 61 discriminator 1 view .LVU4371 12395 005a 16F0200F tst r6, #32 12396 005e 40F09180 bne .L796 12397 .L789: 5063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12398 .loc 1 5063 3 is_stmt 1 view .LVU4372 5063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12399 .loc 1 5063 3 view .LVU4373 12400 0062 0020 movs r0, #0 12401 0064 84F84000 strb r0, [r4, #64] 5063:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12402 .loc 1 5063 3 view .LVU4374 5065:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12403 .loc 1 5065 3 view .LVU4375 5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12404 .loc 1 5066 1 is_stmt 0 view .LVU4376 12405 0068 02B0 add sp, sp, #8 12406 .cfi_remember_state 12407 .cfi_def_cfa_offset 16 12408 @ sp needed 12409 006a 70BD pop {r4, r5, r6, pc} 12410 .LVL890: 12411 .L795: 12412 .cfi_restore_state 4938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12413 .loc 1 4938 5 is_stmt 1 view .LVU4377 12414 006c 0368 ldr r3, [r0] 12415 006e 1022 movs r2, #16 12416 .LVL891: 4938:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12417 .loc 1 4938 5 is_stmt 0 view .LVU4378 12418 0070 DA61 str r2, [r3, #28] 4943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12419 .loc 1 4943 5 is_stmt 1 view .LVU4379 4943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12420 .loc 1 4943 9 is_stmt 0 view .LVU4380 12421 0072 436C ldr r3, [r0, #68] 4943:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12422 .loc 1 4943 21 view .LVU4381 12423 0074 43F00403 orr r3, r3, #4 12424 0078 4364 str r3, [r0, #68] 4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12425 .loc 1 4946 5 is_stmt 1 view .LVU4382 12426 007a FFF7FEFF bl I2C_Flush_TXDR 12427 .LVL892: 4946:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12428 .loc 1 4946 5 is_stmt 0 view .LVU4383 12429 007e E9E7 b .L779 12430 .LVL893: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 423 12431 .L780: 4963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12432 .loc 1 4963 8 is_stmt 1 view .LVU4384 12433 0080 C5F38013 ubfx r3, r5, #6, #1 4963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12434 .loc 1 4963 11 is_stmt 0 view .LVU4385 12435 0084 15F0400F tst r5, #64 12436 0088 19D1 bne .L781 4963:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ((I2C_CHECK_FLAG(tmpITFlags, I2C_FLAG_TXIS) != RESET) && \ 12437 .loc 1 4963 63 discriminator 1 view .LVU4386 12438 008a 15F0020F tst r5, #2 12439 008e 16D0 beq .L781 4964:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET))) 12440 .loc 1 4964 66 view .LVU4387 12441 0090 16F0020F tst r6, #2 12442 0094 13D0 beq .L781 4968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12443 .loc 1 4968 5 is_stmt 1 view .LVU4388 4968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12444 .loc 1 4968 13 is_stmt 0 view .LVU4389 12445 0096 638D ldrh r3, [r4, #42] 12446 0098 9BB2 uxth r3, r3 4968:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12447 .loc 1 4968 8 view .LVU4390 12448 009a 002B cmp r3, #0 12449 009c DAD0 beq .L779 4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12450 .loc 1 4971 7 is_stmt 1 view .LVU4391 4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12451 .loc 1 4971 35 is_stmt 0 view .LVU4392 12452 009e 626A ldr r2, [r4, #36] 12453 .LVL894: 4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12454 .loc 1 4971 11 view .LVU4393 12455 00a0 2368 ldr r3, [r4] 4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12456 .loc 1 4971 30 view .LVU4394 12457 00a2 1278 ldrb r2, [r2] @ zero_extendqisi2 4971:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12458 .loc 1 4971 28 view .LVU4395 12459 00a4 9A62 str r2, [r3, #40] 4974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12460 .loc 1 4974 7 is_stmt 1 view .LVU4396 4974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12461 .loc 1 4974 11 is_stmt 0 view .LVU4397 12462 00a6 636A ldr r3, [r4, #36] 4974:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12463 .loc 1 4974 21 view .LVU4398 12464 00a8 0133 adds r3, r3, #1 12465 00aa 6362 str r3, [r4, #36] 4976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 12466 .loc 1 4976 7 is_stmt 1 view .LVU4399 4976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 12467 .loc 1 4976 11 is_stmt 0 view .LVU4400 12468 00ac 238D ldrh r3, [r4, #40] 4976:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 12469 .loc 1 4976 21 view .LVU4401 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 424 12470 00ae 013B subs r3, r3, #1 12471 00b0 2385 strh r3, [r4, #40] @ movhi 4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12472 .loc 1 4977 7 is_stmt 1 view .LVU4402 4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12473 .loc 1 4977 11 is_stmt 0 view .LVU4403 12474 00b2 638D ldrh r3, [r4, #42] 12475 00b4 9BB2 uxth r3, r3 4977:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12476 .loc 1 4977 22 view .LVU4404 12477 00b6 013B subs r3, r3, #1 12478 00b8 9BB2 uxth r3, r3 12479 00ba 6385 strh r3, [r4, #42] @ movhi 12480 00bc CAE7 b .L779 12481 .LVL895: 12482 .L781: 4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12483 .loc 1 4980 8 is_stmt 1 view .LVU4405 4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12484 .loc 1 4980 11 is_stmt 0 view .LVU4406 12485 00be 15F0800F tst r5, #128 12486 00c2 3FD0 beq .L782 4980:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12487 .loc 1 4980 64 discriminator 1 view .LVU4407 12488 00c4 16F0400F tst r6, #64 12489 00c8 3CD0 beq .L782 4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12490 .loc 1 4983 5 is_stmt 1 view .LVU4408 4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12491 .loc 1 4983 14 is_stmt 0 view .LVU4409 12492 00ca 638D ldrh r3, [r4, #42] 12493 00cc 9BB2 uxth r3, r3 4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12494 .loc 1 4983 8 view .LVU4410 12495 00ce 5BB3 cbz r3, .L783 4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12496 .loc 1 4983 41 discriminator 1 view .LVU4411 12497 00d0 238D ldrh r3, [r4, #40] 4983:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12498 .loc 1 4983 33 discriminator 1 view .LVU4412 12499 00d2 4BBB cbnz r3, .L783 4985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12500 .loc 1 4985 7 is_stmt 1 view .LVU4413 4985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12501 .loc 1 4985 35 is_stmt 0 view .LVU4414 12502 00d4 2368 ldr r3, [r4] 4985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12503 .loc 1 4985 45 view .LVU4415 12504 00d6 5968 ldr r1, [r3, #4] 12505 .LVL896: 4985:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12506 .loc 1 4985 18 view .LVU4416 12507 00d8 C1F30901 ubfx r1, r1, #0, #10 12508 .LVL897: 4987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12509 .loc 1 4987 7 is_stmt 1 view .LVU4417 4987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 425 12510 .loc 1 4987 15 is_stmt 0 view .LVU4418 12511 00dc 638D ldrh r3, [r4, #42] 12512 00de 9BB2 uxth r3, r3 4987:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12513 .loc 1 4987 10 view .LVU4419 12514 00e0 FF2B cmp r3, #255 12515 00e2 0ED8 bhi .L797 4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12516 .loc 1 4994 9 is_stmt 1 view .LVU4420 4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12517 .loc 1 4994 30 is_stmt 0 view .LVU4421 12518 00e4 628D ldrh r2, [r4, #42] 12519 .LVL898: 4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12520 .loc 1 4994 30 view .LVU4422 12521 00e6 92B2 uxth r2, r2 4994:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 12522 .loc 1 4994 24 view .LVU4423 12523 00e8 2285 strh r2, [r4, #40] @ movhi 4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12524 .loc 1 4995 9 is_stmt 1 view .LVU4424 4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12525 .loc 1 4995 17 is_stmt 0 view .LVU4425 12526 00ea E36A ldr r3, [r4, #44] 4995:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12527 .loc 1 4995 12 view .LVU4426 12528 00ec 13F5803F cmn r3, #65536 12529 00f0 11D0 beq .L785 4997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12530 .loc 1 4997 11 is_stmt 1 view .LVU4427 4998:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12531 .loc 1 4998 34 is_stmt 0 view .LVU4428 12532 00f2 E36A ldr r3, [r4, #44] 4997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12533 .loc 1 4997 11 view .LVU4429 12534 00f4 0020 movs r0, #0 12535 .LVL899: 4997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12536 .loc 1 4997 11 view .LVU4430 12537 00f6 0090 str r0, [sp] 12538 00f8 D2B2 uxtb r2, r2 12539 00fa 2046 mov r0, r4 12540 00fc FFF7FEFF bl I2C_TransferConfig 12541 .LVL900: 4997:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferOptions, I2C_NO_STARTSTOP); 12542 .loc 1 4997 11 view .LVU4431 12543 0100 A8E7 b .L779 12544 .LVL901: 12545 .L797: 4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 12546 .loc 1 4989 9 is_stmt 1 view .LVU4432 4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 12547 .loc 1 4989 24 is_stmt 0 view .LVU4433 12548 0102 FF22 movs r2, #255 12549 .LVL902: 4989:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, devaddress, (uint8_t)hi2c->XferSize, I2C_RELOAD_MODE, I2C_NO_START 12550 .loc 1 4989 24 view .LVU4434 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 426 12551 0104 2285 strh r2, [r4, #40] @ movhi 4990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12552 .loc 1 4990 9 is_stmt 1 view .LVU4435 12553 0106 0023 movs r3, #0 12554 0108 0093 str r3, [sp] 12555 010a 4FF08073 mov r3, #16777216 12556 010e 2046 mov r0, r4 12557 .LVL903: 4990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12558 .loc 1 4990 9 is_stmt 0 view .LVU4436 12559 0110 FFF7FEFF bl I2C_TransferConfig 12560 .LVL904: 4990:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12561 .loc 1 4990 9 view .LVU4437 12562 0114 9EE7 b .L779 12563 .LVL905: 12564 .L785: 5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12565 .loc 1 5002 11 is_stmt 1 view .LVU4438 12566 0116 0023 movs r3, #0 12567 0118 0093 str r3, [sp] 12568 011a 4FF00073 mov r3, #33554432 12569 011e D2B2 uxtb r2, r2 12570 0120 2046 mov r0, r4 12571 .LVL906: 5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12572 .loc 1 5002 11 is_stmt 0 view .LVU4439 12573 0122 FFF7FEFF bl I2C_TransferConfig 12574 .LVL907: 5002:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12575 .loc 1 5002 11 view .LVU4440 12576 0126 95E7 b .L779 12577 .LVL908: 12578 .L783: 5010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12579 .loc 1 5010 7 is_stmt 1 view .LVU4441 5010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12580 .loc 1 5010 11 is_stmt 0 view .LVU4442 12581 0128 2368 ldr r3, [r4] 12582 012a 5B68 ldr r3, [r3, #4] 5010:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12583 .loc 1 5010 10 view .LVU4443 12584 012c 13F0007F tst r3, #33554432 12585 0130 03D1 bne .L786 5013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12586 .loc 1 5013 9 is_stmt 1 view .LVU4444 12587 0132 2046 mov r0, r4 12588 .LVL909: 5013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12589 .loc 1 5013 9 is_stmt 0 view .LVU4445 12590 0134 FFF7FEFF bl I2C_ITMasterSeqCplt 12591 .LVL910: 5013:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12592 .loc 1 5013 9 view .LVU4446 12593 0138 8CE7 b .L779 12594 .LVL911: 12595 .L786: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 427 5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12596 .loc 1 5019 9 is_stmt 1 view .LVU4447 12597 013a 4021 movs r1, #64 12598 .LVL912: 5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12599 .loc 1 5019 9 is_stmt 0 view .LVU4448 12600 013c 2046 mov r0, r4 12601 .LVL913: 5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12602 .loc 1 5019 9 view .LVU4449 12603 013e FFF7FEFF bl I2C_ITError 12604 .LVL914: 5019:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12605 .loc 1 5019 9 view .LVU4450 12606 0142 87E7 b .L779 12607 .LVL915: 12608 .L782: 5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12609 .loc 1 5023 8 is_stmt 1 view .LVU4451 5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12610 .loc 1 5023 11 is_stmt 0 view .LVU4452 12611 0144 002B cmp r3, #0 12612 0146 85D0 beq .L779 5023:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12613 .loc 1 5023 63 discriminator 1 view .LVU4453 12614 0148 16F0400F tst r6, #64 12615 014c 82D0 beq .L779 5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12616 .loc 1 5026 5 is_stmt 1 view .LVU4454 5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12617 .loc 1 5026 13 is_stmt 0 view .LVU4455 12618 014e 638D ldrh r3, [r4, #42] 12619 0150 9BB2 uxth r3, r3 5026:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12620 .loc 1 5026 8 view .LVU4456 12621 0152 93B9 cbnz r3, .L787 5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12622 .loc 1 5028 7 is_stmt 1 view .LVU4457 5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12623 .loc 1 5028 11 is_stmt 0 view .LVU4458 12624 0154 2368 ldr r3, [r4] 12625 0156 5A68 ldr r2, [r3, #4] 12626 .LVL916: 5028:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12627 .loc 1 5028 10 view .LVU4459 12628 0158 12F0007F tst r2, #33554432 12629 015c 7FF47AAF bne .L779 5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12630 .loc 1 5031 9 is_stmt 1 view .LVU4460 5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12631 .loc 1 5031 17 is_stmt 0 view .LVU4461 12632 0160 E26A ldr r2, [r4, #44] 5031:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12633 .loc 1 5031 12 view .LVU4462 12634 0162 12F5803F cmn r2, #65536 12635 0166 04D1 bne .L788 5034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 428 12636 .loc 1 5034 11 is_stmt 1 view .LVU4463 5034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12637 .loc 1 5034 25 is_stmt 0 view .LVU4464 12638 0168 5A68 ldr r2, [r3, #4] 5034:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12639 .loc 1 5034 31 view .LVU4465 12640 016a 42F48042 orr r2, r2, #16384 12641 016e 5A60 str r2, [r3, #4] 12642 0170 70E7 b .L779 12643 .L788: 5039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12644 .loc 1 5039 11 is_stmt 1 view .LVU4466 12645 0172 2046 mov r0, r4 12646 .LVL917: 5039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12647 .loc 1 5039 11 is_stmt 0 view .LVU4467 12648 0174 FFF7FEFF bl I2C_ITMasterSeqCplt 12649 .LVL918: 5039:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12650 .loc 1 5039 11 view .LVU4468 12651 0178 6CE7 b .L779 12652 .LVL919: 12653 .L787: 5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12654 .loc 1 5047 7 is_stmt 1 view .LVU4469 12655 017a 4021 movs r1, #64 12656 .LVL920: 5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12657 .loc 1 5047 7 is_stmt 0 view .LVU4470 12658 017c 2046 mov r0, r4 12659 .LVL921: 5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12660 .loc 1 5047 7 view .LVU4471 12661 017e FFF7FEFF bl I2C_ITError 12662 .LVL922: 5047:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12663 .loc 1 5047 7 view .LVU4472 12664 0182 67E7 b .L779 12665 .LVL923: 12666 .L796: 5059:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12667 .loc 1 5059 5 is_stmt 1 view .LVU4473 12668 0184 2946 mov r1, r5 12669 0186 2046 mov r0, r4 12670 0188 FFF7FEFF bl I2C_ITMasterCplt 12671 .LVL924: 12672 018c 69E7 b .L789 12673 .LVL925: 12674 .L790: 12675 .cfi_def_cfa_offset 0 12676 .cfi_restore 4 12677 .cfi_restore 5 12678 .cfi_restore 6 12679 .cfi_restore 14 4932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12680 .loc 1 4932 3 is_stmt 0 discriminator 1 view .LVU4474 12681 018e 0220 movs r0, #2 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 429 12682 .LVL926: 5066:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12683 .loc 1 5066 1 view .LVU4475 12684 0190 7047 bx lr 12685 .cfi_endproc 12686 .LFE384: 12688 .section .text.I2C_Mem_ISR_DMA,"ax",%progbits 12689 .align 1 12690 .syntax unified 12691 .thumb 12692 .thumb_func 12694 I2C_Mem_ISR_DMA: 12695 .LVL927: 12696 .LFB388: 5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 12697 .loc 1 5501 1 is_stmt 1 view -0 12698 .cfi_startproc 12699 @ args = 0, pretend = 0, frame = 0 12700 @ frame_needed = 0, uses_anonymous_args = 0 5502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12701 .loc 1 5502 3 view .LVU4477 5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12702 .loc 1 5505 3 view .LVU4478 5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12703 .loc 1 5505 3 view .LVU4479 12704 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 12705 0004 012B cmp r3, #1 12706 0006 00F0C580 beq .L813 5501:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 12707 .loc 1 5501 1 is_stmt 0 view .LVU4480 12708 000a 10B5 push {r4, lr} 12709 .cfi_def_cfa_offset 8 12710 .cfi_offset 4, -8 12711 .cfi_offset 14, -4 12712 000c 82B0 sub sp, sp, #8 12713 .cfi_def_cfa_offset 16 12714 000e 0446 mov r4, r0 5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12715 .loc 1 5505 3 is_stmt 1 discriminator 2 view .LVU4481 12716 0010 0123 movs r3, #1 12717 0012 80F84030 strb r3, [r0, #64] 5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12718 .loc 1 5505 3 view .LVU4482 5507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12719 .loc 1 5507 3 view .LVU4483 5507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12720 .loc 1 5507 6 is_stmt 0 view .LVU4484 12721 0016 11F0100F tst r1, #16 12722 001a 02D0 beq .L800 5507:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 12723 .loc 1 5507 55 discriminator 1 view .LVU4485 12724 001c 12F0100F tst r2, #16 12725 0020 10D1 bne .L819 12726 .L800: 5524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12727 .loc 1 5524 8 is_stmt 1 view .LVU4486 5524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 430 12728 .loc 1 5524 11 is_stmt 0 view .LVU4487 12729 0022 11F0020F tst r1, #2 12730 0026 1BD0 beq .L802 5524:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 12731 .loc 1 5524 62 discriminator 1 view .LVU4488 12732 0028 12F0020F tst r2, #2 12733 002c 18D0 beq .L802 5528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12734 .loc 1 5528 5 is_stmt 1 view .LVU4489 5528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12735 .loc 1 5528 9 is_stmt 0 view .LVU4490 12736 002e 2368 ldr r3, [r4] 5528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12737 .loc 1 5528 32 view .LVU4491 12738 0030 226D ldr r2, [r4, #80] 12739 .LVL928: 5528:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12740 .loc 1 5528 26 view .LVU4492 12741 0032 9A62 str r2, [r3, #40] 5531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12742 .loc 1 5531 5 is_stmt 1 view .LVU4493 5531:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12743 .loc 1 5531 22 is_stmt 0 view .LVU4494 12744 0034 4FF0FF33 mov r3, #-1 12745 0038 2365 str r3, [r4, #80] 12746 .LVL929: 12747 .L801: 5631:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12748 .loc 1 5631 3 is_stmt 1 view .LVU4495 5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12749 .loc 1 5634 3 view .LVU4496 5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12750 .loc 1 5634 3 view .LVU4497 12751 003a 0020 movs r0, #0 12752 003c 84F84000 strb r0, [r4, #64] 5634:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12753 .loc 1 5634 3 view .LVU4498 5636:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12754 .loc 1 5636 3 view .LVU4499 5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12755 .loc 1 5637 1 is_stmt 0 view .LVU4500 12756 0040 02B0 add sp, sp, #8 12757 .cfi_remember_state 12758 .cfi_def_cfa_offset 8 12759 @ sp needed 12760 0042 10BD pop {r4, pc} 12761 .LVL930: 12762 .L819: 12763 .cfi_restore_state 5511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12764 .loc 1 5511 5 is_stmt 1 view .LVU4501 12765 0044 0368 ldr r3, [r0] 12766 0046 1022 movs r2, #16 12767 .LVL931: 5511:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12768 .loc 1 5511 5 is_stmt 0 view .LVU4502 12769 0048 DA61 str r2, [r3, #28] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 431 5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12770 .loc 1 5514 5 is_stmt 1 view .LVU4503 5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12771 .loc 1 5514 9 is_stmt 0 view .LVU4504 12772 004a 436C ldr r3, [r0, #68] 5514:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12773 .loc 1 5514 21 view .LVU4505 12774 004c 43F00403 orr r3, r3, #4 12775 0050 4364 str r3, [r0, #68] 5519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12776 .loc 1 5519 5 is_stmt 1 view .LVU4506 12777 0052 2021 movs r1, #32 12778 .LVL932: 5519:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12779 .loc 1 5519 5 is_stmt 0 view .LVU4507 12780 0054 FFF7FEFF bl I2C_Enable_IRQ 12781 .LVL933: 5522:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12782 .loc 1 5522 5 is_stmt 1 view .LVU4508 12783 0058 2046 mov r0, r4 12784 005a FFF7FEFF bl I2C_Flush_TXDR 12785 .LVL934: 12786 005e ECE7 b .L801 12787 .LVL935: 12788 .L802: 5533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12789 .loc 1 5533 8 view .LVU4509 5533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12790 .loc 1 5533 11 is_stmt 0 view .LVU4510 12791 0060 11F0800F tst r1, #128 12792 0064 02D0 beq .L803 5533:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12793 .loc 1 5533 61 discriminator 1 view .LVU4511 12794 0066 12F0400F tst r2, #64 12795 006a 0FD1 bne .L820 12796 .L803: 5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12797 .loc 1 5578 8 is_stmt 1 view .LVU4512 5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12798 .loc 1 5578 11 is_stmt 0 view .LVU4513 12799 006c 11F0400F tst r1, #64 12800 0070 02D0 beq .L808 5578:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 12801 .loc 1 5578 60 discriminator 1 view .LVU4514 12802 0072 12F0400F tst r2, #64 12803 0076 4DD1 bne .L821 12804 .L808: 5622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12805 .loc 1 5622 8 is_stmt 1 view .LVU4515 5622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12806 .loc 1 5622 11 is_stmt 0 view .LVU4516 12807 0078 11F0200F tst r1, #32 12808 007c DDD0 beq .L801 5622:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 12809 .loc 1 5622 63 discriminator 1 view .LVU4517 12810 007e 12F0200F tst r2, #32 12811 0082 DAD0 beq .L801 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 432 5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12812 .loc 1 5626 5 is_stmt 1 view .LVU4518 12813 0084 2046 mov r0, r4 12814 .LVL936: 5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12815 .loc 1 5626 5 is_stmt 0 view .LVU4519 12816 0086 FFF7FEFF bl I2C_ITMasterCplt 12817 .LVL937: 5626:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12818 .loc 1 5626 5 view .LVU4520 12819 008a D6E7 b .L801 12820 .LVL938: 12821 .L820: 5537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12822 .loc 1 5537 5 is_stmt 1 view .LVU4521 12823 008c 0121 movs r1, #1 12824 .LVL939: 5537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12825 .loc 1 5537 5 is_stmt 0 view .LVU4522 12826 008e 2046 mov r0, r4 12827 .LVL940: 5537:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12828 .loc 1 5537 5 view .LVU4523 12829 0090 FFF7FEFF bl I2C_Disable_IRQ 12830 .LVL941: 5540:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12831 .loc 1 5540 5 is_stmt 1 view .LVU4524 12832 0094 1021 movs r1, #16 12833 0096 2046 mov r0, r4 12834 0098 FFF7FEFF bl I2C_Enable_IRQ 12835 .LVL942: 5542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12836 .loc 1 5542 5 view .LVU4525 5542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12837 .loc 1 5542 13 is_stmt 0 view .LVU4526 12838 009c 638D ldrh r3, [r4, #42] 12839 009e 9BB2 uxth r3, r3 5542:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12840 .loc 1 5542 8 view .LVU4527 12841 00a0 002B cmp r3, #0 12842 00a2 32D0 beq .L804 5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12843 .loc 1 5545 7 is_stmt 1 view .LVU4528 5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12844 .loc 1 5545 15 is_stmt 0 view .LVU4529 12845 00a4 638D ldrh r3, [r4, #42] 12846 00a6 9BB2 uxth r3, r3 5545:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12847 .loc 1 5545 10 view .LVU4530 12848 00a8 FF2B cmp r3, #255 12849 00aa 1AD9 bls .L805 5547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12850 .loc 1 5547 9 is_stmt 1 view .LVU4531 5547:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12851 .loc 1 5547 24 is_stmt 0 view .LVU4532 12852 00ac FF22 movs r2, #255 12853 00ae 2285 strh r2, [r4, #40] @ movhi ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 433 5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12854 .loc 1 5548 9 is_stmt 1 view .LVU4533 5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12855 .loc 1 5548 48 is_stmt 0 view .LVU4534 12856 00b0 E16C ldr r1, [r4, #76] 5548:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 12857 .loc 1 5548 9 view .LVU4535 12858 00b2 0023 movs r3, #0 12859 00b4 0093 str r3, [sp] 12860 00b6 4FF08073 mov r3, #16777216 12861 00ba 89B2 uxth r1, r1 12862 00bc 2046 mov r0, r4 12863 00be FFF7FEFF bl I2C_TransferConfig 12864 .LVL943: 12865 .L806: 5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12866 .loc 1 5559 7 is_stmt 1 view .LVU4536 5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12867 .loc 1 5559 11 is_stmt 0 view .LVU4537 12868 00c2 638D ldrh r3, [r4, #42] 12869 00c4 9BB2 uxth r3, r3 5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12870 .loc 1 5559 30 view .LVU4538 12871 00c6 228D ldrh r2, [r4, #40] 5559:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12872 .loc 1 5559 23 view .LVU4539 12873 00c8 9B1A subs r3, r3, r2 12874 00ca 9BB2 uxth r3, r3 12875 00cc 6385 strh r3, [r4, #42] @ movhi 5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12876 .loc 1 5562 7 is_stmt 1 view .LVU4540 5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12877 .loc 1 5562 15 is_stmt 0 view .LVU4541 12878 00ce 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5562:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12879 .loc 1 5562 10 view .LVU4542 12880 00d2 222B cmp r3, #34 12881 00d4 13D0 beq .L822 5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12882 .loc 1 5568 9 is_stmt 1 view .LVU4543 5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12883 .loc 1 5568 13 is_stmt 0 view .LVU4544 12884 00d6 2268 ldr r2, [r4] 5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12885 .loc 1 5568 23 view .LVU4545 12886 00d8 1368 ldr r3, [r2] 5568:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12887 .loc 1 5568 29 view .LVU4546 12888 00da 43F48043 orr r3, r3, #16384 12889 00de 1360 str r3, [r2] 12890 00e0 ABE7 b .L801 12891 .L805: 5553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12892 .loc 1 5553 9 is_stmt 1 view .LVU4547 5553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12893 .loc 1 5553 30 is_stmt 0 view .LVU4548 12894 00e2 628D ldrh r2, [r4, #42] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 434 12895 00e4 92B2 uxth r2, r2 5553:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 12896 .loc 1 5553 24 view .LVU4549 12897 00e6 2285 strh r2, [r4, #40] @ movhi 5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12898 .loc 1 5554 9 is_stmt 1 view .LVU4550 5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12899 .loc 1 5554 48 is_stmt 0 view .LVU4551 12900 00e8 E16C ldr r1, [r4, #76] 5554:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 12901 .loc 1 5554 9 view .LVU4552 12902 00ea 0023 movs r3, #0 12903 00ec 0093 str r3, [sp] 12904 00ee 4FF00073 mov r3, #33554432 12905 00f2 D2B2 uxtb r2, r2 12906 00f4 89B2 uxth r1, r1 12907 00f6 2046 mov r0, r4 12908 00f8 FFF7FEFF bl I2C_TransferConfig 12909 .LVL944: 12910 00fc E1E7 b .L806 12911 .L822: 5564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12912 .loc 1 5564 9 is_stmt 1 view .LVU4553 5564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12913 .loc 1 5564 13 is_stmt 0 view .LVU4554 12914 00fe 2268 ldr r2, [r4] 5564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12915 .loc 1 5564 23 view .LVU4555 12916 0100 1368 ldr r3, [r2] 5564:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12917 .loc 1 5564 29 view .LVU4556 12918 0102 43F40043 orr r3, r3, #32768 12919 0106 1360 str r3, [r2] 12920 0108 97E7 b .L801 12921 .L804: 5575:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12922 .loc 1 5575 7 is_stmt 1 view .LVU4557 12923 010a 4021 movs r1, #64 12924 010c 2046 mov r0, r4 12925 010e FFF7FEFF bl I2C_ITError 12926 .LVL945: 12927 0112 92E7 b .L801 12928 .LVL946: 12929 .L821: 5582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12930 .loc 1 5582 5 view .LVU4558 12931 0114 0121 movs r1, #1 12932 .LVL947: 5582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12933 .loc 1 5582 5 is_stmt 0 view .LVU4559 12934 0116 2046 mov r0, r4 12935 .LVL948: 5582:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12936 .loc 1 5582 5 view .LVU4560 12937 0118 FFF7FEFF bl I2C_Disable_IRQ 12938 .LVL949: 5585:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 435 12939 .loc 1 5585 5 is_stmt 1 view .LVU4561 12940 011c 1021 movs r1, #16 12941 011e 2046 mov r0, r4 12942 0120 FFF7FEFF bl I2C_Enable_IRQ 12943 .LVL950: 5587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12944 .loc 1 5587 5 view .LVU4562 5587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12945 .loc 1 5587 13 is_stmt 0 view .LVU4563 12946 0124 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5587:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12947 .loc 1 5587 8 view .LVU4564 12948 0128 222B cmp r3, #34 12949 012a 1ED0 beq .L814 5502:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12950 .loc 1 5502 12 view .LVU4565 12951 012c 1A48 ldr r0, .L824 12952 .L809: 12953 .LVL951: 5592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12954 .loc 1 5592 5 is_stmt 1 view .LVU4566 5592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12955 .loc 1 5592 13 is_stmt 0 view .LVU4567 12956 012e 638D ldrh r3, [r4, #42] 12957 0130 9BB2 uxth r3, r3 5592:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12958 .loc 1 5592 8 view .LVU4568 12959 0132 FF2B cmp r3, #255 12960 0134 1BD9 bls .L810 5594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12961 .loc 1 5594 7 is_stmt 1 view .LVU4569 5594:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12962 .loc 1 5594 22 is_stmt 0 view .LVU4570 12963 0136 FF22 movs r2, #255 12964 0138 2285 strh r2, [r4, #40] @ movhi 5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12965 .loc 1 5597 7 is_stmt 1 view .LVU4571 5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12966 .loc 1 5597 46 is_stmt 0 view .LVU4572 12967 013a E16C ldr r1, [r4, #76] 5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12968 .loc 1 5597 7 view .LVU4573 12969 013c 0090 str r0, [sp] 12970 013e 4FF08073 mov r3, #16777216 12971 0142 89B2 uxth r1, r1 12972 0144 2046 mov r0, r4 12973 .LVL952: 5597:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 12974 .loc 1 5597 7 view .LVU4574 12975 0146 FFF7FEFF bl I2C_TransferConfig 12976 .LVL953: 12977 .L811: 5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12978 .loc 1 5610 5 is_stmt 1 view .LVU4575 5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12979 .loc 1 5610 9 is_stmt 0 view .LVU4576 12980 014a 638D ldrh r3, [r4, #42] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 436 12981 014c 9BB2 uxth r3, r3 5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12982 .loc 1 5610 28 view .LVU4577 12983 014e 228D ldrh r2, [r4, #40] 5610:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 12984 .loc 1 5610 21 view .LVU4578 12985 0150 9B1A subs r3, r3, r2 12986 0152 9BB2 uxth r3, r3 12987 0154 6385 strh r3, [r4, #42] @ movhi 5613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12988 .loc 1 5613 5 is_stmt 1 view .LVU4579 5613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12989 .loc 1 5613 13 is_stmt 0 view .LVU4580 12990 0156 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5613:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 12991 .loc 1 5613 8 view .LVU4581 12992 015a 222B cmp r3, #34 12993 015c 14D0 beq .L823 5619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12994 .loc 1 5619 7 is_stmt 1 view .LVU4582 5619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12995 .loc 1 5619 11 is_stmt 0 view .LVU4583 12996 015e 2268 ldr r2, [r4] 5619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12997 .loc 1 5619 21 view .LVU4584 12998 0160 1368 ldr r3, [r2] 5619:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 12999 .loc 1 5619 27 view .LVU4585 13000 0162 43F48043 orr r3, r3, #16384 13001 0166 1360 str r3, [r2] 13002 0168 67E7 b .L801 13003 .LVL954: 13004 .L814: 5589:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13005 .loc 1 5589 17 view .LVU4586 13006 016a 0C48 ldr r0, .L824+4 13007 016c DFE7 b .L809 13008 .LVL955: 13009 .L810: 5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13010 .loc 1 5602 7 is_stmt 1 view .LVU4587 5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13011 .loc 1 5602 28 is_stmt 0 view .LVU4588 13012 016e 628D ldrh r2, [r4, #42] 13013 0170 92B2 uxth r2, r2 5602:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13014 .loc 1 5602 22 view .LVU4589 13015 0172 2285 strh r2, [r4, #40] @ movhi 5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13016 .loc 1 5605 7 is_stmt 1 view .LVU4590 5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13017 .loc 1 5605 46 is_stmt 0 view .LVU4591 13018 0174 E16C ldr r1, [r4, #76] 5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13019 .loc 1 5605 7 view .LVU4592 13020 0176 0090 str r0, [sp] 13021 0178 4FF00073 mov r3, #33554432 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 437 13022 017c D2B2 uxtb r2, r2 13023 017e 89B2 uxth r1, r1 13024 0180 2046 mov r0, r4 13025 .LVL956: 5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13026 .loc 1 5605 7 view .LVU4593 13027 0182 FFF7FEFF bl I2C_TransferConfig 13028 .LVL957: 5605:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 13029 .loc 1 5605 7 view .LVU4594 13030 0186 E0E7 b .L811 13031 .L823: 5615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13032 .loc 1 5615 7 is_stmt 1 view .LVU4595 5615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13033 .loc 1 5615 11 is_stmt 0 view .LVU4596 13034 0188 2268 ldr r2, [r4] 5615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13035 .loc 1 5615 21 view .LVU4597 13036 018a 1368 ldr r3, [r2] 5615:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13037 .loc 1 5615 27 view .LVU4598 13038 018c 43F40043 orr r3, r3, #32768 13039 0190 1360 str r3, [r2] 13040 0192 52E7 b .L801 13041 .LVL958: 13042 .L813: 13043 .cfi_def_cfa_offset 0 13044 .cfi_restore 4 13045 .cfi_restore 14 5505:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13046 .loc 1 5505 3 discriminator 1 view .LVU4599 13047 0194 0220 movs r0, #2 13048 .LVL959: 5637:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13049 .loc 1 5637 1 view .LVU4600 13050 0196 7047 bx lr 13051 .L825: 13052 .align 2 13053 .L824: 13054 0198 00200080 .word -2147475456 13055 019c 00240080 .word -2147474432 13056 .cfi_endproc 13057 .LFE388: 13059 .section .text.I2C_Slave_ISR_DMA,"ax",%progbits 13060 .align 1 13061 .syntax unified 13062 .thumb 13063 .thumb_func 13065 I2C_Slave_ISR_DMA: 13066 .LVL960: 13067 .LFB389: 5649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 13068 .loc 1 5649 1 is_stmt 1 view -0 13069 .cfi_startproc 13070 @ args = 0, pretend = 0, frame = 0 13071 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 438 5649:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpoptions = hi2c->XferOptions; 13072 .loc 1 5649 1 is_stmt 0 view .LVU4602 13073 0000 70B5 push {r4, r5, r6, lr} 13074 .cfi_def_cfa_offset 16 13075 .cfi_offset 4, -16 13076 .cfi_offset 5, -12 13077 .cfi_offset 6, -8 13078 .cfi_offset 14, -4 13079 0002 0446 mov r4, r0 5650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13080 .loc 1 5650 3 is_stmt 1 view .LVU4603 5650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmanack = 0U; 13081 .loc 1 5650 12 is_stmt 0 view .LVU4604 13082 0004 C06A ldr r0, [r0, #44] 13083 .LVL961: 5651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13084 .loc 1 5651 3 is_stmt 1 view .LVU4605 5652:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13085 .loc 1 5652 3 view .LVU4606 5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13086 .loc 1 5655 3 view .LVU4607 5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13087 .loc 1 5655 3 view .LVU4608 13088 0006 94F84030 ldrb r3, [r4, #64] @ zero_extendqisi2 13089 000a 012B cmp r3, #1 13090 000c 00F0FF80 beq .L849 5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13091 .loc 1 5655 3 discriminator 2 view .LVU4609 13092 0010 0123 movs r3, #1 13093 0012 84F84030 strb r3, [r4, #64] 5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13094 .loc 1 5655 3 view .LVU4610 5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13095 .loc 1 5658 3 view .LVU4611 5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13096 .loc 1 5658 6 is_stmt 0 view .LVU4612 13097 0016 11F0200F tst r1, #32 13098 001a 02D0 beq .L828 5658:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13099 .loc 1 5658 58 discriminator 1 view .LVU4613 13100 001c 12F0200F tst r2, #32 13101 0020 4FD1 bne .L854 13102 .L828: 5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13103 .loc 1 5664 8 is_stmt 1 view .LVU4614 5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13104 .loc 1 5664 11 is_stmt 0 view .LVU4615 13105 0022 11F0100F tst r1, #16 13106 0026 00F0E480 beq .L830 5664:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13107 .loc 1 5664 60 discriminator 1 view .LVU4616 13108 002a 12F0100F tst r2, #16 13109 002e 00F0E080 beq .L830 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13110 .loc 1 5671 5 is_stmt 1 view .LVU4617 13111 0032 C2F38036 ubfx r6, r2, #14, #1 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 439 13112 .loc 1 5671 8 is_stmt 0 view .LVU4618 13113 0036 12F4804F tst r2, #16384 13114 003a 03D1 bne .L831 5671:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_CR1_RXDMAEN) != RESET)) 13115 .loc 1 5671 68 discriminator 1 view .LVU4619 13116 003c 12F4004F tst r2, #32768 13117 0040 00F0D380 beq .L832 13118 .L831: 5675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13119 .loc 1 5675 7 is_stmt 1 view .LVU4620 5675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13120 .loc 1 5675 15 is_stmt 0 view .LVU4621 13121 0044 E36B ldr r3, [r4, #60] 5675:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13122 .loc 1 5675 10 view .LVU4622 13123 0046 002B cmp r3, #0 13124 0048 47D0 beq .L850 5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13125 .loc 1 5677 9 is_stmt 1 view .LVU4623 13126 004a C2F3C035 ubfx r5, r2, #15, #1 5677:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13127 .loc 1 5677 12 is_stmt 0 view .LVU4624 13128 004e 12F4004F tst r2, #32768 13129 0052 43D0 beq .L833 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13130 .loc 1 5679 11 is_stmt 1 view .LVU4625 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13131 .loc 1 5679 15 is_stmt 0 view .LVU4626 13132 0054 1B68 ldr r3, [r3] 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13133 .loc 1 5679 53 view .LVU4627 13134 0056 6F4D ldr r5, .L858 13135 0058 6F4A ldr r2, .L858+4 13136 .LVL962: 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13137 .loc 1 5679 53 view .LVU4628 13138 005a 9342 cmp r3, r2 13139 005c 18BF it ne 13140 005e AB42 cmpne r3, r5 13141 0060 33D0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13142 .loc 1 5679 15 discriminator 2 view .LVU4629 13143 0062 1832 adds r2, r2, #24 13144 0064 9342 cmp r3, r2 13145 0066 30D0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13146 .loc 1 5679 15 discriminator 4 view .LVU4630 13147 0068 1832 adds r2, r2, #24 13148 006a 9342 cmp r3, r2 13149 006c 2DD0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13150 .loc 1 5679 15 discriminator 6 view .LVU4631 13151 006e 1832 adds r2, r2, #24 13152 0070 9342 cmp r3, r2 13153 0072 2AD0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13154 .loc 1 5679 15 discriminator 8 view .LVU4632 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 440 13155 0074 1832 adds r2, r2, #24 13156 0076 9342 cmp r3, r2 13157 0078 27D0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13158 .loc 1 5679 15 discriminator 10 view .LVU4633 13159 007a 1832 adds r2, r2, #24 13160 007c 9342 cmp r3, r2 13161 007e 24D0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13162 .loc 1 5679 15 discriminator 12 view .LVU4634 13163 0080 1832 adds r2, r2, #24 13164 0082 9342 cmp r3, r2 13165 0084 21D0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13166 .loc 1 5679 15 discriminator 14 view .LVU4635 13167 0086 02F55672 add r2, r2, #856 13168 008a 9342 cmp r3, r2 13169 008c 1DD0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13170 .loc 1 5679 15 discriminator 16 view .LVU4636 13171 008e 1832 adds r2, r2, #24 13172 0090 9342 cmp r3, r2 13173 0092 1AD0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13174 .loc 1 5679 15 discriminator 18 view .LVU4637 13175 0094 1832 adds r2, r2, #24 13176 0096 9342 cmp r3, r2 13177 0098 17D0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13178 .loc 1 5679 15 discriminator 20 view .LVU4638 13179 009a 1832 adds r2, r2, #24 13180 009c 9342 cmp r3, r2 13181 009e 14D0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13182 .loc 1 5679 15 discriminator 22 view .LVU4639 13183 00a0 1832 adds r2, r2, #24 13184 00a2 9342 cmp r3, r2 13185 00a4 11D0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13186 .loc 1 5679 15 discriminator 24 view .LVU4640 13187 00a6 1832 adds r2, r2, #24 13188 00a8 9342 cmp r3, r2 13189 00aa 0ED0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13190 .loc 1 5679 15 discriminator 26 view .LVU4641 13191 00ac 1832 adds r2, r2, #24 13192 00ae 9342 cmp r3, r2 13193 00b0 0BD0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13194 .loc 1 5679 15 discriminator 28 view .LVU4642 13195 00b2 1832 adds r2, r2, #24 13196 00b4 9342 cmp r3, r2 13197 00b6 08D0 beq .L834 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13198 .loc 1 5679 15 discriminator 30 view .LVU4643 13199 00b8 5B68 ldr r3, [r3, #4] 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 441 13200 .loc 1 5679 53 discriminator 30 view .LVU4644 13201 00ba B3FA83F3 clz r3, r3 13202 00be 5B09 lsrs r3, r3, #5 13203 00c0 07E0 b .L836 13204 .LVL963: 13205 .L854: 5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13206 .loc 1 5662 5 is_stmt 1 view .LVU4645 13207 00c2 2046 mov r0, r4 13208 .LVL964: 5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13209 .loc 1 5662 5 is_stmt 0 view .LVU4646 13210 00c4 FFF7FEFF bl I2C_ITSlaveCplt 13211 .LVL965: 5662:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13212 .loc 1 5662 5 view .LVU4647 13213 00c8 99E0 b .L829 13214 .LVL966: 13215 .L834: 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13216 .loc 1 5679 15 discriminator 29 view .LVU4648 13217 00ca 5B68 ldr r3, [r3, #4] 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13218 .loc 1 5679 53 discriminator 29 view .LVU4649 13219 00cc B3FA83F3 clz r3, r3 13220 00d0 5B09 lsrs r3, r3, #5 13221 .L836: 5679:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13222 .loc 1 5679 14 discriminator 32 view .LVU4650 13223 00d2 002B cmp r3, #0 13224 00d4 3ED1 bne .L851 5651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13225 .loc 1 5651 12 view .LVU4651 13226 00d6 0025 movs r5, #0 13227 00d8 00E0 b .L833 13228 .LVL967: 13229 .L850: 5651:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** HAL_I2C_StateTypeDef tmpstate; 13230 .loc 1 5651 12 view .LVU4652 13231 00da 0025 movs r5, #0 13232 .LVL968: 13233 .L833: 5687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13234 .loc 1 5687 7 is_stmt 1 view .LVU4653 5687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13235 .loc 1 5687 15 is_stmt 0 view .LVU4654 13236 00dc A36B ldr r3, [r4, #56] 5687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13237 .loc 1 5687 10 view .LVU4655 13238 00de 002B cmp r3, #0 13239 00e0 3FD0 beq .L837 5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13240 .loc 1 5689 9 is_stmt 1 view .LVU4656 5689:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13241 .loc 1 5689 12 is_stmt 0 view .LVU4657 13242 00e2 002E cmp r6, #0 13243 00e4 3DD0 beq .L837 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 442 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13244 .loc 1 5691 11 is_stmt 1 view .LVU4658 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13245 .loc 1 5691 15 is_stmt 0 view .LVU4659 13246 00e6 1B68 ldr r3, [r3] 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13247 .loc 1 5691 53 view .LVU4660 13248 00e8 4A4E ldr r6, .L858 13249 00ea 4B4A ldr r2, .L858+4 13250 00ec 9342 cmp r3, r2 13251 00ee 18BF it ne 13252 00f0 B342 cmpne r3, r6 13253 00f2 31D0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13254 .loc 1 5691 15 discriminator 2 view .LVU4661 13255 00f4 1832 adds r2, r2, #24 13256 00f6 9342 cmp r3, r2 13257 00f8 2ED0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13258 .loc 1 5691 15 discriminator 4 view .LVU4662 13259 00fa 1832 adds r2, r2, #24 13260 00fc 9342 cmp r3, r2 13261 00fe 2BD0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13262 .loc 1 5691 15 discriminator 6 view .LVU4663 13263 0100 1832 adds r2, r2, #24 13264 0102 9342 cmp r3, r2 13265 0104 28D0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13266 .loc 1 5691 15 discriminator 8 view .LVU4664 13267 0106 1832 adds r2, r2, #24 13268 0108 9342 cmp r3, r2 13269 010a 25D0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13270 .loc 1 5691 15 discriminator 10 view .LVU4665 13271 010c 1832 adds r2, r2, #24 13272 010e 9342 cmp r3, r2 13273 0110 22D0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13274 .loc 1 5691 15 discriminator 12 view .LVU4666 13275 0112 1832 adds r2, r2, #24 13276 0114 9342 cmp r3, r2 13277 0116 1FD0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13278 .loc 1 5691 15 discriminator 14 view .LVU4667 13279 0118 02F55672 add r2, r2, #856 13280 011c 9342 cmp r3, r2 13281 011e 1BD0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13282 .loc 1 5691 15 discriminator 16 view .LVU4668 13283 0120 1832 adds r2, r2, #24 13284 0122 9342 cmp r3, r2 13285 0124 18D0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13286 .loc 1 5691 15 discriminator 18 view .LVU4669 13287 0126 1832 adds r2, r2, #24 13288 0128 9342 cmp r3, r2 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 443 13289 012a 15D0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13290 .loc 1 5691 15 discriminator 20 view .LVU4670 13291 012c 1832 adds r2, r2, #24 13292 012e 9342 cmp r3, r2 13293 0130 12D0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13294 .loc 1 5691 15 discriminator 22 view .LVU4671 13295 0132 1832 adds r2, r2, #24 13296 0134 9342 cmp r3, r2 13297 0136 0FD0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13298 .loc 1 5691 15 discriminator 24 view .LVU4672 13299 0138 1832 adds r2, r2, #24 13300 013a 9342 cmp r3, r2 13301 013c 0CD0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13302 .loc 1 5691 15 discriminator 26 view .LVU4673 13303 013e 1832 adds r2, r2, #24 13304 0140 9342 cmp r3, r2 13305 0142 09D0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13306 .loc 1 5691 15 discriminator 28 view .LVU4674 13307 0144 1832 adds r2, r2, #24 13308 0146 9342 cmp r3, r2 13309 0148 06D0 beq .L838 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13310 .loc 1 5691 15 discriminator 30 view .LVU4675 13311 014a 5B68 ldr r3, [r3, #4] 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13312 .loc 1 5691 53 discriminator 30 view .LVU4676 13313 014c B3FA83F3 clz r3, r3 13314 0150 5B09 lsrs r3, r3, #5 13315 0152 05E0 b .L840 13316 .LVL969: 13317 .L851: 5681:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13318 .loc 1 5681 26 view .LVU4677 13319 0154 0125 movs r5, #1 13320 0156 C1E7 b .L833 13321 .LVL970: 13322 .L838: 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13323 .loc 1 5691 15 discriminator 29 view .LVU4678 13324 0158 5B68 ldr r3, [r3, #4] 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13325 .loc 1 5691 53 discriminator 29 view .LVU4679 13326 015a B3FA83F3 clz r3, r3 13327 015e 5B09 lsrs r3, r3, #5 13328 .L840: 5691:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13329 .loc 1 5691 14 discriminator 32 view .LVU4680 13330 0160 CBB9 cbnz r3, .L841 13331 .L837: 5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13332 .loc 1 5698 7 is_stmt 1 view .LVU4681 5698:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 444 13333 .loc 1 5698 10 is_stmt 0 view .LVU4682 13334 0162 C5B9 cbnz r5, .L841 5729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13335 .loc 1 5729 9 is_stmt 1 view .LVU4683 13336 0164 2368 ldr r3, [r4] 13337 0166 1022 movs r2, #16 13338 0168 DA61 str r2, [r3, #28] 5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13339 .loc 1 5732 9 view .LVU4684 5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13340 .loc 1 5732 13 is_stmt 0 view .LVU4685 13341 016a 636C ldr r3, [r4, #68] 5732:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13342 .loc 1 5732 25 view .LVU4686 13343 016c 43F00403 orr r3, r3, #4 13344 0170 6364 str r3, [r4, #68] 5735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13345 .loc 1 5735 9 is_stmt 1 view .LVU4687 5735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13346 .loc 1 5735 18 is_stmt 0 view .LVU4688 13347 0172 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 13348 0176 DBB2 uxtb r3, r3 13349 .LVL971: 5737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13350 .loc 1 5737 9 is_stmt 1 view .LVU4689 5737:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13351 .loc 1 5737 12 is_stmt 0 view .LVU4690 13352 0178 B0F1807F cmp r0, #16777216 13353 017c 18BF it ne 13354 017e 0028 cmpne r0, #0 13355 0180 3DD1 bne .L829 5739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13356 .loc 1 5739 11 is_stmt 1 view .LVU4691 13357 0182 213B subs r3, r3, #33 13358 .LVL972: 5739:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13359 .loc 1 5739 11 is_stmt 0 view .LVU4692 13360 0184 092B cmp r3, #9 13361 0186 28D8 bhi .L845 13362 0188 DFE803F0 tbb [pc, r3] 13363 .L847: 13364 018c 25 .byte (.L848-.L847)/2 13365 018d 2C .byte (.L846-.L847)/2 13366 018e 27 .byte (.L845-.L847)/2 13367 018f 27 .byte (.L845-.L847)/2 13368 0190 27 .byte (.L845-.L847)/2 13369 0191 27 .byte (.L845-.L847)/2 13370 0192 27 .byte (.L845-.L847)/2 13371 0193 27 .byte (.L845-.L847)/2 13372 0194 25 .byte (.L848-.L847)/2 13373 0195 2C .byte (.L846-.L847)/2 13374 .LVL973: 13375 .p2align 1 13376 .L841: 5700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13377 .loc 1 5700 9 is_stmt 1 view .LVU4693 5700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 445 13378 .loc 1 5700 18 is_stmt 0 view .LVU4694 13379 0196 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13380 .loc 1 5700 12 view .LVU4695 13381 019a 282B cmp r3, #40 13382 019c 07D0 beq .L855 13383 .L843: 5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13384 .loc 1 5707 14 is_stmt 1 view .LVU4696 5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13385 .loc 1 5707 23 is_stmt 0 view .LVU4697 13386 019e 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13387 .loc 1 5707 17 view .LVU4698 13388 01a2 292B cmp r3, #41 13389 01a4 0AD0 beq .L856 13390 .L844: 5722:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13391 .loc 1 5722 11 is_stmt 1 view .LVU4699 13392 01a6 2368 ldr r3, [r4] 13393 01a8 1022 movs r2, #16 13394 01aa DA61 str r2, [r3, #28] 13395 01ac 27E0 b .L829 13396 .L855: 5700:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Same action must be done for (tmpoptions == I2C_LAST_FRAME) which removed for 13397 .loc 1 5700 51 is_stmt 0 discriminator 1 view .LVU4700 13398 01ae B0F1007F cmp r0, #33554432 13399 01b2 F4D1 bne .L843 5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13400 .loc 1 5705 11 is_stmt 1 view .LVU4701 13401 01b4 2046 mov r0, r4 13402 .LVL974: 5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13403 .loc 1 5705 11 is_stmt 0 view .LVU4702 13404 01b6 FFF7FEFF bl I2C_ITListenCplt 13405 .LVL975: 5705:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13406 .loc 1 5705 11 view .LVU4703 13407 01ba 20E0 b .L829 13408 .LVL976: 13409 .L856: 5707:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13410 .loc 1 5707 64 discriminator 1 view .LVU4704 13411 01bc 10F5803F cmn r0, #65536 13412 01c0 F1D0 beq .L844 5710:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13413 .loc 1 5710 11 is_stmt 1 view .LVU4705 13414 01c2 2368 ldr r3, [r4] 13415 01c4 1022 movs r2, #16 13416 01c6 DA61 str r2, [r3, #28] 5713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13417 .loc 1 5713 11 view .LVU4706 13418 01c8 2046 mov r0, r4 13419 .LVL977: 5713:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13420 .loc 1 5713 11 is_stmt 0 view .LVU4707 13421 01ca FFF7FEFF bl I2C_Flush_TXDR ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 446 13422 .LVL978: 5717:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13423 .loc 1 5717 11 is_stmt 1 view .LVU4708 13424 01ce 2046 mov r0, r4 13425 01d0 FFF7FEFF bl I2C_ITSlaveSeqCplt 13426 .LVL979: 13427 01d4 13E0 b .L829 13428 .LVL980: 13429 .L848: 5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13430 .loc 1 5741 13 view .LVU4709 5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13431 .loc 1 5741 33 is_stmt 0 view .LVU4710 13432 01d6 2123 movs r3, #33 13433 .LVL981: 5741:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13434 .loc 1 5741 33 view .LVU4711 13435 01d8 2363 str r3, [r4, #48] 13436 .L845: 5750:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13437 .loc 1 5750 11 is_stmt 1 view .LVU4712 5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13438 .loc 1 5753 11 view .LVU4713 5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13439 .loc 1 5753 33 is_stmt 0 view .LVU4714 13440 01da 616C ldr r1, [r4, #68] 13441 .LVL982: 5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13442 .loc 1 5753 11 view .LVU4715 13443 01dc 2046 mov r0, r4 13444 .LVL983: 5753:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13445 .loc 1 5753 11 view .LVU4716 13446 01de FFF7FEFF bl I2C_ITError 13447 .LVL984: 13448 01e2 0CE0 b .L829 13449 .LVL985: 13450 .L846: 5745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13451 .loc 1 5745 13 is_stmt 1 view .LVU4717 5745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13452 .loc 1 5745 33 is_stmt 0 view .LVU4718 13453 01e4 2223 movs r3, #34 13454 .LVL986: 5745:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13455 .loc 1 5745 33 view .LVU4719 13456 01e6 2363 str r3, [r4, #48] 13457 01e8 F7E7 b .L845 13458 .LVL987: 13459 .L832: 5760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13460 .loc 1 5760 7 is_stmt 1 view .LVU4720 13461 01ea 2368 ldr r3, [r4] 13462 01ec 1022 movs r2, #16 13463 .LVL988: 5760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13464 .loc 1 5760 7 is_stmt 0 view .LVU4721 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 447 13465 01ee DA61 str r2, [r3, #28] 13466 01f0 05E0 b .L829 13467 .LVL989: 13468 .L830: 5763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13469 .loc 1 5763 8 is_stmt 1 view .LVU4722 5763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13470 .loc 1 5763 11 is_stmt 0 view .LVU4723 13471 01f2 11F0080F tst r1, #8 13472 01f6 02D0 beq .L829 5763:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_ADDRI) != RESET)) 13473 .loc 1 5763 62 discriminator 1 view .LVU4724 13474 01f8 12F0080F tst r2, #8 13475 01fc 03D1 bne .L857 13476 .LVL990: 13477 .L829: 5771:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13478 .loc 1 5771 3 is_stmt 1 view .LVU4725 5774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13479 .loc 1 5774 3 view .LVU4726 5774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13480 .loc 1 5774 3 view .LVU4727 13481 01fe 0020 movs r0, #0 13482 0200 84F84000 strb r0, [r4, #64] 5774:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13483 .loc 1 5774 3 view .LVU4728 5776:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13484 .loc 1 5776 3 view .LVU4729 13485 .L827: 5777:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13486 .loc 1 5777 1 is_stmt 0 view .LVU4730 13487 0204 70BD pop {r4, r5, r6, pc} 13488 .LVL991: 13489 .L857: 5766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13490 .loc 1 5766 5 is_stmt 1 view .LVU4731 13491 0206 2046 mov r0, r4 13492 .LVL992: 5766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13493 .loc 1 5766 5 is_stmt 0 view .LVU4732 13494 0208 FFF7FEFF bl I2C_ITAddrCplt 13495 .LVL993: 5766:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13496 .loc 1 5766 5 view .LVU4733 13497 020c F7E7 b .L829 13498 .LVL994: 13499 .L849: 5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13500 .loc 1 5655 3 discriminator 1 view .LVU4734 13501 020e 0220 movs r0, #2 13502 .LVL995: 5655:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13503 .loc 1 5655 3 discriminator 1 view .LVU4735 13504 0210 F8E7 b .L827 13505 .L859: 13506 0212 00BF .align 2 13507 .L858: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 448 13508 0214 10000240 .word 1073872912 13509 0218 28000240 .word 1073872936 13510 .cfi_endproc 13511 .LFE389: 13513 .section .text.I2C_Master_ISR_DMA,"ax",%progbits 13514 .align 1 13515 .syntax unified 13516 .thumb 13517 .thumb_func 13519 I2C_Master_ISR_DMA: 13520 .LVL996: 13521 .LFB387: 5361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 13522 .loc 1 5361 1 is_stmt 1 view -0 13523 .cfi_startproc 13524 @ args = 0, pretend = 0, frame = 0 13525 @ frame_needed = 0, uses_anonymous_args = 0 5362:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t xfermode; 13526 .loc 1 5362 3 view .LVU4737 5363:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13527 .loc 1 5363 3 view .LVU4738 5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13528 .loc 1 5366 3 view .LVU4739 5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13529 .loc 1 5366 3 view .LVU4740 13530 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 13531 0004 012B cmp r3, #1 13532 0006 00F09980 beq .L873 5361:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint16_t devaddress; 13533 .loc 1 5361 1 is_stmt 0 view .LVU4741 13534 000a 10B5 push {r4, lr} 13535 .cfi_def_cfa_offset 8 13536 .cfi_offset 4, -8 13537 .cfi_offset 14, -4 13538 000c 82B0 sub sp, sp, #8 13539 .cfi_def_cfa_offset 16 13540 000e 0446 mov r4, r0 5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13541 .loc 1 5366 3 is_stmt 1 discriminator 2 view .LVU4742 13542 0010 0123 movs r3, #1 13543 0012 80F84030 strb r3, [r0, #64] 5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13544 .loc 1 5366 3 view .LVU4743 5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13545 .loc 1 5368 3 view .LVU4744 5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13546 .loc 1 5368 6 is_stmt 0 view .LVU4745 13547 0016 11F0100F tst r1, #16 13548 001a 02D0 beq .L862 5368:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 13549 .loc 1 5368 55 discriminator 1 view .LVU4746 13550 001c 12F0100F tst r2, #16 13551 0020 31D1 bne .L879 13552 .L862: 5385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13553 .loc 1 5385 8 is_stmt 1 view .LVU4747 5385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 449 13554 .loc 1 5385 11 is_stmt 0 view .LVU4748 13555 0022 11F0800F tst r1, #128 13556 0026 5FD0 beq .L864 5385:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13557 .loc 1 5385 61 discriminator 1 view .LVU4749 13558 0028 12F0400F tst r2, #64 13559 002c 5CD0 beq .L864 5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13560 .loc 1 5389 5 is_stmt 1 view .LVU4750 13561 002e 2268 ldr r2, [r4] 13562 .LVL997: 5389:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13563 .loc 1 5389 5 is_stmt 0 view .LVU4751 13564 0030 1368 ldr r3, [r2] 13565 0032 23F04003 bic r3, r3, #64 13566 0036 1360 str r3, [r2] 5391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13567 .loc 1 5391 5 is_stmt 1 view .LVU4752 5391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13568 .loc 1 5391 13 is_stmt 0 view .LVU4753 13569 0038 638D ldrh r3, [r4, #42] 13570 003a 9BB2 uxth r3, r3 5391:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13571 .loc 1 5391 8 view .LVU4754 13572 003c 002B cmp r3, #0 13573 003e 45D0 beq .L865 5394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13574 .loc 1 5394 7 is_stmt 1 view .LVU4755 5394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13575 .loc 1 5394 35 is_stmt 0 view .LVU4756 13576 0040 2368 ldr r3, [r4] 5394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13577 .loc 1 5394 45 view .LVU4757 13578 0042 5968 ldr r1, [r3, #4] 13579 .LVL998: 5394:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13580 .loc 1 5394 18 view .LVU4758 13581 0044 C1F30901 ubfx r1, r1, #0, #10 13582 .LVL999: 5397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13583 .loc 1 5397 7 is_stmt 1 view .LVU4759 5397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13584 .loc 1 5397 15 is_stmt 0 view .LVU4760 13585 0048 638D ldrh r3, [r4, #42] 13586 004a 9BB2 uxth r3, r3 5397:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13587 .loc 1 5397 10 view .LVU4761 13588 004c FF2B cmp r3, #255 13589 004e 2CD9 bls .L866 5399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 13590 .loc 1 5399 9 is_stmt 1 view .LVU4762 5399:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** xfermode = I2C_RELOAD_MODE; 13591 .loc 1 5399 24 is_stmt 0 view .LVU4763 13592 0050 FF23 movs r3, #255 13593 0052 2385 strh r3, [r4, #40] @ movhi 5400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13594 .loc 1 5400 9 is_stmt 1 view .LVU4764 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 450 13595 .LVL1000: 5400:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13596 .loc 1 5400 18 is_stmt 0 view .LVU4765 13597 0054 4FF08073 mov r3, #16777216 13598 .LVL1001: 13599 .L867: 5416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13600 .loc 1 5416 7 is_stmt 1 view .LVU4766 13601 0058 0022 movs r2, #0 13602 005a 0092 str r2, [sp] 13603 005c 94F82820 ldrb r2, [r4, #40] @ zero_extendqisi2 13604 0060 2046 mov r0, r4 13605 .LVL1002: 5416:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13606 .loc 1 5416 7 is_stmt 0 view .LVU4767 13607 0062 FFF7FEFF bl I2C_TransferConfig 13608 .LVL1003: 5419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13609 .loc 1 5419 7 is_stmt 1 view .LVU4768 5419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13610 .loc 1 5419 11 is_stmt 0 view .LVU4769 13611 0066 638D ldrh r3, [r4, #42] 13612 0068 9BB2 uxth r3, r3 5419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13613 .loc 1 5419 30 view .LVU4770 13614 006a 228D ldrh r2, [r4, #40] 5419:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13615 .loc 1 5419 23 view .LVU4771 13616 006c 9B1A subs r3, r3, r2 13617 006e 9BB2 uxth r3, r3 13618 0070 6385 strh r3, [r4, #42] @ movhi 5422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13619 .loc 1 5422 7 is_stmt 1 view .LVU4772 5422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13620 .loc 1 5422 15 is_stmt 0 view .LVU4773 13621 0072 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5422:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13622 .loc 1 5422 10 view .LVU4774 13623 0076 222B cmp r3, #34 13624 0078 22D0 beq .L880 5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13625 .loc 1 5428 9 is_stmt 1 view .LVU4775 5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13626 .loc 1 5428 13 is_stmt 0 view .LVU4776 13627 007a 2268 ldr r2, [r4] 5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13628 .loc 1 5428 23 view .LVU4777 13629 007c 1368 ldr r3, [r2] 5428:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13630 .loc 1 5428 29 view .LVU4778 13631 007e 43F48043 orr r3, r3, #16384 13632 0082 1360 str r3, [r2] 13633 0084 0CE0 b .L863 13634 .LVL1004: 13635 .L879: 5372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13636 .loc 1 5372 5 is_stmt 1 view .LVU4779 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 451 13637 0086 0368 ldr r3, [r0] 13638 0088 1022 movs r2, #16 13639 .LVL1005: 5372:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13640 .loc 1 5372 5 is_stmt 0 view .LVU4780 13641 008a DA61 str r2, [r3, #28] 5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13642 .loc 1 5375 5 is_stmt 1 view .LVU4781 5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13643 .loc 1 5375 9 is_stmt 0 view .LVU4782 13644 008c 436C ldr r3, [r0, #68] 5375:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13645 .loc 1 5375 21 view .LVU4783 13646 008e 43F00403 orr r3, r3, #4 13647 0092 4364 str r3, [r0, #68] 5380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13648 .loc 1 5380 5 is_stmt 1 view .LVU4784 13649 0094 2021 movs r1, #32 13650 .LVL1006: 5380:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13651 .loc 1 5380 5 is_stmt 0 view .LVU4785 13652 0096 FFF7FEFF bl I2C_Enable_IRQ 13653 .LVL1007: 5383:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13654 .loc 1 5383 5 is_stmt 1 view .LVU4786 13655 009a 2046 mov r0, r4 13656 009c FFF7FEFF bl I2C_Flush_TXDR 13657 .LVL1008: 13658 .L863: 5483:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13659 .loc 1 5483 3 view .LVU4787 5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13660 .loc 1 5486 3 view .LVU4788 5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13661 .loc 1 5486 3 view .LVU4789 13662 00a0 0020 movs r0, #0 13663 00a2 84F84000 strb r0, [r4, #64] 5486:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13664 .loc 1 5486 3 view .LVU4790 5488:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13665 .loc 1 5488 3 view .LVU4791 5489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13666 .loc 1 5489 1 is_stmt 0 view .LVU4792 13667 00a6 02B0 add sp, sp, #8 13668 .cfi_remember_state 13669 .cfi_def_cfa_offset 8 13670 @ sp needed 13671 00a8 10BD pop {r4, pc} 13672 .LVL1009: 13673 .L866: 13674 .cfi_restore_state 5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13675 .loc 1 5404 9 is_stmt 1 view .LVU4793 5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) 13676 .loc 1 5404 30 is_stmt 0 view .LVU4794 13677 00aa 638D ldrh r3, [r4, #42] 5404:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** if (hi2c->XferOptions != I2C_NO_OPTION_FRAME) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 452 13678 .loc 1 5404 24 view .LVU4795 13679 00ac 2385 strh r3, [r4, #40] @ movhi 5405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13680 .loc 1 5405 9 is_stmt 1 view .LVU4796 5405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13681 .loc 1 5405 17 is_stmt 0 view .LVU4797 13682 00ae E36A ldr r3, [r4, #44] 5405:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13683 .loc 1 5405 12 view .LVU4798 13684 00b0 13F5803F cmn r3, #65536 13685 00b4 01D0 beq .L874 5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13686 .loc 1 5407 11 is_stmt 1 view .LVU4799 5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13687 .loc 1 5407 20 is_stmt 0 view .LVU4800 13688 00b6 E36A ldr r3, [r4, #44] 13689 .LVL1010: 5407:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13690 .loc 1 5407 20 view .LVU4801 13691 00b8 CEE7 b .L867 13692 .LVL1011: 13693 .L874: 5411:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13694 .loc 1 5411 20 view .LVU4802 13695 00ba 4FF00073 mov r3, #33554432 13696 00be CBE7 b .L867 13697 .LVL1012: 13698 .L880: 5424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13699 .loc 1 5424 9 is_stmt 1 view .LVU4803 5424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13700 .loc 1 5424 13 is_stmt 0 view .LVU4804 13701 00c0 2268 ldr r2, [r4] 5424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13702 .loc 1 5424 23 view .LVU4805 13703 00c2 1368 ldr r3, [r2] 5424:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13704 .loc 1 5424 29 view .LVU4806 13705 00c4 43F40043 orr r3, r3, #32768 13706 00c8 1360 str r3, [r2] 13707 00ca E9E7 b .L863 13708 .LVL1013: 13709 .L865: 5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13710 .loc 1 5434 7 is_stmt 1 view .LVU4807 5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13711 .loc 1 5434 11 is_stmt 0 view .LVU4808 13712 00cc 2368 ldr r3, [r4] 13713 00ce 5B68 ldr r3, [r3, #4] 5434:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13714 .loc 1 5434 10 view .LVU4809 13715 00d0 13F0007F tst r3, #33554432 13716 00d4 03D1 bne .L869 5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13717 .loc 1 5437 9 is_stmt 1 view .LVU4810 13718 00d6 2046 mov r0, r4 13719 .LVL1014: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 453 5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13720 .loc 1 5437 9 is_stmt 0 view .LVU4811 13721 00d8 FFF7FEFF bl I2C_ITMasterSeqCplt 13722 .LVL1015: 5437:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13723 .loc 1 5437 9 view .LVU4812 13724 00dc E0E7 b .L863 13725 .LVL1016: 13726 .L869: 5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13727 .loc 1 5443 9 is_stmt 1 view .LVU4813 13728 00de 4021 movs r1, #64 13729 .LVL1017: 5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13730 .loc 1 5443 9 is_stmt 0 view .LVU4814 13731 00e0 2046 mov r0, r4 13732 .LVL1018: 5443:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13733 .loc 1 5443 9 view .LVU4815 13734 00e2 FFF7FEFF bl I2C_ITError 13735 .LVL1019: 13736 00e6 DBE7 b .L863 13737 .LVL1020: 13738 .L864: 5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13739 .loc 1 5447 8 is_stmt 1 view .LVU4816 5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13740 .loc 1 5447 11 is_stmt 0 view .LVU4817 13741 00e8 11F0400F tst r1, #64 13742 00ec 1CD0 beq .L870 5447:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 13743 .loc 1 5447 60 discriminator 1 view .LVU4818 13744 00ee 12F0400F tst r2, #64 13745 00f2 19D0 beq .L870 5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13746 .loc 1 5450 5 is_stmt 1 view .LVU4819 5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13747 .loc 1 5450 13 is_stmt 0 view .LVU4820 13748 00f4 638D ldrh r3, [r4, #42] 13749 00f6 9BB2 uxth r3, r3 5450:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13750 .loc 1 5450 8 view .LVU4821 13751 00f8 8BB9 cbnz r3, .L871 5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13752 .loc 1 5452 7 is_stmt 1 view .LVU4822 5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13753 .loc 1 5452 11 is_stmt 0 view .LVU4823 13754 00fa 2368 ldr r3, [r4] 13755 00fc 5A68 ldr r2, [r3, #4] 13756 .LVL1021: 5452:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13757 .loc 1 5452 10 view .LVU4824 13758 00fe 12F0007F tst r2, #33554432 13759 0102 CDD1 bne .L863 5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13760 .loc 1 5455 9 is_stmt 1 view .LVU4825 5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 454 13761 .loc 1 5455 17 is_stmt 0 view .LVU4826 13762 0104 E26A ldr r2, [r4, #44] 5455:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13763 .loc 1 5455 12 view .LVU4827 13764 0106 12F5803F cmn r2, #65536 13765 010a 04D1 bne .L872 5458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13766 .loc 1 5458 11 is_stmt 1 view .LVU4828 5458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13767 .loc 1 5458 25 is_stmt 0 view .LVU4829 13768 010c 5A68 ldr r2, [r3, #4] 5458:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13769 .loc 1 5458 31 view .LVU4830 13770 010e 42F48042 orr r2, r2, #16384 13771 0112 5A60 str r2, [r3, #4] 13772 0114 C4E7 b .L863 13773 .L872: 5463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13774 .loc 1 5463 11 is_stmt 1 view .LVU4831 13775 0116 2046 mov r0, r4 13776 .LVL1022: 5463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13777 .loc 1 5463 11 is_stmt 0 view .LVU4832 13778 0118 FFF7FEFF bl I2C_ITMasterSeqCplt 13779 .LVL1023: 5463:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13780 .loc 1 5463 11 view .LVU4833 13781 011c C0E7 b .L863 13782 .LVL1024: 13783 .L871: 5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13784 .loc 1 5471 7 is_stmt 1 view .LVU4834 13785 011e 4021 movs r1, #64 13786 .LVL1025: 5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13787 .loc 1 5471 7 is_stmt 0 view .LVU4835 13788 0120 2046 mov r0, r4 13789 .LVL1026: 5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13790 .loc 1 5471 7 view .LVU4836 13791 0122 FFF7FEFF bl I2C_ITError 13792 .LVL1027: 5471:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13793 .loc 1 5471 7 view .LVU4837 13794 0126 BBE7 b .L863 13795 .LVL1028: 13796 .L870: 5474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13797 .loc 1 5474 8 is_stmt 1 view .LVU4838 5474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13798 .loc 1 5474 11 is_stmt 0 view .LVU4839 13799 0128 11F0200F tst r1, #32 13800 012c B8D0 beq .L863 5474:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 13801 .loc 1 5474 63 discriminator 1 view .LVU4840 13802 012e 12F0200F tst r2, #32 13803 0132 B5D0 beq .L863 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 455 5478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13804 .loc 1 5478 5 is_stmt 1 view .LVU4841 13805 0134 2046 mov r0, r4 13806 .LVL1029: 5478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13807 .loc 1 5478 5 is_stmt 0 view .LVU4842 13808 0136 FFF7FEFF bl I2C_ITMasterCplt 13809 .LVL1030: 5478:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 13810 .loc 1 5478 5 view .LVU4843 13811 013a B1E7 b .L863 13812 .LVL1031: 13813 .L873: 13814 .cfi_def_cfa_offset 0 13815 .cfi_restore 4 13816 .cfi_restore 14 5366:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13817 .loc 1 5366 3 discriminator 1 view .LVU4844 13818 013c 0220 movs r0, #2 13819 .LVL1032: 5489:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13820 .loc 1 5489 1 view .LVU4845 13821 013e 7047 bx lr 13822 .cfi_endproc 13823 .LFE387: 13825 .section .text.I2C_DMAError,"ax",%progbits 13826 .align 1 13827 .syntax unified 13828 .thumb 13829 .thumb_func 13831 I2C_DMAError: 13832 .LVL1033: 13833 .LFB405: 6878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U; 13834 .loc 1 6878 1 is_stmt 1 view -0 13835 .cfi_startproc 13836 @ args = 0, pretend = 0, frame = 0 13837 @ frame_needed = 0, uses_anonymous_args = 0 6878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t treatdmaerror = 0U; 13838 .loc 1 6878 1 is_stmt 0 view .LVU4847 13839 0000 38B5 push {r3, r4, r5, lr} 13840 .cfi_def_cfa_offset 16 13841 .cfi_offset 3, -16 13842 .cfi_offset 4, -12 13843 .cfi_offset 5, -8 13844 .cfi_offset 14, -4 6879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13845 .loc 1 6879 3 is_stmt 1 view .LVU4848 13846 .LVL1034: 6881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13847 .loc 1 6881 3 view .LVU4849 6881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 13848 .loc 1 6881 22 is_stmt 0 view .LVU4850 13849 0002 846B ldr r4, [r0, #56] 13850 .LVL1035: 6883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13851 .loc 1 6883 3 is_stmt 1 view .LVU4851 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 456 6883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13852 .loc 1 6883 11 is_stmt 0 view .LVU4852 13853 0004 A36B ldr r3, [r4, #56] 6883:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13854 .loc 1 6883 6 view .LVU4853 13855 0006 002B cmp r3, #0 13856 0008 77D0 beq .L891 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13857 .loc 1 6885 5 is_stmt 1 view .LVU4854 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13858 .loc 1 6885 9 is_stmt 0 view .LVU4855 13859 000a 1B68 ldr r3, [r3] 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13860 .loc 1 6885 47 view .LVU4856 13861 000c 4849 ldr r1, .L896 13862 000e 494A ldr r2, .L896+4 13863 0010 9342 cmp r3, r2 13864 0012 18BF it ne 13865 0014 8B42 cmpne r3, r1 13866 0016 2FD0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13867 .loc 1 6885 9 discriminator 2 view .LVU4857 13868 0018 1832 adds r2, r2, #24 13869 001a 9342 cmp r3, r2 13870 001c 2CD0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13871 .loc 1 6885 9 discriminator 4 view .LVU4858 13872 001e 1832 adds r2, r2, #24 13873 0020 9342 cmp r3, r2 13874 0022 29D0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13875 .loc 1 6885 9 discriminator 6 view .LVU4859 13876 0024 1832 adds r2, r2, #24 13877 0026 9342 cmp r3, r2 13878 0028 26D0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13879 .loc 1 6885 9 discriminator 8 view .LVU4860 13880 002a 1832 adds r2, r2, #24 13881 002c 9342 cmp r3, r2 13882 002e 23D0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13883 .loc 1 6885 9 discriminator 10 view .LVU4861 13884 0030 1832 adds r2, r2, #24 13885 0032 9342 cmp r3, r2 13886 0034 20D0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13887 .loc 1 6885 9 discriminator 12 view .LVU4862 13888 0036 1832 adds r2, r2, #24 13889 0038 9342 cmp r3, r2 13890 003a 1DD0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13891 .loc 1 6885 9 discriminator 14 view .LVU4863 13892 003c 02F55672 add r2, r2, #856 13893 0040 9342 cmp r3, r2 13894 0042 19D0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13895 .loc 1 6885 9 discriminator 16 view .LVU4864 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 457 13896 0044 1832 adds r2, r2, #24 13897 0046 9342 cmp r3, r2 13898 0048 16D0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13899 .loc 1 6885 9 discriminator 18 view .LVU4865 13900 004a 1832 adds r2, r2, #24 13901 004c 9342 cmp r3, r2 13902 004e 13D0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13903 .loc 1 6885 9 discriminator 20 view .LVU4866 13904 0050 1832 adds r2, r2, #24 13905 0052 9342 cmp r3, r2 13906 0054 10D0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13907 .loc 1 6885 9 discriminator 22 view .LVU4867 13908 0056 1832 adds r2, r2, #24 13909 0058 9342 cmp r3, r2 13910 005a 0DD0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13911 .loc 1 6885 9 discriminator 24 view .LVU4868 13912 005c 1832 adds r2, r2, #24 13913 005e 9342 cmp r3, r2 13914 0060 0AD0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13915 .loc 1 6885 9 discriminator 26 view .LVU4869 13916 0062 1832 adds r2, r2, #24 13917 0064 9342 cmp r3, r2 13918 0066 07D0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13919 .loc 1 6885 9 discriminator 28 view .LVU4870 13920 0068 1832 adds r2, r2, #24 13921 006a 9342 cmp r3, r2 13922 006c 04D0 beq .L883 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13923 .loc 1 6885 9 discriminator 30 view .LVU4871 13924 006e 5B68 ldr r3, [r3, #4] 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13925 .loc 1 6885 47 discriminator 30 view .LVU4872 13926 0070 B3FA83F3 clz r3, r3 13927 0074 5B09 lsrs r3, r3, #5 13928 0076 03E0 b .L885 13929 .L883: 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13930 .loc 1 6885 9 discriminator 29 view .LVU4873 13931 0078 5B68 ldr r3, [r3, #4] 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13932 .loc 1 6885 47 discriminator 29 view .LVU4874 13933 007a B3FA83F3 clz r3, r3 13934 007e 5B09 lsrs r3, r3, #5 13935 .L885: 6885:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13936 .loc 1 6885 8 discriminator 32 view .LVU4875 13937 0080 002B cmp r3, #0 13938 0082 3CD1 bne .L892 6879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 13939 .loc 1 6879 12 view .LVU4876 13940 0084 0025 movs r5, #0 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 458 13941 .L882: 13942 .LVL1036: 6891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13943 .loc 1 6891 3 is_stmt 1 view .LVU4877 6891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13944 .loc 1 6891 11 is_stmt 0 view .LVU4878 13945 0086 E36B ldr r3, [r4, #60] 6891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13946 .loc 1 6891 6 view .LVU4879 13947 0088 002B cmp r3, #0 13948 008a 40D0 beq .L886 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13949 .loc 1 6893 5 is_stmt 1 view .LVU4880 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13950 .loc 1 6893 9 is_stmt 0 view .LVU4881 13951 008c 1B68 ldr r3, [r3] 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13952 .loc 1 6893 47 view .LVU4882 13953 008e 2849 ldr r1, .L896 13954 0090 284A ldr r2, .L896+4 13955 0092 9342 cmp r3, r2 13956 0094 18BF it ne 13957 0096 8B42 cmpne r3, r1 13958 0098 33D0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13959 .loc 1 6893 9 discriminator 2 view .LVU4883 13960 009a 1832 adds r2, r2, #24 13961 009c 9342 cmp r3, r2 13962 009e 30D0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13963 .loc 1 6893 9 discriminator 4 view .LVU4884 13964 00a0 1832 adds r2, r2, #24 13965 00a2 9342 cmp r3, r2 13966 00a4 2DD0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13967 .loc 1 6893 9 discriminator 6 view .LVU4885 13968 00a6 1832 adds r2, r2, #24 13969 00a8 9342 cmp r3, r2 13970 00aa 2AD0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13971 .loc 1 6893 9 discriminator 8 view .LVU4886 13972 00ac 1832 adds r2, r2, #24 13973 00ae 9342 cmp r3, r2 13974 00b0 27D0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13975 .loc 1 6893 9 discriminator 10 view .LVU4887 13976 00b2 1832 adds r2, r2, #24 13977 00b4 9342 cmp r3, r2 13978 00b6 24D0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13979 .loc 1 6893 9 discriminator 12 view .LVU4888 13980 00b8 1832 adds r2, r2, #24 13981 00ba 9342 cmp r3, r2 13982 00bc 21D0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13983 .loc 1 6893 9 discriminator 14 view .LVU4889 13984 00be 02F55672 add r2, r2, #856 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 459 13985 00c2 9342 cmp r3, r2 13986 00c4 1DD0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13987 .loc 1 6893 9 discriminator 16 view .LVU4890 13988 00c6 1832 adds r2, r2, #24 13989 00c8 9342 cmp r3, r2 13990 00ca 1AD0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13991 .loc 1 6893 9 discriminator 18 view .LVU4891 13992 00cc 1832 adds r2, r2, #24 13993 00ce 9342 cmp r3, r2 13994 00d0 17D0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13995 .loc 1 6893 9 discriminator 20 view .LVU4892 13996 00d2 1832 adds r2, r2, #24 13997 00d4 9342 cmp r3, r2 13998 00d6 14D0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 13999 .loc 1 6893 9 discriminator 22 view .LVU4893 14000 00d8 1832 adds r2, r2, #24 14001 00da 9342 cmp r3, r2 14002 00dc 11D0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14003 .loc 1 6893 9 discriminator 24 view .LVU4894 14004 00de 1832 adds r2, r2, #24 14005 00e0 9342 cmp r3, r2 14006 00e2 0ED0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14007 .loc 1 6893 9 discriminator 26 view .LVU4895 14008 00e4 1832 adds r2, r2, #24 14009 00e6 9342 cmp r3, r2 14010 00e8 0BD0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14011 .loc 1 6893 9 discriminator 28 view .LVU4896 14012 00ea 1832 adds r2, r2, #24 14013 00ec 9342 cmp r3, r2 14014 00ee 08D0 beq .L887 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14015 .loc 1 6893 9 discriminator 30 view .LVU4897 14016 00f0 5B68 ldr r3, [r3, #4] 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14017 .loc 1 6893 47 discriminator 30 view .LVU4898 14018 00f2 B3FA83F3 clz r3, r3 14019 00f6 5B09 lsrs r3, r3, #5 14020 00f8 07E0 b .L889 14021 .LVL1037: 14022 .L891: 6879:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14023 .loc 1 6879 12 view .LVU4899 14024 00fa 0025 movs r5, #0 14025 00fc C3E7 b .L882 14026 .L892: 6887:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14027 .loc 1 6887 21 view .LVU4900 14028 00fe 0125 movs r5, #1 14029 0100 C1E7 b .L882 14030 .LVL1038: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 460 14031 .L887: 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14032 .loc 1 6893 9 discriminator 29 view .LVU4901 14033 0102 5B68 ldr r3, [r3, #4] 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14034 .loc 1 6893 47 discriminator 29 view .LVU4902 14035 0104 B3FA83F3 clz r3, r3 14036 0108 5B09 lsrs r3, r3, #5 14037 .L889: 6893:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14038 .loc 1 6893 8 discriminator 32 view .LVU4903 14039 010a 03B1 cbz r3, .L886 6895:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14040 .loc 1 6895 21 view .LVU4904 14041 010c 0125 movs r5, #1 14042 .LVL1039: 14043 .L886: 6900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14044 .loc 1 6900 3 is_stmt 1 view .LVU4905 6900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14045 .loc 1 6900 10 is_stmt 0 view .LVU4906 14046 010e FFF7FEFF bl HAL_DMA_GetError 14047 .LVL1040: 6900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14048 .loc 1 6900 6 discriminator 1 view .LVU4907 14049 0112 0228 cmp r0, #2 14050 0114 00D0 beq .L881 6900:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14051 .loc 1 6900 55 discriminator 1 view .LVU4908 14052 0116 05B9 cbnz r5, .L895 14053 .L881: 6908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14054 .loc 1 6908 1 view .LVU4909 14055 0118 38BD pop {r3, r4, r5, pc} 14056 .LVL1041: 14057 .L895: 6903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14058 .loc 1 6903 5 is_stmt 1 view .LVU4910 6903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14059 .loc 1 6903 9 is_stmt 0 view .LVU4911 14060 011a 2268 ldr r2, [r4] 6903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14061 .loc 1 6903 19 view .LVU4912 14062 011c 5368 ldr r3, [r2, #4] 6903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14063 .loc 1 6903 25 view .LVU4913 14064 011e 43F40043 orr r3, r3, #32768 14065 0122 5360 str r3, [r2, #4] 6906:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14066 .loc 1 6906 5 is_stmt 1 view .LVU4914 14067 0124 1021 movs r1, #16 14068 0126 2046 mov r0, r4 14069 0128 FFF7FEFF bl I2C_ITError 14070 .LVL1042: 6908:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14071 .loc 1 6908 1 is_stmt 0 view .LVU4915 14072 012c F4E7 b .L881 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 461 14073 .L897: 14074 012e 00BF .align 2 14075 .L896: 14076 0130 10000240 .word 1073872912 14077 0134 28000240 .word 1073872936 14078 .cfi_endproc 14079 .LFE405: 14081 .section .text.I2C_DMAMasterTransmitCplt,"ax",%progbits 14082 .align 1 14083 .syntax unified 14084 .thumb 14085 .thumb_func 14087 I2C_DMAMasterTransmitCplt: 14088 .LVL1043: 14089 .LFB401: 6718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14090 .loc 1 6718 1 is_stmt 1 view -0 14091 .cfi_startproc 14092 @ args = 0, pretend = 0, frame = 0 14093 @ frame_needed = 0, uses_anonymous_args = 0 6718:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14094 .loc 1 6718 1 is_stmt 0 view .LVU4917 14095 0000 10B5 push {r4, lr} 14096 .cfi_def_cfa_offset 8 14097 .cfi_offset 4, -8 14098 .cfi_offset 14, -4 6720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14099 .loc 1 6720 3 is_stmt 1 view .LVU4918 6720:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14100 .loc 1 6720 22 is_stmt 0 view .LVU4919 14101 0002 846B ldr r4, [r0, #56] 14102 .LVL1044: 6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14103 .loc 1 6723 3 is_stmt 1 view .LVU4920 6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14104 .loc 1 6723 7 is_stmt 0 view .LVU4921 14105 0004 2268 ldr r2, [r4] 6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14106 .loc 1 6723 17 view .LVU4922 14107 0006 1368 ldr r3, [r2] 6723:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14108 .loc 1 6723 23 view .LVU4923 14109 0008 23F48043 bic r3, r3, #16384 14110 000c 1360 str r3, [r2] 6726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14111 .loc 1 6726 3 is_stmt 1 view .LVU4924 6726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14112 .loc 1 6726 11 is_stmt 0 view .LVU4925 14113 000e 638D ldrh r3, [r4, #42] 14114 0010 9BB2 uxth r3, r3 6726:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14115 .loc 1 6726 6 view .LVU4926 14116 0012 ABB1 cbz r3, .L905 6735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14117 .loc 1 6735 5 is_stmt 1 view .LVU4927 6735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14118 .loc 1 6735 9 is_stmt 0 view .LVU4928 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 462 14119 0014 616A ldr r1, [r4, #36] 6735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14120 .loc 1 6735 27 view .LVU4929 14121 0016 238D ldrh r3, [r4, #40] 6735:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14122 .loc 1 6735 20 view .LVU4930 14123 0018 1944 add r1, r1, r3 14124 001a 6162 str r1, [r4, #36] 6738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14125 .loc 1 6738 5 is_stmt 1 view .LVU4931 6738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14126 .loc 1 6738 13 is_stmt 0 view .LVU4932 14127 001c 638D ldrh r3, [r4, #42] 14128 001e 9BB2 uxth r3, r3 6738:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14129 .loc 1 6738 8 view .LVU4933 14130 0020 FF2B cmp r3, #255 14131 0022 12D9 bls .L901 6740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14132 .loc 1 6740 7 is_stmt 1 view .LVU4934 6740:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14133 .loc 1 6740 22 is_stmt 0 view .LVU4935 14134 0024 FF23 movs r3, #255 14135 0026 2385 strh r3, [r4, #40] @ movhi 14136 .L902: 6748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14137 .loc 1 6748 5 is_stmt 1 view .LVU4936 6748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14138 .loc 1 6748 81 is_stmt 0 view .LVU4937 14139 0028 2268 ldr r2, [r4] 6748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14140 .loc 1 6748 9 view .LVU4938 14141 002a 238D ldrh r3, [r4, #40] 14142 002c 2832 adds r2, r2, #40 14143 002e A06B ldr r0, [r4, #56] 14144 .LVL1045: 6748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14145 .loc 1 6748 9 view .LVU4939 14146 0030 FFF7FEFF bl HAL_DMA_Start_IT 14147 .LVL1046: 6748:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14148 .loc 1 6748 8 discriminator 1 view .LVU4940 14149 0034 60B1 cbz r0, .L903 6752:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14150 .loc 1 6752 7 is_stmt 1 view .LVU4941 14151 0036 1021 movs r1, #16 14152 0038 2046 mov r0, r4 14153 003a FFF7FEFF bl I2C_ITError 14154 .LVL1047: 14155 .L898: 6760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14156 .loc 1 6760 1 is_stmt 0 view .LVU4942 14157 003e 10BD pop {r4, pc} 14158 .LVL1048: 14159 .L905: 6729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14160 .loc 1 6729 5 is_stmt 1 view .LVU4943 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 463 14161 0040 2021 movs r1, #32 14162 0042 2046 mov r0, r4 14163 .LVL1049: 6729:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14164 .loc 1 6729 5 is_stmt 0 view .LVU4944 14165 0044 FFF7FEFF bl I2C_Enable_IRQ 14166 .LVL1050: 14167 0048 F9E7 b .L898 14168 .LVL1051: 14169 .L901: 6744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14170 .loc 1 6744 7 is_stmt 1 view .LVU4945 6744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14171 .loc 1 6744 28 is_stmt 0 view .LVU4946 14172 004a 638D ldrh r3, [r4, #42] 6744:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14173 .loc 1 6744 22 view .LVU4947 14174 004c 2385 strh r3, [r4, #40] @ movhi 14175 004e EBE7 b .L902 14176 .LVL1052: 14177 .L903: 6757:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14178 .loc 1 6757 7 is_stmt 1 view .LVU4948 14179 0050 4021 movs r1, #64 14180 0052 2046 mov r0, r4 14181 0054 FFF7FEFF bl I2C_Enable_IRQ 14182 .LVL1053: 6760:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14183 .loc 1 6760 1 is_stmt 0 view .LVU4949 14184 0058 F1E7 b .L898 14185 .cfi_endproc 14186 .LFE401: 14188 .section .text.I2C_DMAMasterReceiveCplt,"ax",%progbits 14189 .align 1 14190 .syntax unified 14191 .thumb 14192 .thumb_func 14194 I2C_DMAMasterReceiveCplt: 14195 .LVL1054: 14196 .LFB403: 6798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14197 .loc 1 6798 1 is_stmt 1 view -0 14198 .cfi_startproc 14199 @ args = 0, pretend = 0, frame = 0 14200 @ frame_needed = 0, uses_anonymous_args = 0 6798:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14201 .loc 1 6798 1 is_stmt 0 view .LVU4951 14202 0000 10B5 push {r4, lr} 14203 .cfi_def_cfa_offset 8 14204 .cfi_offset 4, -8 14205 .cfi_offset 14, -4 6800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14206 .loc 1 6800 3 is_stmt 1 view .LVU4952 6800:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14207 .loc 1 6800 22 is_stmt 0 view .LVU4953 14208 0002 846B ldr r4, [r0, #56] 14209 .LVL1055: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 464 6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14210 .loc 1 6803 3 is_stmt 1 view .LVU4954 6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14211 .loc 1 6803 7 is_stmt 0 view .LVU4955 14212 0004 2268 ldr r2, [r4] 6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14213 .loc 1 6803 17 view .LVU4956 14214 0006 1368 ldr r3, [r2] 6803:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14215 .loc 1 6803 23 view .LVU4957 14216 0008 23F40043 bic r3, r3, #32768 14217 000c 1360 str r3, [r2] 6806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14218 .loc 1 6806 3 is_stmt 1 view .LVU4958 6806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14219 .loc 1 6806 11 is_stmt 0 view .LVU4959 14220 000e 638D ldrh r3, [r4, #42] 14221 0010 9BB2 uxth r3, r3 6806:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14222 .loc 1 6806 6 view .LVU4960 14223 0012 ABB1 cbz r3, .L913 6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14224 .loc 1 6815 5 is_stmt 1 view .LVU4961 6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14225 .loc 1 6815 9 is_stmt 0 view .LVU4962 14226 0014 626A ldr r2, [r4, #36] 6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14227 .loc 1 6815 27 view .LVU4963 14228 0016 238D ldrh r3, [r4, #40] 6815:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14229 .loc 1 6815 20 view .LVU4964 14230 0018 1A44 add r2, r2, r3 14231 001a 6262 str r2, [r4, #36] 6818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14232 .loc 1 6818 5 is_stmt 1 view .LVU4965 6818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14233 .loc 1 6818 13 is_stmt 0 view .LVU4966 14234 001c 638D ldrh r3, [r4, #42] 14235 001e 9BB2 uxth r3, r3 6818:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14236 .loc 1 6818 8 view .LVU4967 14237 0020 FF2B cmp r3, #255 14238 0022 12D9 bls .L909 6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14239 .loc 1 6820 7 is_stmt 1 view .LVU4968 6820:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14240 .loc 1 6820 22 is_stmt 0 view .LVU4969 14241 0024 FF23 movs r3, #255 14242 0026 2385 strh r3, [r4, #40] @ movhi 14243 .L910: 6828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14244 .loc 1 6828 5 is_stmt 1 view .LVU4970 6828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14245 .loc 1 6828 55 is_stmt 0 view .LVU4971 14246 0028 2168 ldr r1, [r4] 6828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14247 .loc 1 6828 9 view .LVU4972 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 465 14248 002a 238D ldrh r3, [r4, #40] 14249 002c 2431 adds r1, r1, #36 14250 002e E06B ldr r0, [r4, #60] 14251 .LVL1056: 6828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14252 .loc 1 6828 9 view .LVU4973 14253 0030 FFF7FEFF bl HAL_DMA_Start_IT 14254 .LVL1057: 6828:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferSize) != HAL_OK) 14255 .loc 1 6828 8 discriminator 1 view .LVU4974 14256 0034 60B1 cbz r0, .L911 6832:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14257 .loc 1 6832 7 is_stmt 1 view .LVU4975 14258 0036 1021 movs r1, #16 14259 0038 2046 mov r0, r4 14260 003a FFF7FEFF bl I2C_ITError 14261 .LVL1058: 14262 .L906: 6840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14263 .loc 1 6840 1 is_stmt 0 view .LVU4976 14264 003e 10BD pop {r4, pc} 14265 .LVL1059: 14266 .L913: 6809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14267 .loc 1 6809 5 is_stmt 1 view .LVU4977 14268 0040 2021 movs r1, #32 14269 0042 2046 mov r0, r4 14270 .LVL1060: 6809:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14271 .loc 1 6809 5 is_stmt 0 view .LVU4978 14272 0044 FFF7FEFF bl I2C_Enable_IRQ 14273 .LVL1061: 14274 0048 F9E7 b .L906 14275 .LVL1062: 14276 .L909: 6824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14277 .loc 1 6824 7 is_stmt 1 view .LVU4979 6824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14278 .loc 1 6824 28 is_stmt 0 view .LVU4980 14279 004a 638D ldrh r3, [r4, #42] 6824:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14280 .loc 1 6824 22 view .LVU4981 14281 004c 2385 strh r3, [r4, #40] @ movhi 14282 004e EBE7 b .L910 14283 .LVL1063: 14284 .L911: 6837:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14285 .loc 1 6837 7 is_stmt 1 view .LVU4982 14286 0050 4021 movs r1, #64 14287 0052 2046 mov r0, r4 14288 0054 FFF7FEFF bl I2C_Enable_IRQ 14289 .LVL1064: 6840:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14290 .loc 1 6840 1 is_stmt 0 view .LVU4983 14291 0058 F1E7 b .L906 14292 .cfi_endproc 14293 .LFE403: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 466 14295 .section .text.I2C_Mem_ISR_IT,"ax",%progbits 14296 .align 1 14297 .syntax unified 14298 .thumb 14299 .thumb_func 14301 I2C_Mem_ISR_IT: 14302 .LVL1065: 14303 .LFB385: 5078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 14304 .loc 1 5078 1 is_stmt 1 view -0 14305 .cfi_startproc 14306 @ args = 0, pretend = 0, frame = 0 14307 @ frame_needed = 0, uses_anonymous_args = 0 5079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 14308 .loc 1 5079 3 view .LVU4985 5080:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14309 .loc 1 5080 3 view .LVU4986 5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14310 .loc 1 5083 3 view .LVU4987 5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14311 .loc 1 5083 3 view .LVU4988 14312 0000 90F84030 ldrb r3, [r0, #64] @ zero_extendqisi2 14313 0004 012B cmp r3, #1 14314 0006 00F0C080 beq .L927 5078:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t direction = I2C_GENERATE_START_WRITE; 14315 .loc 1 5078 1 is_stmt 0 view .LVU4989 14316 000a 70B5 push {r4, r5, r6, lr} 14317 .cfi_def_cfa_offset 16 14318 .cfi_offset 4, -16 14319 .cfi_offset 5, -12 14320 .cfi_offset 6, -8 14321 .cfi_offset 14, -4 14322 000c 82B0 sub sp, sp, #8 14323 .cfi_def_cfa_offset 24 14324 000e 0446 mov r4, r0 14325 0010 0D46 mov r5, r1 14326 0012 1646 mov r6, r2 5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14327 .loc 1 5083 3 is_stmt 1 discriminator 2 view .LVU4990 14328 0014 0123 movs r3, #1 14329 0016 80F84030 strb r3, [r0, #64] 5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14330 .loc 1 5083 3 view .LVU4991 5085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14331 .loc 1 5085 3 view .LVU4992 5085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14332 .loc 1 5085 6 is_stmt 0 view .LVU4993 14333 001a 11F0100F tst r1, #16 14334 001e 02D0 beq .L916 5085:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_NACKI) != RESET)) 14335 .loc 1 5085 58 discriminator 1 view .LVU4994 14336 0020 12F0100F tst r2, #16 14337 0024 22D1 bne .L933 14338 .L916: 5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 14339 .loc 1 5099 8 is_stmt 1 view .LVU4995 5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 467 14340 .loc 1 5099 11 is_stmt 0 view .LVU4996 14341 0026 15F0040F tst r5, #4 14342 002a 29D0 beq .L918 5099:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_RXI) != RESET)) 14343 .loc 1 5099 65 discriminator 1 view .LVU4997 14344 002c 16F0040F tst r6, #4 14345 0030 26D0 beq .L918 5103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14346 .loc 1 5103 5 is_stmt 1 view .LVU4998 5103:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14347 .loc 1 5103 16 is_stmt 0 view .LVU4999 14348 0032 25F00405 bic r5, r5, #4 14349 .LVL1066: 5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14350 .loc 1 5106 5 is_stmt 1 view .LVU5000 5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14351 .loc 1 5106 36 is_stmt 0 view .LVU5001 14352 0036 2368 ldr r3, [r4] 5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14353 .loc 1 5106 46 view .LVU5002 14354 0038 5A6A ldr r2, [r3, #36] 14355 .LVL1067: 5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14356 .loc 1 5106 10 view .LVU5003 14357 003a 636A ldr r3, [r4, #36] 5106:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14358 .loc 1 5106 21 view .LVU5004 14359 003c 1A70 strb r2, [r3] 5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14360 .loc 1 5109 5 is_stmt 1 view .LVU5005 5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14361 .loc 1 5109 9 is_stmt 0 view .LVU5006 14362 003e 636A ldr r3, [r4, #36] 5109:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14363 .loc 1 5109 19 view .LVU5007 14364 0040 0133 adds r3, r3, #1 14365 0042 6362 str r3, [r4, #36] 5111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 14366 .loc 1 5111 5 is_stmt 1 view .LVU5008 5111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 14367 .loc 1 5111 9 is_stmt 0 view .LVU5009 14368 0044 238D ldrh r3, [r4, #40] 5111:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 14369 .loc 1 5111 19 view .LVU5010 14370 0046 013B subs r3, r3, #1 14371 0048 2385 strh r3, [r4, #40] @ movhi 5112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14372 .loc 1 5112 5 is_stmt 1 view .LVU5011 5112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14373 .loc 1 5112 9 is_stmt 0 view .LVU5012 14374 004a 638D ldrh r3, [r4, #42] 14375 004c 9BB2 uxth r3, r3 5112:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14376 .loc 1 5112 20 view .LVU5013 14377 004e 013B subs r3, r3, #1 14378 0050 9BB2 uxth r3, r3 14379 0052 6385 strh r3, [r4, #42] @ movhi ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 468 14380 .LVL1068: 14381 .L917: 5196:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14382 .loc 1 5196 3 is_stmt 1 view .LVU5014 5198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14383 .loc 1 5198 3 view .LVU5015 5198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14384 .loc 1 5198 6 is_stmt 0 view .LVU5016 14385 0054 15F0200F tst r5, #32 14386 0058 03D0 beq .L926 5198:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_STOPI) != RESET)) 14387 .loc 1 5198 61 discriminator 1 view .LVU5017 14388 005a 16F0200F tst r6, #32 14389 005e 40F08F80 bne .L934 14390 .L926: 5206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14391 .loc 1 5206 3 is_stmt 1 view .LVU5018 5206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14392 .loc 1 5206 3 view .LVU5019 14393 0062 0020 movs r0, #0 14394 0064 84F84000 strb r0, [r4, #64] 5206:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14395 .loc 1 5206 3 view .LVU5020 5208:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14396 .loc 1 5208 3 view .LVU5021 5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14397 .loc 1 5209 1 is_stmt 0 view .LVU5022 14398 0068 02B0 add sp, sp, #8 14399 .cfi_remember_state 14400 .cfi_def_cfa_offset 16 14401 @ sp needed 14402 006a 70BD pop {r4, r5, r6, pc} 14403 .LVL1069: 14404 .L933: 14405 .cfi_restore_state 5089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14406 .loc 1 5089 5 is_stmt 1 view .LVU5023 14407 006c 0368 ldr r3, [r0] 14408 006e 1022 movs r2, #16 14409 .LVL1070: 5089:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14410 .loc 1 5089 5 is_stmt 0 view .LVU5024 14411 0070 DA61 str r2, [r3, #28] 5094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14412 .loc 1 5094 5 is_stmt 1 view .LVU5025 5094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14413 .loc 1 5094 9 is_stmt 0 view .LVU5026 14414 0072 436C ldr r3, [r0, #68] 5094:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14415 .loc 1 5094 21 view .LVU5027 14416 0074 43F00403 orr r3, r3, #4 14417 0078 4364 str r3, [r0, #68] 5097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14418 .loc 1 5097 5 is_stmt 1 view .LVU5028 14419 007a FFF7FEFF bl I2C_Flush_TXDR 14420 .LVL1071: 5097:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 469 14421 .loc 1 5097 5 is_stmt 0 view .LVU5029 14422 007e E9E7 b .L917 14423 .LVL1072: 14424 .L918: 5114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14425 .loc 1 5114 8 is_stmt 1 view .LVU5030 5114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14426 .loc 1 5114 11 is_stmt 0 view .LVU5031 14427 0080 15F0020F tst r5, #2 14428 0084 1DD0 beq .L919 5114:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TXI) != RESET)) 14429 .loc 1 5114 65 discriminator 1 view .LVU5032 14430 0086 16F0020F tst r6, #2 14431 008a 1AD0 beq .L919 5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14432 .loc 1 5117 5 is_stmt 1 view .LVU5033 5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14433 .loc 1 5117 13 is_stmt 0 view .LVU5034 14434 008c 236D ldr r3, [r4, #80] 5117:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14435 .loc 1 5117 8 view .LVU5035 14436 008e B3F1FF3F cmp r3, #-1 14437 0092 06D0 beq .L935 5131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14438 .loc 1 5131 7 is_stmt 1 view .LVU5036 5131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14439 .loc 1 5131 11 is_stmt 0 view .LVU5037 14440 0094 2368 ldr r3, [r4] 5131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14441 .loc 1 5131 34 view .LVU5038 14442 0096 226D ldr r2, [r4, #80] 14443 .LVL1073: 5131:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14444 .loc 1 5131 28 view .LVU5039 14445 0098 9A62 str r2, [r3, #40] 5134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14446 .loc 1 5134 7 is_stmt 1 view .LVU5040 5134:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14447 .loc 1 5134 24 is_stmt 0 view .LVU5041 14448 009a 4FF0FF33 mov r3, #-1 14449 009e 2365 str r3, [r4, #80] 14450 00a0 D8E7 b .L917 14451 .LVL1074: 14452 .L935: 5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14453 .loc 1 5120 7 is_stmt 1 view .LVU5042 5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14454 .loc 1 5120 35 is_stmt 0 view .LVU5043 14455 00a2 626A ldr r2, [r4, #36] 14456 .LVL1075: 5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14457 .loc 1 5120 11 view .LVU5044 14458 00a4 2368 ldr r3, [r4] 5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14459 .loc 1 5120 30 view .LVU5045 14460 00a6 1278 ldrb r2, [r2] @ zero_extendqisi2 5120:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 470 14461 .loc 1 5120 28 view .LVU5046 14462 00a8 9A62 str r2, [r3, #40] 5123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14463 .loc 1 5123 7 is_stmt 1 view .LVU5047 5123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14464 .loc 1 5123 11 is_stmt 0 view .LVU5048 14465 00aa 636A ldr r3, [r4, #36] 5123:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14466 .loc 1 5123 21 view .LVU5049 14467 00ac 0133 adds r3, r3, #1 14468 00ae 6362 str r3, [r4, #36] 5125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 14469 .loc 1 5125 7 is_stmt 1 view .LVU5050 5125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 14470 .loc 1 5125 11 is_stmt 0 view .LVU5051 14471 00b0 238D ldrh r3, [r4, #40] 5125:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** hi2c->XferCount--; 14472 .loc 1 5125 21 view .LVU5052 14473 00b2 013B subs r3, r3, #1 14474 00b4 2385 strh r3, [r4, #40] @ movhi 5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14475 .loc 1 5126 7 is_stmt 1 view .LVU5053 5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14476 .loc 1 5126 11 is_stmt 0 view .LVU5054 14477 00b6 638D ldrh r3, [r4, #42] 14478 00b8 9BB2 uxth r3, r3 5126:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14479 .loc 1 5126 22 view .LVU5055 14480 00ba 013B subs r3, r3, #1 14481 00bc 9BB2 uxth r3, r3 14482 00be 6385 strh r3, [r4, #42] @ movhi 14483 00c0 C8E7 b .L917 14484 .LVL1076: 14485 .L919: 5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14486 .loc 1 5137 8 is_stmt 1 view .LVU5056 5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14487 .loc 1 5137 11 is_stmt 0 view .LVU5057 14488 00c2 15F0800F tst r5, #128 14489 00c6 2AD0 beq .L921 5137:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14490 .loc 1 5137 64 discriminator 1 view .LVU5058 14491 00c8 16F0400F tst r6, #64 14492 00cc 27D0 beq .L921 5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14493 .loc 1 5140 5 is_stmt 1 view .LVU5059 5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14494 .loc 1 5140 14 is_stmt 0 view .LVU5060 14495 00ce 638D ldrh r3, [r4, #42] 14496 00d0 9BB2 uxth r3, r3 5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14497 .loc 1 5140 8 view .LVU5061 14498 00d2 FBB1 cbz r3, .L922 5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14499 .loc 1 5140 41 discriminator 1 view .LVU5062 14500 00d4 238D ldrh r3, [r4, #40] 5140:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 471 14501 .loc 1 5140 33 discriminator 1 view .LVU5063 14502 00d6 EBB9 cbnz r3, .L922 5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14503 .loc 1 5142 7 is_stmt 1 view .LVU5064 5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14504 .loc 1 5142 15 is_stmt 0 view .LVU5065 14505 00d8 638D ldrh r3, [r4, #42] 14506 00da 9BB2 uxth r3, r3 5142:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14507 .loc 1 5142 10 view .LVU5066 14508 00dc FF2B cmp r3, #255 14509 00de 0BD9 bls .L923 5144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14510 .loc 1 5144 9 is_stmt 1 view .LVU5067 5144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14511 .loc 1 5144 24 is_stmt 0 view .LVU5068 14512 00e0 FF22 movs r2, #255 14513 .LVL1077: 5144:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14514 .loc 1 5144 24 view .LVU5069 14515 00e2 2285 strh r2, [r4, #40] @ movhi 5145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14516 .loc 1 5145 9 is_stmt 1 view .LVU5070 5145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14517 .loc 1 5145 48 is_stmt 0 view .LVU5071 14518 00e4 E16C ldr r1, [r4, #76] 14519 .LVL1078: 5145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14520 .loc 1 5145 9 view .LVU5072 14521 00e6 0023 movs r3, #0 14522 00e8 0093 str r3, [sp] 14523 00ea 4FF08073 mov r3, #16777216 14524 00ee 89B2 uxth r1, r1 14525 00f0 2046 mov r0, r4 14526 .LVL1079: 5145:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, I2C_NO_STARTSTOP); 14527 .loc 1 5145 9 view .LVU5073 14528 00f2 FFF7FEFF bl I2C_TransferConfig 14529 .LVL1080: 14530 00f6 ADE7 b .L917 14531 .LVL1081: 14532 .L923: 5150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14533 .loc 1 5150 9 is_stmt 1 view .LVU5074 5150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14534 .loc 1 5150 30 is_stmt 0 view .LVU5075 14535 00f8 628D ldrh r2, [r4, #42] 14536 .LVL1082: 5150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14537 .loc 1 5150 30 view .LVU5076 14538 00fa 92B2 uxth r2, r2 5150:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_TransferConfig(hi2c, (uint16_t)hi2c->Devaddress, (uint8_t)hi2c->XferSize, 14539 .loc 1 5150 24 view .LVU5077 14540 00fc 2285 strh r2, [r4, #40] @ movhi 5151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14541 .loc 1 5151 9 is_stmt 1 view .LVU5078 5151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 472 14542 .loc 1 5151 48 is_stmt 0 view .LVU5079 14543 00fe E16C ldr r1, [r4, #76] 14544 .LVL1083: 5151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14545 .loc 1 5151 9 view .LVU5080 14546 0100 0023 movs r3, #0 14547 0102 0093 str r3, [sp] 14548 0104 4FF00073 mov r3, #33554432 14549 0108 D2B2 uxtb r2, r2 14550 010a 89B2 uxth r1, r1 14551 010c 2046 mov r0, r4 14552 .LVL1084: 5151:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, I2C_NO_STARTSTOP); 14553 .loc 1 5151 9 view .LVU5081 14554 010e FFF7FEFF bl I2C_TransferConfig 14555 .LVL1085: 14556 0112 9FE7 b .L917 14557 .LVL1086: 14558 .L922: 5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14559 .loc 1 5159 7 is_stmt 1 view .LVU5082 14560 0114 4021 movs r1, #64 14561 .LVL1087: 5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14562 .loc 1 5159 7 is_stmt 0 view .LVU5083 14563 0116 2046 mov r0, r4 14564 .LVL1088: 5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14565 .loc 1 5159 7 view .LVU5084 14566 0118 FFF7FEFF bl I2C_ITError 14567 .LVL1089: 5159:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14568 .loc 1 5159 7 view .LVU5085 14569 011c 9AE7 b .L917 14570 .LVL1090: 14571 .L921: 5162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14572 .loc 1 5162 8 is_stmt 1 view .LVU5086 5162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14573 .loc 1 5162 11 is_stmt 0 view .LVU5087 14574 011e 15F0400F tst r5, #64 14575 0122 97D0 beq .L917 5162:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(ITSources, I2C_IT_TCI) != RESET)) 14576 .loc 1 5162 63 discriminator 1 view .LVU5088 14577 0124 16F0400F tst r6, #64 14578 0128 94D0 beq .L917 5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14579 .loc 1 5166 5 is_stmt 1 view .LVU5089 14580 012a 0121 movs r1, #1 14581 .LVL1091: 5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14582 .loc 1 5166 5 is_stmt 0 view .LVU5090 14583 012c 2046 mov r0, r4 14584 .LVL1092: 5166:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14585 .loc 1 5166 5 view .LVU5091 14586 012e FFF7FEFF bl I2C_Disable_IRQ ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 473 14587 .LVL1093: 5169:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14588 .loc 1 5169 5 is_stmt 1 view .LVU5092 14589 0132 0221 movs r1, #2 14590 0134 2046 mov r0, r4 14591 0136 FFF7FEFF bl I2C_Enable_IRQ 14592 .LVL1094: 5171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14593 .loc 1 5171 5 view .LVU5093 5171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14594 .loc 1 5171 13 is_stmt 0 view .LVU5094 14595 013a 94F84130 ldrb r3, [r4, #65] @ zero_extendqisi2 5171:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14596 .loc 1 5171 8 view .LVU5095 14597 013e 222B cmp r3, #34 14598 0140 0FD0 beq .L928 5079:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmpITFlags = ITFlags; 14599 .loc 1 5079 12 view .LVU5096 14600 0142 1348 ldr r0, .L936 14601 .L924: 14602 .LVL1095: 5176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14603 .loc 1 5176 5 is_stmt 1 view .LVU5097 5176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14604 .loc 1 5176 13 is_stmt 0 view .LVU5098 14605 0144 638D ldrh r3, [r4, #42] 14606 0146 9BB2 uxth r3, r3 5176:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14607 .loc 1 5176 8 view .LVU5099 14608 0148 FF2B cmp r3, #255 14609 014a 0CD9 bls .L925 5178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14610 .loc 1 5178 7 is_stmt 1 view .LVU5100 5178:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14611 .loc 1 5178 22 is_stmt 0 view .LVU5101 14612 014c FF22 movs r2, #255 14613 014e 2285 strh r2, [r4, #40] @ movhi 5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14614 .loc 1 5181 7 is_stmt 1 view .LVU5102 5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14615 .loc 1 5181 46 is_stmt 0 view .LVU5103 14616 0150 E16C ldr r1, [r4, #76] 5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14617 .loc 1 5181 7 view .LVU5104 14618 0152 0090 str r0, [sp] 14619 0154 4FF08073 mov r3, #16777216 14620 0158 89B2 uxth r1, r1 14621 015a 2046 mov r0, r4 14622 .LVL1096: 5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14623 .loc 1 5181 7 view .LVU5105 14624 015c FFF7FEFF bl I2C_TransferConfig 14625 .LVL1097: 5181:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_RELOAD_MODE, direction); 14626 .loc 1 5181 7 view .LVU5106 14627 0160 78E7 b .L917 14628 .LVL1098: ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 474 14629 .L928: 5173:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14630 .loc 1 5173 17 view .LVU5107 14631 0162 0C48 ldr r0, .L936+4 14632 0164 EEE7 b .L924 14633 .LVL1099: 14634 .L925: 5186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14635 .loc 1 5186 7 is_stmt 1 view .LVU5108 5186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14636 .loc 1 5186 28 is_stmt 0 view .LVU5109 14637 0166 628D ldrh r2, [r4, #42] 14638 0168 92B2 uxth r2, r2 5186:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14639 .loc 1 5186 22 view .LVU5110 14640 016a 2285 strh r2, [r4, #40] @ movhi 5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14641 .loc 1 5189 7 is_stmt 1 view .LVU5111 5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14642 .loc 1 5189 46 is_stmt 0 view .LVU5112 14643 016c E16C ldr r1, [r4, #76] 5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14644 .loc 1 5189 7 view .LVU5113 14645 016e 0090 str r0, [sp] 14646 0170 4FF00073 mov r3, #33554432 14647 0174 D2B2 uxtb r2, r2 14648 0176 89B2 uxth r1, r1 14649 0178 2046 mov r0, r4 14650 .LVL1100: 5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14651 .loc 1 5189 7 view .LVU5114 14652 017a FFF7FEFF bl I2C_TransferConfig 14653 .LVL1101: 5189:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** I2C_AUTOEND_MODE, direction); 14654 .loc 1 5189 7 view .LVU5115 14655 017e 69E7 b .L917 14656 .LVL1102: 14657 .L934: 5202:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14658 .loc 1 5202 5 is_stmt 1 view .LVU5116 14659 0180 2946 mov r1, r5 14660 0182 2046 mov r0, r4 14661 0184 FFF7FEFF bl I2C_ITMasterCplt 14662 .LVL1103: 14663 0188 6BE7 b .L926 14664 .LVL1104: 14665 .L927: 14666 .cfi_def_cfa_offset 0 14667 .cfi_restore 4 14668 .cfi_restore 5 14669 .cfi_restore 6 14670 .cfi_restore 14 5083:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14671 .loc 1 5083 3 is_stmt 0 discriminator 1 view .LVU5117 14672 018a 0220 movs r0, #2 14673 .LVL1105: 5209:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 475 14674 .loc 1 5209 1 view .LVU5118 14675 018c 7047 bx lr 14676 .L937: 14677 018e 00BF .align 2 14678 .L936: 14679 0190 00200080 .word -2147475456 14680 0194 00240080 .word -2147474432 14681 .cfi_endproc 14682 .LFE385: 14684 .section .text.HAL_I2C_ER_IRQHandler,"ax",%progbits 14685 .align 1 14686 .global HAL_I2C_ER_IRQHandler 14687 .syntax unified 14688 .thumb 14689 .thumb_func 14691 HAL_I2C_ER_IRQHandler: 14692 .LVL1106: 14693 .LFB370: 4644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 14694 .loc 1 4644 1 is_stmt 1 view -0 14695 .cfi_startproc 14696 @ args = 0, pretend = 0, frame = 0 14697 @ frame_needed = 0, uses_anonymous_args = 0 4644:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itflags = READ_REG(hi2c->Instance->ISR); 14698 .loc 1 4644 1 is_stmt 0 view .LVU5120 14699 0000 10B5 push {r4, lr} 14700 .cfi_def_cfa_offset 8 14701 .cfi_offset 4, -8 14702 .cfi_offset 14, -4 4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14703 .loc 1 4645 3 is_stmt 1 view .LVU5121 4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14704 .loc 1 4645 24 is_stmt 0 view .LVU5122 14705 0002 0268 ldr r2, [r0] 4645:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t itsources = READ_REG(hi2c->Instance->CR1); 14706 .loc 1 4645 12 view .LVU5123 14707 0004 9369 ldr r3, [r2, #24] 14708 .LVL1107: 4646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 14709 .loc 1 4646 3 is_stmt 1 view .LVU5124 4646:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** uint32_t tmperror; 14710 .loc 1 4646 12 is_stmt 0 view .LVU5125 14711 0006 1168 ldr r1, [r2] 14712 .LVL1108: 4647:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14713 .loc 1 4647 3 is_stmt 1 view .LVU5126 4650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14714 .loc 1 4650 3 view .LVU5127 4650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14715 .loc 1 4650 6 is_stmt 0 view .LVU5128 14716 0008 13F4807F tst r3, #256 14717 000c 09D0 beq .L939 4650:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14718 .loc 1 4650 57 discriminator 1 view .LVU5129 14719 000e 11F0800F tst r1, #128 14720 0012 06D0 beq .L939 4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 476 14721 .loc 1 4653 5 is_stmt 1 view .LVU5130 4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14722 .loc 1 4653 9 is_stmt 0 view .LVU5131 14723 0014 446C ldr r4, [r0, #68] 4653:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14724 .loc 1 4653 21 view .LVU5132 14725 0016 44F00104 orr r4, r4, #1 14726 001a 4464 str r4, [r0, #68] 4656:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14727 .loc 1 4656 5 is_stmt 1 view .LVU5133 14728 001c 4FF48074 mov r4, #256 14729 0020 D461 str r4, [r2, #28] 14730 .L939: 4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14731 .loc 1 4660 3 view .LVU5134 4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14732 .loc 1 4660 6 is_stmt 0 view .LVU5135 14733 0022 13F4806F tst r3, #1024 14734 0026 0AD0 beq .L940 4660:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14735 .loc 1 4660 56 discriminator 1 view .LVU5136 14736 0028 11F0800F tst r1, #128 14737 002c 07D0 beq .L940 4663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14738 .loc 1 4663 5 is_stmt 1 view .LVU5137 4663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14739 .loc 1 4663 9 is_stmt 0 view .LVU5138 14740 002e 426C ldr r2, [r0, #68] 4663:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14741 .loc 1 4663 21 view .LVU5139 14742 0030 42F00802 orr r2, r2, #8 14743 0034 4264 str r2, [r0, #68] 4666:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14744 .loc 1 4666 5 is_stmt 1 view .LVU5140 14745 0036 0268 ldr r2, [r0] 14746 0038 4FF48064 mov r4, #1024 14747 003c D461 str r4, [r2, #28] 14748 .L940: 4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14749 .loc 1 4670 3 view .LVU5141 4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14750 .loc 1 4670 6 is_stmt 0 view .LVU5142 14751 003e 13F4007F tst r3, #512 14752 0042 0AD0 beq .L941 4670:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** (I2C_CHECK_IT_SOURCE(itsources, I2C_IT_ERRI) != RESET)) 14753 .loc 1 4670 57 discriminator 1 view .LVU5143 14754 0044 11F0800F tst r1, #128 14755 0048 07D0 beq .L941 4673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14756 .loc 1 4673 5 is_stmt 1 view .LVU5144 4673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14757 .loc 1 4673 9 is_stmt 0 view .LVU5145 14758 004a 436C ldr r3, [r0, #68] 14759 .LVL1109: 4673:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14760 .loc 1 4673 21 view .LVU5146 14761 004c 43F00203 orr r3, r3, #2 ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 477 14762 0050 4364 str r3, [r0, #68] 4676:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14763 .loc 1 4676 5 is_stmt 1 view .LVU5147 14764 0052 0368 ldr r3, [r0] 14765 0054 4FF40072 mov r2, #512 14766 0058 DA61 str r2, [r3, #28] 14767 .L941: 4680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14768 .loc 1 4680 3 view .LVU5148 4680:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14769 .loc 1 4680 12 is_stmt 0 view .LVU5149 14770 005a 416C ldr r1, [r0, #68] 14771 .LVL1110: 4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14772 .loc 1 4683 3 is_stmt 1 view .LVU5150 4683:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14773 .loc 1 4683 6 is_stmt 0 view .LVU5151 14774 005c 11F00B0F tst r1, #11 14775 0060 00D1 bne .L944 14776 .LVL1111: 14777 .L938: 4687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14778 .loc 1 4687 1 view .LVU5152 14779 0062 10BD pop {r4, pc} 14780 .LVL1112: 14781 .L944: 4685:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14782 .loc 1 4685 5 is_stmt 1 view .LVU5153 14783 0064 FFF7FEFF bl I2C_ITError 14784 .LVL1113: 4687:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14785 .loc 1 4687 1 is_stmt 0 view .LVU5154 14786 0068 FBE7 b .L938 14787 .cfi_endproc 14788 .LFE370: 14790 .section .text.I2C_DMAAbort,"ax",%progbits 14791 .align 1 14792 .syntax unified 14793 .thumb 14794 .thumb_func 14796 I2C_DMAAbort: 14797 .LVL1114: 14798 .LFB406: 6918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14799 .loc 1 6918 1 is_stmt 1 view -0 14800 .cfi_startproc 14801 @ args = 0, pretend = 0, frame = 0 14802 @ frame_needed = 0, uses_anonymous_args = 0 6918:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Derogation MISRAC2012-Rule-11.5 */ 14803 .loc 1 6918 1 is_stmt 0 view .LVU5156 14804 0000 08B5 push {r3, lr} 14805 .cfi_def_cfa_offset 8 14806 .cfi_offset 3, -8 14807 .cfi_offset 14, -4 6920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14808 .loc 1 6920 3 is_stmt 1 view .LVU5157 6920:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 478 14809 .loc 1 6920 22 is_stmt 0 view .LVU5158 14810 0002 806B ldr r0, [r0, #56] 14811 .LVL1115: 6923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14812 .loc 1 6923 3 is_stmt 1 view .LVU5159 6923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14813 .loc 1 6923 11 is_stmt 0 view .LVU5160 14814 0004 836B ldr r3, [r0, #56] 6923:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14815 .loc 1 6923 6 view .LVU5161 14816 0006 0BB1 cbz r3, .L946 6925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14817 .loc 1 6925 5 is_stmt 1 view .LVU5162 6925:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14818 .loc 1 6925 37 is_stmt 0 view .LVU5163 14819 0008 0022 movs r2, #0 14820 000a 1A65 str r2, [r3, #80] 14821 .L946: 6927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14822 .loc 1 6927 3 is_stmt 1 view .LVU5164 6927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14823 .loc 1 6927 11 is_stmt 0 view .LVU5165 14824 000c C36B ldr r3, [r0, #60] 6927:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** { 14825 .loc 1 6927 6 view .LVU5166 14826 000e 0BB1 cbz r3, .L947 6929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14827 .loc 1 6929 5 is_stmt 1 view .LVU5167 6929:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14828 .loc 1 6929 37 is_stmt 0 view .LVU5168 14829 0010 0022 movs r2, #0 14830 0012 1A65 str r2, [r3, #80] 14831 .L947: 6932:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14832 .loc 1 6932 3 is_stmt 1 view .LVU5169 14833 0014 FFF7FEFF bl I2C_TreatErrorCallback 14834 .LVL1116: 6933:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14835 .loc 1 6933 1 is_stmt 0 view .LVU5170 14836 0018 08BD pop {r3, pc} 14837 .cfi_endproc 14838 .LFE406: 14840 .section .text.HAL_I2C_GetState,"ax",%progbits 14841 .align 1 14842 .global HAL_I2C_GetState 14843 .syntax unified 14844 .thumb 14845 .thumb_func 14847 HAL_I2C_GetState: 14848 .LVL1117: 14849 .LFB381: 4878:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** /* Return I2C handle state */ 14850 .loc 1 4878 1 is_stmt 1 view -0 14851 .cfi_startproc 14852 @ args = 0, pretend = 0, frame = 0 14853 @ frame_needed = 0, uses_anonymous_args = 0 14854 @ link register save eliminated. ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 479 4880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14855 .loc 1 4880 3 view .LVU5172 4880:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14856 .loc 1 4880 14 is_stmt 0 view .LVU5173 14857 0000 90F84100 ldrb r0, [r0, #65] @ zero_extendqisi2 14858 .LVL1118: 4881:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14859 .loc 1 4881 1 view .LVU5174 14860 0004 7047 bx lr 14861 .cfi_endproc 14862 .LFE381: 14864 .section .text.HAL_I2C_GetMode,"ax",%progbits 14865 .align 1 14866 .global HAL_I2C_GetMode 14867 .syntax unified 14868 .thumb 14869 .thumb_func 14871 HAL_I2C_GetMode: 14872 .LVL1119: 14873 .LFB382: 4890:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->Mode; 14874 .loc 1 4890 1 is_stmt 1 view -0 14875 .cfi_startproc 14876 @ args = 0, pretend = 0, frame = 0 14877 @ frame_needed = 0, uses_anonymous_args = 0 14878 @ link register save eliminated. 4891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14879 .loc 1 4891 3 view .LVU5176 4891:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14880 .loc 1 4891 14 is_stmt 0 view .LVU5177 14881 0000 90F84200 ldrb r0, [r0, #66] @ zero_extendqisi2 14882 .LVL1120: 4892:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14883 .loc 1 4892 1 view .LVU5178 14884 0004 7047 bx lr 14885 .cfi_endproc 14886 .LFE382: 14888 .section .text.HAL_I2C_GetError,"ax",%progbits 14889 .align 1 14890 .global HAL_I2C_GetError 14891 .syntax unified 14892 .thumb 14893 .thumb_func 14895 HAL_I2C_GetError: 14896 .LVL1121: 14897 .LFB383: 4901:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** return hi2c->ErrorCode; 14898 .loc 1 4901 1 is_stmt 1 view -0 14899 .cfi_startproc 14900 @ args = 0, pretend = 0, frame = 0 14901 @ frame_needed = 0, uses_anonymous_args = 0 14902 @ link register save eliminated. 4902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14903 .loc 1 4902 3 view .LVU5180 4902:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** } 14904 .loc 1 4902 14 is_stmt 0 view .LVU5181 14905 0000 406C ldr r0, [r0, #68] ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 480 14906 .LVL1122: 4903:Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_i2c.c **** 14907 .loc 1 4903 1 view .LVU5182 14908 0002 7047 bx lr 14909 .cfi_endproc 14910 .LFE383: 14912 .text 14913 .Letext0: 14914 .file 2 "C:/Users/lenex/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-to 14915 .file 3 "C:/Users/lenex/AppData/Roaming/Code/User/globalStorage/bmd.stm32-for-vscode/@xpack-dev-to 14916 .file 4 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7a3xx.h" 14917 .file 5 "Drivers/CMSIS/Device/ST/STM32H7xx/Include/stm32h7xx.h" 14918 .file 6 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_def.h" 14919 .file 7 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_dma.h" 14920 .file 8 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c.h" 14921 .file 9 "Drivers/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal.h" ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 481 DEFINED SYMBOLS *ABS*:00000000 stm32h7xx_hal_i2c.c C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:20 .text.I2C_Flush_TXDR:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:25 .text.I2C_Flush_TXDR:00000000 I2C_Flush_TXDR C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:63 .text.I2C_TransferConfig:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:68 .text.I2C_TransferConfig:00000000 I2C_TransferConfig C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:124 .text.I2C_Enable_IRQ:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:129 .text.I2C_Enable_IRQ:00000000 I2C_Enable_IRQ C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:292 .text.I2C_Enable_IRQ:00000090 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13519 .text.I2C_Master_ISR_DMA:00000000 I2C_Master_ISR_DMA C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13065 .text.I2C_Slave_ISR_DMA:00000000 I2C_Slave_ISR_DMA C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:12694 .text.I2C_Mem_ISR_DMA:00000000 I2C_Mem_ISR_DMA C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:299 .text.I2C_Disable_IRQ:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:304 .text.I2C_Disable_IRQ:00000000 I2C_Disable_IRQ C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:427 .text.I2C_ConvertOtherXferOptions:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:432 .text.I2C_ConvertOtherXferOptions:00000000 I2C_ConvertOtherXferOptions C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:473 .text.I2C_IsErrorOccurred:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:478 .text.I2C_IsErrorOccurred:00000000 I2C_IsErrorOccurred C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:758 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:763 .text.I2C_WaitOnTXISFlagUntilTimeout:00000000 I2C_WaitOnTXISFlagUntilTimeout C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:860 .text.I2C_WaitOnFlagUntilTimeout:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:865 .text.I2C_WaitOnFlagUntilTimeout:00000000 I2C_WaitOnFlagUntilTimeout C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:976 .text.I2C_RequestMemoryWrite:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:981 .text.I2C_RequestMemoryWrite:00000000 I2C_RequestMemoryWrite C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1096 .text.I2C_RequestMemoryWrite:00000078 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1101 .text.I2C_RequestMemoryRead:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1106 .text.I2C_RequestMemoryRead:00000000 I2C_RequestMemoryRead C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1221 .text.I2C_RequestMemoryRead:00000074 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1226 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1231 .text.I2C_WaitOnSTOPFlagUntilTimeout:00000000 I2C_WaitOnSTOPFlagUntilTimeout C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1328 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1333 .text.I2C_WaitOnRXNEFlagUntilTimeout:00000000 I2C_WaitOnRXNEFlagUntilTimeout C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1497 .text.HAL_I2C_MspInit:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1503 .text.HAL_I2C_MspInit:00000000 HAL_I2C_MspInit C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1518 .text.HAL_I2C_Init:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1524 .text.HAL_I2C_Init:00000000 HAL_I2C_Init C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1717 .text.HAL_I2C_Init:000000c4 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1722 .text.HAL_I2C_MspDeInit:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1728 .text.HAL_I2C_MspDeInit:00000000 HAL_I2C_MspDeInit C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1743 .text.HAL_I2C_DeInit:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1749 .text.HAL_I2C_DeInit:00000000 HAL_I2C_DeInit C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1812 .text.HAL_I2C_Master_Transmit:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:1818 .text.HAL_I2C_Master_Transmit:00000000 HAL_I2C_Master_Transmit C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2172 .text.HAL_I2C_Master_Transmit:000001a0 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2177 .text.HAL_I2C_Master_Receive:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2183 .text.HAL_I2C_Master_Receive:00000000 HAL_I2C_Master_Receive C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2486 .text.HAL_I2C_Master_Receive:00000174 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2491 .text.HAL_I2C_Slave_Transmit:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2497 .text.HAL_I2C_Slave_Transmit:00000000 HAL_I2C_Slave_Transmit C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2930 .text.HAL_I2C_Slave_Receive:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:2936 .text.HAL_I2C_Slave_Receive:00000000 HAL_I2C_Slave_Receive C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3281 .text.HAL_I2C_Master_Transmit_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3287 .text.HAL_I2C_Master_Transmit_IT:00000000 HAL_I2C_Master_Transmit_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3480 .text.HAL_I2C_Master_Transmit_IT:000000b8 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:12308 .text.I2C_Master_ISR_IT:00000000 I2C_Master_ISR_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3487 .text.HAL_I2C_Master_Receive_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3493 .text.HAL_I2C_Master_Receive_IT:00000000 HAL_I2C_Master_Receive_IT ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 482 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3640 .text.HAL_I2C_Master_Receive_IT:0000008c $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3647 .text.HAL_I2C_Slave_Transmit_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3653 .text.HAL_I2C_Slave_Transmit_IT:00000000 HAL_I2C_Slave_Transmit_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3794 .text.HAL_I2C_Slave_Transmit_IT:00000084 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11729 .text.I2C_Slave_ISR_IT:00000000 I2C_Slave_ISR_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3800 .text.HAL_I2C_Slave_Receive_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3806 .text.HAL_I2C_Slave_Receive_IT:00000000 HAL_I2C_Slave_Receive_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3907 .text.HAL_I2C_Slave_Receive_IT:0000005c $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3913 .text.HAL_I2C_Master_Transmit_DMA:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:3919 .text.HAL_I2C_Master_Transmit_DMA:00000000 HAL_I2C_Master_Transmit_DMA C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4261 .text.HAL_I2C_Master_Transmit_DMA:00000158 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14087 .text.I2C_DMAMasterTransmitCplt:00000000 I2C_DMAMasterTransmitCplt C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13831 .text.I2C_DMAError:00000000 I2C_DMAError C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4271 .text.HAL_I2C_Master_Receive_DMA:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4277 .text.HAL_I2C_Master_Receive_DMA:00000000 HAL_I2C_Master_Receive_DMA C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4573 .text.HAL_I2C_Master_Receive_DMA:00000138 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14194 .text.I2C_DMAMasterReceiveCplt:00000000 I2C_DMAMasterReceiveCplt C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4583 .text.HAL_I2C_Slave_Transmit_DMA:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4589 .text.HAL_I2C_Slave_Transmit_DMA:00000000 HAL_I2C_Slave_Transmit_DMA C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4890 .text.HAL_I2C_Slave_Transmit_DMA:0000012c $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10207 .text.I2C_DMASlaveTransmitCplt:00000000 I2C_DMASlaveTransmitCplt C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4898 .text.HAL_I2C_Slave_Receive_DMA:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:4904 .text.HAL_I2C_Slave_Receive_DMA:00000000 HAL_I2C_Slave_Receive_DMA C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5124 .text.HAL_I2C_Slave_Receive_DMA:000000e0 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10263 .text.I2C_DMASlaveReceiveCplt:00000000 I2C_DMASlaveReceiveCplt C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5132 .text.HAL_I2C_Mem_Write:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5138 .text.HAL_I2C_Mem_Write:00000000 HAL_I2C_Mem_Write C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5490 .text.HAL_I2C_Mem_Read:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5496 .text.HAL_I2C_Mem_Read:00000000 HAL_I2C_Mem_Read C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5848 .text.HAL_I2C_Mem_Read:000001ac $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5853 .text.HAL_I2C_Mem_Write_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:5859 .text.HAL_I2C_Mem_Write_IT:00000000 HAL_I2C_Mem_Write_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6030 .text.HAL_I2C_Mem_Write_IT:000000ac $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14301 .text.I2C_Mem_ISR_IT:00000000 I2C_Mem_ISR_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6037 .text.HAL_I2C_Mem_Read_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6043 .text.HAL_I2C_Mem_Read_IT:00000000 HAL_I2C_Mem_Read_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6211 .text.HAL_I2C_Mem_Read_IT:000000a8 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6218 .text.HAL_I2C_Mem_Write_DMA:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6224 .text.HAL_I2C_Mem_Write_DMA:00000000 HAL_I2C_Mem_Write_DMA C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6503 .text.HAL_I2C_Mem_Write_DMA:00000120 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6512 .text.HAL_I2C_Mem_Read_DMA:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6518 .text.HAL_I2C_Mem_Read_DMA:00000000 HAL_I2C_Mem_Read_DMA C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6799 .text.HAL_I2C_Mem_Read_DMA:00000120 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6808 .text.HAL_I2C_IsDeviceReady:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:6814 .text.HAL_I2C_IsDeviceReady:00000000 HAL_I2C_IsDeviceReady C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7100 .text.HAL_I2C_IsDeviceReady:00000130 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7106 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7112 .text.HAL_I2C_Master_Seq_Transmit_IT:00000000 HAL_I2C_Master_Seq_Transmit_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7372 .text.HAL_I2C_Master_Seq_Transmit_IT:00000104 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7378 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7384 .text.HAL_I2C_Master_Seq_Transmit_DMA:00000000 HAL_I2C_Master_Seq_Transmit_DMA C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7799 .text.HAL_I2C_Master_Seq_Transmit_DMA:000001d0 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7808 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7814 .text.HAL_I2C_Master_Seq_Receive_IT:00000000 HAL_I2C_Master_Seq_Receive_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:7995 .text.HAL_I2C_Master_Seq_Receive_IT:000000a8 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8001 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8007 .text.HAL_I2C_Master_Seq_Receive_DMA:00000000 HAL_I2C_Master_Seq_Receive_DMA ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 483 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8335 .text.HAL_I2C_Master_Seq_Receive_DMA:0000015c $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8344 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8350 .text.HAL_I2C_Slave_Seq_Transmit_IT:00000000 HAL_I2C_Slave_Seq_Transmit_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8559 .text.HAL_I2C_Slave_Seq_Transmit_IT:000000d8 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14796 .text.I2C_DMAAbort:00000000 I2C_DMAAbort C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8565 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8571 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000000 HAL_I2C_Slave_Seq_Transmit_DMA C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8958 .text.HAL_I2C_Slave_Seq_Transmit_DMA:00000198 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8966 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:8972 .text.HAL_I2C_Slave_Seq_Receive_IT:00000000 HAL_I2C_Slave_Seq_Receive_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9181 .text.HAL_I2C_Slave_Seq_Receive_IT:000000d8 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9187 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9193 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000000 HAL_I2C_Slave_Seq_Receive_DMA C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9578 .text.HAL_I2C_Slave_Seq_Receive_DMA:00000198 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9586 .text.HAL_I2C_EnableListen_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9592 .text.HAL_I2C_EnableListen_IT:00000000 HAL_I2C_EnableListen_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9637 .text.HAL_I2C_EnableListen_IT:00000024 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9642 .text.HAL_I2C_DisableListen_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9648 .text.HAL_I2C_DisableListen_IT:00000000 HAL_I2C_DisableListen_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9712 .text.HAL_I2C_Master_Abort_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9718 .text.HAL_I2C_Master_Abort_IT:00000000 HAL_I2C_Master_Abort_IT C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9852 .text.HAL_I2C_Master_Abort_IT:0000007c $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9857 .text.HAL_I2C_EV_IRQHandler:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9863 .text.HAL_I2C_EV_IRQHandler:00000000 HAL_I2C_EV_IRQHandler C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9900 .text.HAL_I2C_MasterTxCpltCallback:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9906 .text.HAL_I2C_MasterTxCpltCallback:00000000 HAL_I2C_MasterTxCpltCallback C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9921 .text.HAL_I2C_MasterRxCpltCallback:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9927 .text.HAL_I2C_MasterRxCpltCallback:00000000 HAL_I2C_MasterRxCpltCallback C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9942 .text.I2C_ITMasterSeqCplt:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:9947 .text.I2C_ITMasterSeqCplt:00000000 I2C_ITMasterSeqCplt C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10030 .text.HAL_I2C_SlaveTxCpltCallback:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10036 .text.HAL_I2C_SlaveTxCpltCallback:00000000 HAL_I2C_SlaveTxCpltCallback C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10051 .text.HAL_I2C_SlaveRxCpltCallback:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10057 .text.HAL_I2C_SlaveRxCpltCallback:00000000 HAL_I2C_SlaveRxCpltCallback C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10072 .text.I2C_ITSlaveSeqCplt:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10077 .text.I2C_ITSlaveSeqCplt:00000000 I2C_ITSlaveSeqCplt C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10202 .text.I2C_DMASlaveTransmitCplt:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10258 .text.I2C_DMASlaveReceiveCplt:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10391 .text.I2C_DMASlaveReceiveCplt:00000098 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10397 .text.HAL_I2C_AddrCallback:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10403 .text.HAL_I2C_AddrCallback:00000000 HAL_I2C_AddrCallback C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10420 .text.I2C_ITAddrCplt:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10425 .text.I2C_ITAddrCplt:00000000 I2C_ITAddrCplt C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10584 .text.HAL_I2C_ListenCpltCallback:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10590 .text.HAL_I2C_ListenCpltCallback:00000000 HAL_I2C_ListenCpltCallback C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10605 .text.I2C_ITListenCplt:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10610 .text.I2C_ITListenCplt:00000000 I2C_ITListenCplt C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10713 .text.I2C_ITListenCplt:00000064 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10718 .text.HAL_I2C_MemTxCpltCallback:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10724 .text.HAL_I2C_MemTxCpltCallback:00000000 HAL_I2C_MemTxCpltCallback C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10739 .text.HAL_I2C_MemRxCpltCallback:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10745 .text.HAL_I2C_MemRxCpltCallback:00000000 HAL_I2C_MemRxCpltCallback C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10760 .text.HAL_I2C_ErrorCallback:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10766 .text.HAL_I2C_ErrorCallback:00000000 HAL_I2C_ErrorCallback C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10781 .text.HAL_I2C_AbortCpltCallback:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10787 .text.HAL_I2C_AbortCpltCallback:00000000 HAL_I2C_AbortCpltCallback C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10802 .text.I2C_TreatErrorCallback:00000000 $t ARM GAS C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s page 484 C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10807 .text.I2C_TreatErrorCallback:00000000 I2C_TreatErrorCallback C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10862 .text.I2C_ITError:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:10867 .text.I2C_ITError:00000000 I2C_ITError C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11143 .text.I2C_ITError:00000124 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11150 .text.I2C_ITSlaveCplt:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11155 .text.I2C_ITSlaveCplt:00000000 I2C_ITSlaveCplt C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11201 .text.I2C_ITSlaveCplt:0000001e $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11211 .text.I2C_ITSlaveCplt:00000028 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11717 .text.I2C_ITSlaveCplt:000002c0 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:11724 .text.I2C_Slave_ISR_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:12038 .text.I2C_ITMasterCplt:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:12043 .text.I2C_ITMasterCplt:00000000 I2C_ITMasterCplt C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:12303 .text.I2C_Master_ISR_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:12689 .text.I2C_Mem_ISR_DMA:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13054 .text.I2C_Mem_ISR_DMA:00000198 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13060 .text.I2C_Slave_ISR_DMA:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13364 .text.I2C_Slave_ISR_DMA:0000018c $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13375 .text.I2C_Slave_ISR_DMA:00000196 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13508 .text.I2C_Slave_ISR_DMA:00000214 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13514 .text.I2C_Master_ISR_DMA:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:13826 .text.I2C_DMAError:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14076 .text.I2C_DMAError:00000130 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14082 .text.I2C_DMAMasterTransmitCplt:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14189 .text.I2C_DMAMasterReceiveCplt:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14296 .text.I2C_Mem_ISR_IT:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14679 .text.I2C_Mem_ISR_IT:00000190 $d C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14685 .text.HAL_I2C_ER_IRQHandler:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14691 .text.HAL_I2C_ER_IRQHandler:00000000 HAL_I2C_ER_IRQHandler C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14791 .text.I2C_DMAAbort:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14841 .text.HAL_I2C_GetState:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14847 .text.HAL_I2C_GetState:00000000 HAL_I2C_GetState C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14865 .text.HAL_I2C_GetMode:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14871 .text.HAL_I2C_GetMode:00000000 HAL_I2C_GetMode C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14889 .text.HAL_I2C_GetError:00000000 $t C:\Users\lenex\AppData\Local\Temp\cc3xKuUH.s:14895 .text.HAL_I2C_GetError:00000000 HAL_I2C_GetError UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT HAL_DMA_Abort_IT HAL_DMA_GetState HAL_DMA_GetError